精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

程序員常說的“開源”是什么?

jf_78858299 ? 來源:小馬技術圈 ? 作者:小馬技術圈 ? 2023-05-06 18:00 ? 次閱讀

01“開源”

在互聯網領域,可以簡單理解為是“開放源代碼”的簡稱。通常來說,指的是將軟件項目的源代碼向大眾開放,允許大眾獲取、使用、修改和發行。在硬件等其它領域也可以套用開源的概念。

“開源”就好比公開一棟房子的結構圖紙,有了圖紙的人可以拿這份圖紙建造一棟一模一樣的房子,也可以叫懂行的人幫你優化這原來的設計造一棟新版本的房子。沒有“開源”就好像沒有結構圖你要仿造一棟房子只能仿造表面相似,結構性能可能相差很遠,可能根本經不住用戶多堆一點東西就變形垮塌了。

02“開源項目”

在互聯網領域,可以簡單理解為是“開放源代碼”的簡稱。通常來說,指的是將軟件項目的源代碼向大眾開放,允許大眾獲取、使用、修改和發行。在硬件等其它領域也可以套用開源的概念。

03“開源軟件”

直接的字面意思是公開源代碼的軟件,也就是說,如果軟件的源代碼是開源的,那么這個軟件就可以稱之為“開源軟件”。不過,對于很多商業公司來說,“開源軟件”只能看作是某個開源項目給出的“軟件示例”而已,因為軟件的源代碼已經開放出來了,那么這些商業公司,完全可以根據自己的需要,基于這個示例,修改或衍生出真正適合自己的軟件產品

04“開源社區”

為某個開源項目的開發成員提供的一個學習和交流的空間。由于開源項目常常需要散布在全世界的開發人員共同參與推進,所以“開源社區”就成了他們溝通交流的必要途徑。

05“開源協議”

是指開源軟件所遵循的許可協議,獲得了開源軟件的用戶,需要在該協議的允許范圍內對軟件的源代碼進行使用、修改和發行(包括以盈利為目的商業發行)。

06“GitHub”

是一個面向軟件項目的托管平臺,可以用于托管各種類型的軟件項目,包括開源項目和私有項目。由于大量開源項目基于GitHub進行托管,方便來自世界各地的開發人員共同工作以及獲取開源軟件,所以在開源項目領域,GitHub的影響力很大,是開源項目的首選托管平臺。

總結一句話來說

就是在GitHub上,發布了一個軟件項目,是開源的,這個開源項目會產出一款使用了MIT開源協議的開源軟件供大家免費獲取,如果想加入這個開源項目共同工作,可以來這個項目的開源社區參與討論,網址是:http://xxx.xxx.xxx。

開源的意義

一、給企業帶來的價值

1.為企業提供品牌形象的引導:在程序員的世界中,開源雖然不能說是多么崇高的事情,但總的來說,形象依然是正面的。開源意味著企業愿意與其他企業和個人共建生態,這個企業的大體上來說,是有擁抱開放的這樣的傾向的。

  1. 為企業降低人員篩選的成本:關于人員篩選成本降低的一方面而言,其實很好理解。企業需要開發者來完成自己的需求,在招募的時候,他可以選擇沒有貢獻過自己開源項目的人,但他更喜歡去招募那些已經貢獻過自己開源項目的人,因為這些人貢獻過代碼,至少知道我的項目、邏輯是什么,知道我的團隊的代碼風格是什么,參與過社區的溝通,能夠和我的團隊有很好的協作。這樣的人如果招募到自己的團隊中,拉過來就可以干活,沒有切換成本,篩選起來也簡單,成本自然而然降低了。在這個方面,國內做的最好的是 TiDB ,大部分成員都來自開源社區。

3.控制社區的發展:開源世界的規則是,你的貢獻多,你的話語權就大,你就可以主導項目的發展。對于企業來說,如果你想將一個開源項目向著你想要的方向去發展,就多安排人去貢獻開源,然后,通過這種明謀,來控制項目的發展。這一方面,做的最好的應該算 RedHat,RedHat 通過提供大量的人去參與 Linux Kernel 的開發,從某種意義上來說,RedHat 可以控制 Linux Kernel 的方向。在內核開發大部分都是 RedHat 的人的情況下,他可以讓開發者只去處理對自己有利的 Pull Request 。這種操作并不違反社區的規則,只是優先處理自己家的 PR,沒有任何問題。但也正是這種明謀,在不斷的調整著 Linux Kernel 的方向。

二、舉例各盈利模式下的開源項目

1、多種產品線

如 MySQL 產品就同時推出面向個人和企業的兩種版本,即開源版本和專業版本,分別采用不同的授權方式。開源版本完全免費以便更好的推廣,而從專業版的許可銷售和支持服務獲得收入。

2、技術服務型

