對于個(gè)人或者小公司而言,可能使用一些開源代碼不會在意,但對于大公司而言,他們使用開源代碼,就嚴(yán)格按照開源協(xié)議執(zhí)行。
有不少人認(rèn)為開源就是免費(fèi),其實(shí)這個(gè)觀點(diǎn)是錯(cuò)誤的,今天就來談?wù)勱P(guān)于開源的內(nèi)容。
關(guān)于開源
源軟件在追求“自由”的同時(shí),不能犧牲程序員的利益,否則將會影響程序員的創(chuàng)造激情,因此世界上有多種被開源促進(jìn)組織認(rèn)可的開源許可協(xié)議來保證開源工作者的權(quán)益。
開源協(xié)議規(guī)定了你在使用開源軟件時(shí)的權(quán)利和責(zé)任,也就是規(guī)定了你可以做什么,不可以做什么。
開源協(xié)議雖然不一定具備法律效力,但是當(dāng)涉及軟件版權(quán)糾紛時(shí),開源協(xié)議也是非常重要的證據(jù)之一。
對于準(zhǔn)備編寫一款開源軟件的開發(fā)人員,也非常建議先了解一下當(dāng)前最熱門的開源許可協(xié)議,選擇一個(gè)合適的開源許可協(xié)議來最大限度保護(hù)自己的軟件權(quán)益。
世界上的開源許可證(Open Source License)有上百種,今天我們來介紹下幾種我們常見的開源協(xié)議。
常見的開源協(xié)議
1、GPL通用公共許可協(xié)議
GPL全稱“GNU General Public License”,也叫 GNU GPL,其中典型的就是 Linux 采用了 GPL 開源協(xié)議。
只要軟件中包含了遵循 GPL 協(xié)議的產(chǎn)品或代碼,該軟件就必須也遵循 GPL 許可協(xié)議,也就是必須開源免費(fèi),不能閉源收費(fèi),因此這個(gè)協(xié)議并不適合商用軟件。
遵循 GPL 協(xié)議的開源軟件數(shù)量極其龐大,包括 Linux 系統(tǒng)在內(nèi)的大多數(shù)的開源軟件都是基于這個(gè)協(xié)議的。
GPL 開源協(xié)議的主要特點(diǎn):
- 復(fù)制自由: 允許把軟件復(fù)制到任何人的電腦中,并且不限制復(fù)制的數(shù)量。
- 傳播自由: 允許軟件以各種形式進(jìn)行傳播。
- 收費(fèi)傳播: 允許在各種媒介上出售該軟件,但必須提前讓買家知道這個(gè)軟件是可以免費(fèi)獲得的;因此,一般來講,開源軟件都是通過為用戶提供有償服務(wù)的形式來盈利的。
- 修改自由: 允許開發(fā)人員增加或刪除軟件的功能,但軟件修改后必須依然基于GPL許可協(xié)議授權(quán)。
2、BSD伯克利軟件發(fā)行版協(xié)議
BSD全稱"Berkeley Software Distribution"。
BSD 協(xié)議基本上允許用戶“為所欲為”,用戶可以使用、修改和重新發(fā)布遵循該許可的軟件,并且可以將軟件作為商業(yè)軟件發(fā)布和銷售,前提是需要滿足下面三個(gè)條件:
- 如果再發(fā)布的軟件中包含源代碼,則源代碼必須繼續(xù)遵循 BSD 許可協(xié)議。
- 如果再發(fā)布的軟件中只有二進(jìn)制程序,則需要在相關(guān)文檔或版權(quán)文件中聲明原始代碼遵循了 BSD 協(xié)議。
- 不允許用原始軟件的名字、作者名字或機(jī)構(gòu)名稱進(jìn)行市場推廣。
BSD 對商業(yè)比較友好,很多公司在選用開源產(chǎn)品的時(shí)候都首選 BSD 協(xié)議,因?yàn)榭梢酝耆刂七@些第三方的代碼,甚至在必要的時(shí)候可以修改或者二次開發(fā)。
3、Apache許可證協(xié)議
Apache Licence,是Apache軟件基金會發(fā)布的一個(gè)自由軟件許可證。
Apache許可證是著名的非盈利開源組織Apache采用的協(xié)議。該協(xié)議和BSD類似,同樣鼓勵代碼共享和最終原作者的著作權(quán),同樣允許源代碼修改和再發(fā)布。但是也需要遵循以下條件:
- 需要給代碼的用戶一份Apache Licence。
- 如果修改了代碼,需要再被修改的文件中說明。
- 在衍生的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協(xié)議,商標(biāo),專利聲明和其他原來作者規(guī)定需要包含的說明。
- 如果再發(fā)布的產(chǎn)品中包含一個(gè)Notice文件,則在Notice文件中需要帶有Apache Licence。你可以再Notice中增加自己的許可,但是不可以表現(xiàn)為對Apache Licence構(gòu)成更改。
- Apache Licence也是對商業(yè)應(yīng)用友好的許可。使用者也可以再需要的時(shí)候修改代碼來滿足并作為開源或商業(yè)產(chǎn)品發(fā)布/銷售。
使用這個(gè)協(xié)議的好處是:
- 永久權(quán)利 一旦被授權(quán),永久擁有。
- 全球范圍的權(quán)利 在一個(gè)國家獲得授權(quán),適用于所有國家。假如你在美國,許可是從印度授權(quán)的,也沒有問題。
- 授權(quán)免費(fèi) 無版稅, 前期、后期均無任何費(fèi)用。
- 授權(quán)無排他性 任何人都可以獲得授權(quán)
- 授權(quán)不可撤消 一旦獲得授權(quán),沒有任何人可以取消。比如,你基于該產(chǎn)品代碼開發(fā)了衍生產(chǎn)品,你不用擔(dān)心會在某一天被禁止使用該代碼
4、MIT麻省理工學(xué)院協(xié)議
MIT是和BSD一樣寬范的許可協(xié)議,源自麻省理工學(xué)院(Massachusetts Institute of Technology, MIT),又稱X11協(xié)議。。
作者只想保留版權(quán),而無任何其他了限制 。MIT與BSD類似,但是比BSD協(xié)議更加寬松,它是目前限制最少的開源許可協(xié)議之一(比 BSD 和 Apache 的限制都少), 只要程序的開發(fā)者在修改后的源代碼中保留原作者的許可信息即可 ,因此普遍被商業(yè)軟件所使用。
使用 MIT 協(xié)議的軟件有 PuTTY、X Window System、Ruby on Rails、Lua 5.0 onwards、Mono 等。
5、LGPL寬通用公共許可協(xié)議
LGPL全稱“GNU Lesser General Public License”。
LGPL 是 GPL 的一個(gè)衍生版本,也被稱為 GPL V2 ,該協(xié)議主要是為類庫設(shè)計(jì)的開源協(xié)議。
LGPL 允許商業(yè)軟件通過類庫引用(link)的方式使用 LGPL 類庫,而不需要開源商業(yè)軟件的代碼。這使得采用 LGPL 協(xié)議的開源代碼可以被商業(yè)軟件作為類庫引用并發(fā)布和銷售。
但是如果修改 LGPL 協(xié)議的代碼或者衍生品,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用 LGPL 協(xié)議。因此LGPL協(xié)議的開源代碼很適合作為第三方類庫被商業(yè)軟件引用,但不適合希望以 LGPL 協(xié)議代碼為基礎(chǔ),通過修改和衍生的方式做二次開發(fā)的商業(yè)軟件采用。
世界上的開源許可證有上百種,還有很多,比如:MPL、 EPL、 Mozilla、 Creative Commons等,這里就不一一列舉了,感興趣的小伙伴可以自行上網(wǎng)了解。
這可以參看:
https://www.gnu.org/licenses/license-list.html
如何選擇開源協(xié)議
世界上的開源協(xié)議有上百種,很少有人能徹底搞清它們之間的區(qū)別,即使在最流行的六種開源協(xié)議【GPL、BSD、MIT、Mozilla、Apache 和 LGPL】之中做選擇,也很復(fù)雜。
某程序員畫了一張分析圖,說明應(yīng)該怎么選擇開源協(xié)議,大家看了一目了然,真是清爽。
來自于阮一峰博客
-
開源
+關(guān)注
關(guān)注
3文章
3370瀏覽量
42577 -
程序員
+關(guān)注
關(guān)注
4文章
953瀏覽量
29820 -
gpl
+關(guān)注
關(guān)注
0文章
26瀏覽量
2183
發(fā)布評論請先 登錄
相關(guān)推薦
評論