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