JBoss就是這種模式的典型代表。JBoss 應用服務器完全免費,而通過提供技術文檔、培訓、二次開發支持等技術服務而獲得收入。

3、應用服務托管(ASP)

PHP Live,就是一種構架于 PHP、MySQL 之上的開源軟件,它可為企業用戶提供實時交談服務。目前已經有數十家公開提供 PHP Live托管服務的應用服務提供商。

4、軟、硬件一體化

比如 IBM HP 等服務器供應商巨頭,通過捆綁免費的 Linux 操作系統銷售硬件服務器。SUN 公司近期將其 Solaris 操作系統開放源碼,以確保服務器硬件的銷售收入,也是這種模式的體現。

5、附屬品

比如 IBM HP 等服務器供應商巨頭,通過捆綁免費的 Linux 操作系統銷售硬件服務器。SUN 公司近期將其 Solaris 操作系統開放源碼,以確保服務器硬件的銷售收入,也是這種模式的體現。

6、品牌戰略、服務至上

康比爾公司的 Compiere ERP & CRM 軟件是這種模式的典型案例。

7、市場策略

對開源感興趣的推薦去LUPA開源社區了解。

以下重點說一下 開源協議 。

開源軟件雖然通常都是免費的,但并不等于軟件的開發者們(開源社區)完全放棄了自己的權利和對軟件的控制。為了保證開源軟件不被一些商業機構或個人竊取,成為他們不勞而獲的牟利工具,并影響開源項目的長遠發展,開源社區開發出了各種開源協議,用于維護自己的軟件版權。

在開源協議里面,會詳盡表述使用者在獲得代碼后擁有的權利和義務,包括可以進行何種操作,而何種操作又是被禁止的。

開源協議種類非常之多,并且同一款協議會有很多個變種版本。開源協議規定得太寬松,會導致開發者們喪失對開源軟件的很多權利,而太嚴格又不便于使用者們的使用以及開源軟件的傳播。

常見的開源協議有:GPL、LGPL、BSD、Apache 2.0、MIT

01

G P L

Linux就是采用了GPL協議。GPL協議允許代碼的獲取、代碼的免費使用和引用、代碼的修改和衍生,但要求對修改和衍生代碼的進行開源,不允許修改和衍生的代碼做為私有閉源的商業軟件發布和銷售。

這也就是為什么我們能用各種免費的linux操作系統,以及linux上各種各樣的由個人,組織,以及商業軟件公司開發的免費軟件了。

GPL協議的主要內容是,只要在一個軟件中使用到了包含GPL 協議的產品(GPL類庫),則該軟件產品必須也采用GPL協議,既必須也是開源和免費,這就是所謂的“傳染性”。

由于GPL嚴格要求使用了GPL類庫的軟件產品必須使用GPL協議,對于使用GPL協議的開源代碼,商業軟件或者對代碼有保密要求的部門就不適合集成/采用作為類庫和二次開發的基礎。

02

L G P L

LGPL是GPL的一個為主要為類庫使用設計的開源協議。和GPL不同,LGPL允許商業軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業軟件的代碼。這使得采用LGPL協議的開源代碼可以被商業軟件作為類庫引用并發布和銷售。

但是如果修改LGPL協議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用LGPL協議。因此LGPL協議的開源代碼很適合作為第三方類庫被商業軟件引用,但不適合希望以LGPL協議代碼為基礎,通過修改和衍生的方式做二次開發的商業軟件采用。

03

B S D

BSD開源協議是一個給予使用者很大自由的協議。開發者可以自由使用和修改源代碼,也可以將修改后的源代碼作為開源或者專有軟件再發布。但是有以下幾個要求:

如果再發布的產品中含有源代碼,則在源代碼中必須帶有原來代碼中的BSD協議。

如果再發布的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權申明中包含原有代碼中的BSD協議。

不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。

BSD 代碼鼓勵代碼共享,但需要尊重代碼作者的著作權。BSD由于允許使用者修改和重新發布代碼,也允許使用或在BSD代碼上開發商業軟件發布和銷售,因此是對商業集成很友好的協議。而很多的公司企業在選用開源產品的時候都首選BSD協議,因為可以完全控制這些第三方的代碼,在必要的時候可以修改或者二次開發。

04

Apache 2.0

Apache Licence 2.0的簡稱,Apache Licence是著名的非盈利開源組織Apache采用的協議。該協議和BSD類似,同樣鼓勵代碼共享和最終原作者的著作權,同樣允許源代碼修改和再發布。但是也需要遵循以下條件:

需要給代碼的用戶一份Apache Licence。

如果修改了代碼,需要再被修改的文件中說明。

在衍生的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。

如果再發布的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。你可以再Notice中增加自己的許可,但是不可以表現為對Apache Licence構成更改。

Apache Licence也是對商業應用友好的許可,使用者也可以在需要的時候修改代碼來滿足并作為開源或商業產品發布/銷售。

*05M I T

