01“開源”
在互聯(lián)網(wǎng)領(lǐng)域,可以簡(jiǎn)單理解為是“開放源代碼”的簡(jiǎn)稱。通常來說,指的是將軟件項(xiàng)目的源代碼向大眾開放,允許大眾獲取、使用、修改和發(fā)行。在硬件等其它領(lǐng)域也可以套用開源的概念。
“開源”就好比公開一棟房子的結(jié)構(gòu)圖紙,有了圖紙的人可以拿這份圖紙建造一棟一模一樣的房子,也可以叫懂行的人幫你優(yōu)化這原來的設(shè)計(jì)造一棟新版本的房子。沒有“開源”就好像沒有結(jié)構(gòu)圖你要仿造一棟房子只能仿造表面相似,結(jié)構(gòu)性能可能相差很遠(yuǎn),可能根本經(jīng)不住用戶多堆一點(diǎn)東西就變形垮塌了。
02“開源項(xiàng)目”
在互聯(lián)網(wǎng)領(lǐng)域,可以簡(jiǎn)單理解為是“開放源代碼”的簡(jiǎn)稱。通常來說,指的是將軟件項(xiàng)目的源代碼向大眾開放,允許大眾獲取、使用、修改和發(fā)行。在硬件等其它領(lǐng)域也可以套用開源的概念。
03“開源軟件”
直接的字面意思是公開源代碼的軟件,也就是說,如果軟件的源代碼是開源的,那么這個(gè)軟件就可以稱之為“開源軟件”。不過,對(duì)于很多商業(yè)公司來說,“開源軟件”只能看作是某個(gè)開源項(xiàng)目給出的“軟件示例”而已,因?yàn)檐浖脑创a已經(jīng)開放出來了,那么這些商業(yè)公司,完全可以根據(jù)自己的需要,基于這個(gè)示例,修改或衍生出真正適合自己的軟件產(chǎn)品。
04“開源社區(qū)”
為某個(gè)開源項(xiàng)目的開發(fā)成員提供的一個(gè)學(xué)習(xí)和交流的空間。由于開源項(xiàng)目常常需要散布在全世界的開發(fā)人員共同參與推進(jìn),所以“開源社區(qū)”就成了他們溝通交流的必要途徑。
05“開源協(xié)議”
是指開源軟件所遵循的許可協(xié)議,獲得了開源軟件的用戶,需要在該協(xié)議的允許范圍內(nèi)對(duì)軟件的源代碼進(jìn)行使用、修改和發(fā)行(包括以盈利為目的商業(yè)發(fā)行)。
06“GitHub”
是一個(gè)面向軟件項(xiàng)目的托管平臺(tái),可以用于托管各種類型的軟件項(xiàng)目,包括開源項(xiàng)目和私有項(xiàng)目。由于大量開源項(xiàng)目基于GitHub進(jìn)行托管,方便來自世界各地的開發(fā)人員共同工作以及獲取開源軟件,所以在開源項(xiàng)目領(lǐng)域,GitHub的影響力很大,是開源項(xiàng)目的首選托管平臺(tái)。
總結(jié)一句話來說
就是在GitHub上,發(fā)布了一個(gè)軟件項(xiàng)目,是開源的,這個(gè)開源項(xiàng)目會(huì)產(chǎn)出一款使用了MIT開源協(xié)議的開源軟件供大家免費(fèi)獲取,如果想加入這個(gè)開源項(xiàng)目共同工作,可以來這個(gè)項(xiàng)目的開源社區(qū)參與討論,網(wǎng)址是:http://xxx.xxx.xxx。
開源的意義
一、給企業(yè)帶來的價(jià)值
1.為企業(yè)提供品牌形象的引導(dǎo):在程序員的世界中,開源雖然不能說是多么崇高的事情,但總的來說,形象依然是正面的。開源意味著企業(yè)愿意與其他企業(yè)和個(gè)人共建生態(tài),這個(gè)企業(yè)的大體上來說,是有擁抱開放的這樣的傾向的。
- 為企業(yè)降低人員篩選的成本:關(guān)于人員篩選成本降低的一方面而言,其實(shí)很好理解。企業(yè)需要開發(fā)者來完成自己的需求,在招募的時(shí)候,他可以選擇沒有貢獻(xiàn)過自己開源項(xiàng)目的人,但他更喜歡去招募那些已經(jīng)貢獻(xiàn)過自己開源項(xiàng)目的人,因?yàn)檫@些人貢獻(xiàn)過代碼,至少知道我的項(xiàng)目、邏輯是什么,知道我的團(tuán)隊(duì)的代碼風(fēng)格是什么,參與過社區(qū)的溝通,能夠和我的團(tuán)隊(duì)有很好的協(xié)作。這樣的人如果招募到自己的團(tuán)隊(duì)中,拉過來就可以干活,沒有切換成本,篩選起來也簡(jiǎn)單,成本自然而然降低了。在這個(gè)方面,國(guó)內(nèi)做的最好的是 TiDB ,大部分成員都來自開源社區(qū)。
3.控制社區(qū)的發(fā)展:開源世界的規(guī)則是,你的貢獻(xiàn)多,你的話語權(quán)就大,你就可以主導(dǎo)項(xiàng)目的發(fā)展。對(duì)于企業(yè)來說,如果你想將一個(gè)開源項(xiàng)目向著你想要的方向去發(fā)展,就多安排人去貢獻(xiàn)開源,然后,通過這種明謀,來控制項(xiàng)目的發(fā)展。這一方面,做的最好的應(yīng)該算 RedHat,RedHat 通過提供大量的人去參與 Linux Kernel 的開發(fā),從某種意義上來說,RedHat 可以控制 Linux Kernel 的方向。在內(nèi)核開發(fā)大部分都是 RedHat 的人的情況下,他可以讓開發(fā)者只去處理對(duì)自己有利的 Pull Request 。這種操作并不違反社區(qū)的規(guī)則,只是優(yōu)先處理自己家的 PR,沒有任何問題。但也正是這種明謀,在不斷的調(diào)整著 Linux Kernel 的方向。
二、舉例各盈利模式下的開源項(xiàng)目
1、多種產(chǎn)品線
如 MySQL 產(chǎn)品就同時(shí)推出面向個(gè)人和企業(yè)的兩種版本,即開源版本和專業(yè)版本,分別采用不同的授權(quán)方式。開源版本完全免費(fèi)以便更好的推廣,而從專業(yè)版的許可銷售和支持服務(wù)獲得收入。
2、技術(shù)服務(wù)型
JBoss就是這種模式的典型代表。JBoss 應(yīng)用服務(wù)器完全免費(fèi),而通過提供技術(shù)文檔、培訓(xùn)、二次開發(fā)支持等技術(shù)服務(wù)而獲得收入。
3、應(yīng)用服務(wù)托管(ASP)
PHP Live,就是一種構(gòu)架于 PHP、MySQL 之上的開源軟件,它可為企業(yè)用戶提供實(shí)時(shí)交談服務(wù)。目前已經(jīng)有數(shù)十家公開提供 PHP Live托管服務(wù)的應(yīng)用服務(wù)提供商。
4、軟、硬件一體化
比如 IBM HP 等服務(wù)器供應(yīng)商巨頭,通過捆綁免費(fèi)的 Linux 操作系統(tǒng)銷售硬件服務(wù)器。SUN 公司近期將其 Solaris 操作系統(tǒng)開放源碼,以確保服務(wù)器硬件的銷售收入,也是這種模式的體現(xiàn)。
5、附屬品
比如 IBM HP 等服務(wù)器供應(yīng)商巨頭,通過捆綁免費(fèi)的 Linux 操作系統(tǒng)銷售硬件服務(wù)器。SUN 公司近期將其 Solaris 操作系統(tǒng)開放源碼,以確保服務(wù)器硬件的銷售收入,也是這種模式的體現(xiàn)。
6、品牌戰(zhàn)略、服務(wù)至上
康比爾公司的 Compiere ERP & CRM 軟件是這種模式的典型案例。
7、市場(chǎng)策略
對(duì)開源感興趣的推薦去LUPA開源社區(qū)了解。
以下重點(diǎn)說一下 開源協(xié)議 。
開源軟件雖然通常都是免費(fèi)的,但并不等于軟件的開發(fā)者們(開源社區(qū))完全放棄了自己的權(quán)利和對(duì)軟件的控制。為了保證開源軟件不被一些商業(yè)機(jī)構(gòu)或個(gè)人竊取,成為他們不勞而獲的牟利工具,并影響開源項(xiàng)目的長(zhǎng)遠(yuǎn)發(fā)展,開源社區(qū)開發(fā)出了各種開源協(xié)議,用于維護(hù)自己的軟件版權(quán)。
在開源協(xié)議里面,會(huì)詳盡表述使用者在獲得代碼后擁有的權(quán)利和義務(wù),包括可以進(jìn)行何種操作,而何種操作又是被禁止的。
開源協(xié)議種類非常之多,并且同一款協(xié)議會(huì)有很多個(gè)變種版本。開源協(xié)議規(guī)定得太寬松,會(huì)導(dǎo)致開發(fā)者們喪失對(duì)開源軟件的很多權(quán)利,而太嚴(yán)格又不便于使用者們的使用以及開源軟件的傳播。
常見的開源協(xié)議有:GPL、LGPL、BSD、Apache 2.0、MIT
01
G P L
Linux就是采用了GPL協(xié)議。GPL協(xié)議允許代碼的獲取、代碼的免費(fèi)使用和引用、代碼的修改和衍生,但要求對(duì)修改和衍生代碼的進(jìn)行開源,不允許修改和衍生的代碼做為私有閉源的商業(yè)軟件發(fā)布和銷售。
這也就是為什么我們能用各種免費(fèi)的linux操作系統(tǒng),以及l(fā)inux上各種各樣的由個(gè)人,組織,以及商業(yè)軟件公司開發(fā)的免費(fèi)軟件了。
GPL協(xié)議的主要內(nèi)容是,只要在一個(gè)軟件中使用到了包含GPL 協(xié)議的產(chǎn)品(GPL類庫),則該軟件產(chǎn)品必須也采用GPL協(xié)議,既必須也是開源和免費(fèi),這就是所謂的“傳染性”。
由于GPL嚴(yán)格要求使用了GPL類庫的軟件產(chǎn)品必須使用GPL協(xié)議,對(duì)于使用GPL協(xié)議的開源代碼,商業(yè)軟件或者對(duì)代碼有保密要求的部門就不適合集成/采用作為類庫和二次開發(fā)的基礎(chǔ)。
02
L G P L
LGPL是GPL的一個(gè)為主要為類庫使用設(shè)計(jì)的開源協(xié)議。和GPL不同,LGPL允許商業(yè)軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業(yè)軟件的代碼。這使得采用LGPL協(xié)議的開源代碼可以被商業(yè)軟件作為類庫引用并發(fā)布和銷售。
但是如果修改LGPL協(xié)議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用LGPL協(xié)議。因此LGPL協(xié)議的開源代碼很適合作為第三方類庫被商業(yè)軟件引用,但不適合希望以LGPL協(xié)議代碼為基礎(chǔ),通過修改和衍生的方式做二次開發(fā)的商業(yè)軟件采用。
03
B S D
BSD開源協(xié)議是一個(gè)給予使用者很大自由的協(xié)議。開發(fā)者可以自由使用和修改源代碼,也可以將修改后的源代碼作為開源或者專有軟件再發(fā)布。但是有以下幾個(gè)要求:
如果再發(fā)布的產(chǎn)品中含有源代碼,則在源代碼中必須帶有原來代碼中的BSD協(xié)議。
如果再發(fā)布的只是二進(jìn)制類庫/軟件,則需要在類庫/軟件的文檔和版權(quán)申明中包含原有代碼中的BSD協(xié)議。
不可以用開源代碼的作者/機(jī)構(gòu)名字和原來產(chǎn)品的名字做市場(chǎng)推廣。
BSD 代碼鼓勵(lì)代碼共享,但需要尊重代碼作者的著作權(quán)。BSD由于允許使用者修改和重新發(fā)布代碼,也允許使用或在BSD代碼上開發(fā)商業(yè)軟件發(fā)布和銷售,因此是對(duì)商業(yè)集成很友好的協(xié)議。而很多的公司企業(yè)在選用開源產(chǎn)品的時(shí)候都首選BSD協(xié)議,因?yàn)榭梢酝耆刂七@些第三方的代碼,在必要的時(shí)候可以修改或者二次開發(fā)。
04
Apache 2.0
Apache Licence 2.0的簡(jiǎn)稱,Apache Licence是著名的非盈利開源組織Apache采用的協(xié)議。該協(xié)議和BSD類似,同樣鼓勵(lì)代碼共享和最終原作者的著作權(quán),同樣允許源代碼修改和再發(fā)布。但是也需要遵循以下條件:
需要給代碼的用戶一份Apache Licence。
如果修改了代碼,需要再被修改的文件中說明。
在衍生的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協(xié)議,商標(biāo),專利聲明和其他原來作者規(guī)定需要包含的說明。
如果再發(fā)布的產(chǎn)品中包含一個(gè)Notice文件,則在Notice文件中需要帶有Apache Licence。你可以再Notice中增加自己的許可,但是不可以表現(xiàn)為對(duì)Apache Licence構(gòu)成更改。
Apache Licence也是對(duì)商業(yè)應(yīng)用友好的許可,使用者也可以在需要的時(shí)候修改代碼來滿足并作為開源或商業(yè)產(chǎn)品發(fā)布/銷售。
*05M I T
MIT是和BSD一樣寬泛的許可協(xié)議,源自麻省理工學(xué)院(Massachusetts Institute of Technology, MIT)。使用MIT協(xié)議的開源軟件作者只保留版權(quán),而對(duì)使用者無任何其它限制。MIT與BSD類似,但是比BSD協(xié)議更加寬松,是目前最少限制的協(xié)議。這個(gè)協(xié)議唯一的條件就是在修改后的代碼或者發(fā)行包中包含原作者的許可信息,且適用于商業(yè)軟件。使用MIT的軟件項(xiàng)目有:jquery、Node.js。
-
開源
+關(guān)注
關(guān)注
3文章
3349瀏覽量
42500 -
BSD
+關(guān)注
關(guān)注
0文章
31瀏覽量
10414 -
gpl
+關(guān)注
關(guān)注
0文章
26瀏覽量
2181
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論