MIT是和BSD一樣寬泛的許可協議,源自麻省理工學院(Massachusetts Institute of Technology, MIT)。使用MIT協議的開源軟件作者只保留版權,而對使用者無任何其它限制。MIT與BSD類似,但是比BSD協議更加寬松,是目前最少限制的協議。這個協議唯一的條件就是在修改后的代碼或者發行包中包含原作者的許可信息,且適用于商業軟件。使用MIT的軟件項目有:jquery、Node.js

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開源
    +關注

    關注

    3

    文章

    3254

    瀏覽量

    42408
  • BSD
    BSD
    +關注

    關注

    0

    文章

    30

    瀏覽量

    10400
  • gpl
    gpl
    +關注

    關注

    0

    文章

    26

    瀏覽量

    2173
收藏 人收藏

    評論

    相關推薦

    程序員需要學什么,微軟資深程序員學習手冊面試寶典資料

    程序員是現在比較吃香的工作。程序員工資高還不需要和復雜的社會打交道。那么怎么成為一名程序員?當程序員需要學什么?
    發表于 03-22 11:54 ?30次下載

    “菜鳥”程序員和“大神”程序員到底有什么區別

    現在社會上有很多程序員,那您是否可想過程序員為什么會有不同的水平?你又是哪一類的程序員?“菜鳥”程序員和“大神”程序員差在哪里?
    的頭像 發表于 05-14 08:48 ?3698次閱讀

    程序員如何定義

    當了幾年的程序員了,一直都在想一個問題,什么是程序員,程序員應該做好那些事情,什么樣的程序員是有素質的程序員?什么樣的
    的頭像 發表于 12-18 14:15 ?2597次閱讀

    菜鳥程序員和大神程序員的差距

    剛剛走出就業的程序員,技術是剛剛起步的基點。那下面我們就聊一聊有關技術的東西。首先請您先想想這幾個問題?,F在社會上有很多程序員,CSDN就是我們程序員的家,那您是否可想過程序員為什么會
    的頭像 發表于 06-03 15:56 ?2512次閱讀

    什么是程序員

    當了幾年的程序員了,一直都在想一個問題,什么是程序員程序員應該做好那些事情,什么樣的程序員是有素質的程序員?什么樣的
    的頭像 發表于 06-04 16:21 ?8922次閱讀

    程序員的未來

    程序員出路在何方程序員 創業如果你是程序員,也想創業,看看我說的。
    的頭像 發表于 06-12 17:29 ?2927次閱讀

    為什么要成為高級程序員

    程序員到高級程序員的職業生涯要經歷以下幾個階段:初級程序員、中級程序員、最后是高級程序員
    的頭像 發表于 07-11 16:51 ?2414次閱讀

    頂尖程序員和普通程序員的區別

    普通程序員常說:“這個簡單,幾天我就寫出來?!?/div>
    的頭像 發表于 07-25 11:17 ?2313次閱讀

    普通程序員和高級程序員有哪些區別

    從工作的方面來說,普通程序員和高級程序員一般有下面幾個區別:
    的頭像 發表于 09-08 10:47 ?3750次閱讀

    如何定義程序員

    多年以來,黑程序員一直是一項廣大人民群眾喜聞樂見的娛樂活動,我們不僅黑程序員程序員也喜歡自黑,如此一來,大家好像都覺得黑程序員是一項天經地義的事情了,然而事實上,的確是的。
    的頭像 發表于 10-28 17:05 ?2707次閱讀

    優秀程序員與糟糕程序員的變現差異

    軟件蠶食一切,未來屬于程序員。所以人人都想當程序員。但是并不是每個人都能當好程序員。在你做出決定前還是先看看自己能不能當好程序員吧。
    的頭像 發表于 11-07 16:14 ?3041次閱讀

    程序員最大的失敗是什么

    程序員最大的失敗就是認為自己是好的程序員。
    的頭像 發表于 11-18 16:26 ?3202次閱讀

    程序員的類型

    今天來聊個有趣的話題,你是什么類型的程序員? 在學校里或在公司里,你是不是接觸過不少其他的程序員,有沒有發現,雖然同屬程序員科, 但也有眾多的不同。 今天我就來給程序員分個類,看看你是
    的頭像 發表于 11-28 16:39 ?4671次閱讀

    NEC程序員開源分享

    電子發燒友網站提供《NEC程序員開源分享.zip》資料免費下載
    發表于 07-05 11:29 ?1次下載
    NEC<b class='flag-5'>程序員</b><b class='flag-5'>開源</b>分享

    Shield Arduino程序員ISP ATtiny 85開源

    電子發燒友網站提供《Shield Arduino程序員ISP ATtiny 85開源.zip》資料免費下載
    發表于 07-14 14:23 ?1次下載
    Shield Arduino<b class='flag-5'>程序員</b>ISP ATtiny 85<b class='flag-5'>開源</b>