似乎提到開源軟件,往往給人一種錯覺——我拿到了軟件源代碼,接下來我是不是可以大刀闊斧為所欲為?其實非也!開源軟件不等於免費軟件,開源也不等於免費。“Ctrl+C/V 擼起鍵盤就是干,開源協議要先看”,在你決定使用開源軟件之前,請花幾分鐘,了解一下開源許可(Open Source License)的具體限制條件,對你將大有裨益。
通常,我們接觸到的開源軟件(Open Source Software簡稱OSS)都有對應的開源許可證(Open Source License)對軟件的使用,複製,修改和再發布進行限制。開源協議是確定一個開源軟件版權的法律合同,所以,在使用開源軟件之前,了解各開源協議的特點對一名程序員來說尤為重要。
一、 Open Source License(OSL)

Open Source License
提到開源軟件或開源協議,首先我們會想到大名鼎鼎的Linux操作系統。Linux是最著名的開源項目之一,它是在GUN操作系統之上構建的免費操作系統內核。雖說Linux操作系統是免費的,但Linux使用了GPL 2.0許可協議對其自身的源代碼進行了限制。通常,所有的開源許可(準確描述是:開放源代碼許可)都旨在控制軟件的使用方式,例如:
- 個人使用:出於非商業目的情況下使用和修改軟件
- 發行:用於商業或非商業行為用途的軟件共享
- 鏈接:鏈接到免費或專有資源
- 專利授予:政府授予的知識產權權利
- 分包許可:軟件所有者允許其他人使用其軟件進行二次創新的限制條件
- 商標:對代表組織或產品的符號或文字的使用進行限制
二、許可證分類
在開源軟件的世界裡,協議分為兩類:Copyleft和Permissive。在介紹Copyleft和Permissive之前,先了解一下Copyright這個詞語。Copyright意為版權,我們在很多網站的頁腳都能看到這個標識。Copyright(版權)是授予創作作品的所有者的專有權利,通常是指在有限時間內對作品進行複製。創作作品可以以文學,藝術,教育或音樂的形式出現。版權旨在以創意作品的形式保護思想的原始表達,而不是思想本身。

Copyright and Copyleft
Copyright(版權)可以通過法律的形式授予,在這種情況下,版權因國家/地區的法律不同而有不同的限制條件;通常情況下,Copyright(版權)的公共法律期限在創作作品所有者去世後50年到100年內到期,具體取決於司法管轄區。
2.1 Copyleft
Copyleft(著作權或著作權),源自自由軟件運動,是一種利用現有Copyright(版權)體制來保障用戶軟件自用使用權利的許可方式,可以理解為允許他人使用,傳播創作作品,但會附件一些限制條件。在自由軟件許可中增加Copyleft條款後,該自由軟件除了允許用戶自由使用,修改,發布以外,Copyleft條款還要求作者所許可的人對修改後的派生作品要求使用相同的許可條件授予作者,以保障其後續所有派生作品都能被任何人自由使用,而不違背第一作者的初衷。
2.2 Permissive
Permissive free software licence (寬鬆自由軟件許可協議),是一種對軟件的使用,修改,傳播等方式採用最低要求的自由軟件許可協議條款類型。因此,這種類型的軟件許可協議將不保證被使用軟件的派生軟件會繼續保持原生作品的相關限制條件。怎麼來理解這句話呢?你可以簡單的理解為使用這種類型條款的軟件,在你拿到源碼後,基本上可以為所欲為。
Copyleft是在有限空間內的自由使用,修改和傳播,且不得違背原始作品的限制條款;而Permissive則可以最大限度的使用,修改和傳播軟件,而不用嚴格按照原始軟件所提出的條款執行。簡單來理解就是:如果一款軟件使用Copyleft類型許可協議規定軟件不得用於商業性質的活動,且不得閉源,那麼後續的衍生子軟件也得遵循該條款,如果是採用Permissive類型的許可協議,則後續衍生的子軟件可以用於商業用途,也可以閉源。
三、通用的開源協議
我們任何人都可以創建適合自己軟件作品的開源許可協議,並附帶在自己創作作品的源代碼中,但這樣會導致一個問題,因作者個人喜好和所在地區法律的不同,協議的種類和數量將變得龐大和難以維護;另外對於那些不熟悉法律並且未對開放源代碼許可協議有過詳細了解的人,面對各式各樣的許可協議時,將是一件很頭疼的事情。
面對這樣的問題,最好的解決辦法就是大家都遵循統一的且具有公信力的開放源代碼許可協議,這樣事情就變得簡單得多。在接下來的內容中,我將整理並列舉一些比較好且受歡迎的開放源代碼許可協議。
受個人學習能力和經驗的限制,在此僅列舉一些常見的和使用最多的開放源代碼許可協議。
3.1 GNU通用公共許可證(GPL)
GNU的通用公共許可證是最受歡迎的開放源代碼許證可之一。該許可證由理查德·斯托曼(Richard Stallman)所創建,用於保護GUN軟件的自由使用。GPL是Copyleft類型的許可協議,這意味着基於GPL組件編寫的任何軟件都必須以開源的方式進行發布。

GPL License
GPL允許自由地“使用、複製、修改和發布”,但修改和發布後的軟件也必須是可以自由“使用、複製、修改和發布”的。因此 GPL 大大限制了商業軟件使用GPL授權的軟件,如果非法使用,將面臨起訴的風險。目前 GPL 授權的項目有:Linux、Gnome、KDE、Emacs、GCC。GPL 的出發點是代碼的開源/免費使用和引用/修改/衍生代碼的開源/免費使用,但不允許修改後和衍生的代碼做為閉源的商業軟件發布和銷售,即必須也是開源和免費,這就是所謂的”傳染性”。
由於 GPL 嚴格要求使用了 GPL 類庫的軟件產品必須使用 GPL 協議,對於使用 GPL 協議的開源代碼,商業軟件或者對代碼有保密要求的部門就不適合集成/採用作為類庫和二次開發的基礎。
3.2 Apache 許可證
Apache許可證是由Apache軟件基金會(ASF)發布的開源軟件許可證。這是一個由強大社區支持的流行且廣泛部署的許可證。Apache許可證允許您自由使用,修改和分發任何Apache許可產品。但是,在這樣做時,您需要遵循Apache許可的條款。

Apache License
Apache許可證和 BSD許可證類似,同樣鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,再發布(作為開源或商業軟件)。需要滿足的條件也和 BSD 許可證類似:(1)需要給代碼的用戶一份 Apache Licence。(2)如果你修改了代碼,需要再被修改的文件中說明。(3)在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。(4)如果再發布的產品中包含一個 Notice 文件,則在 Notice 文件中需要帶有 Apache Licence。你可以在 Notice 中增加自己的許可,但不可以表現為對 Apache Licence 構成更改。(5)Apache Licence 也是對商業應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要並作為開源或商業產品發布/銷售。
3.3 BSD許可證
BSD(全稱:Berkeley Software Distribution),1970年代由伯克利加州大學的學生比爾·喬伊創建。BSD許可證非常寬鬆,它允許無限制地重用全部或部分軟件,以集成到自由軟件或所有者中。

BSD Licese
一般情況下,GPL的條款尊重BSD許可的所有政策,因此BSD許可的代碼可以根據GPL許可發布,而無需原始作者授權許可。但反過來,未經原始作者許可,不得將GPL許可的代碼發布到BSD許可的代碼中,因為BSD許可證不完全遵循GPL施加的所有限制。
通常,BSD許可證將給使用者很大的自由度,基本上可以理解為”我可以為所欲為”。你可以自由使用源代碼,盡情的修改並再次發布,或者作為專有軟件再發布。但這種“為所欲為”的行為也是有前提條件的,當你發布使用了 BSD 協議的代碼,或則以 BSD 協議代碼為基礎做二次開發自己的產品時,需要滿足三個條件:(1)如果再發布的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的 BSD 協議。(2)如果再發布的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權聲明中包含原來代碼中的 BSD 協議。(3)不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。
BSD 代碼鼓勵代碼共享,但需要尊重代碼作者的著作權。BSD 由於允許使用者修改和重新發布代碼,也允許使用或在 BSD 代碼上開發商業軟件發布和銷售,因此是對商業集成很友好的協議。而很多的公司企業在選用開源產品的時候都首選 BSD 協議,因為可以完全控制這些第三方的代碼,在必要的時候可以修改或者二次開發。
3.4 MIT許可證
MIT是最寬鬆的自由軟件許可證之一。基本上,只要您添加了原始MIT許可證和版權聲明的副本,就可以和BSD許可證那樣,對原始軟件進行許可範圍內的任何操作,也相當於可以”為所欲為”。如果你在開放源代碼時,只想保留版權,而無需其他任何的限制,那麼你可以選擇MIT許可證。

MIT License
3.5 CDDL許可證
CDDL(Common Development and Distribution License)通用開發和發行許可證,是由Sun Microsystems發布的開源許可證,用來替代Sun Public License(SPL)。Sun公司將CDDL視為SPL的第二個版本,CDDL受到Mozilla公共許可證(MPL)的啟發,對SPL進行了修訂,所有CDDL通常被成為MPL的簡化版,旨在促進代碼的可復用性。

Sun Common Development and Distribution License
你可以自由複製和分發CDDL許可的任何軟件的任何原始或衍生作品。但是,你不得刪除或更改軟件中包含的任何版權,專利或商標聲明。你還必須保留許可聲明或任何描述性文字,以及任何貢獻者或初始開發者的信息。
3.6 Eclipse公共許可證
EPL(Eclipse Public License)是由Eclipse Foundation開發的開源許可證。它源自通用公共許可證(CPL),EPL許可證是Copyleft類型的許可證,如果你修改了基於EPL許可證的組件並將其作為程序的一部分,然後發布程序源代碼,則需要在EPL下公開所有修改過的源代碼。如果公司或者組織在其產品中使用EPL許可證,則該協議可以保護作者免受可能的訴訟或損害,此外,EPL還提供了專利授權。

Eclipse Publick License
以上就是常見且比較流行的開源許可證介紹信息,通過上述的講解我們可以了解到,並非所有的開源軟件都是免費的,基本上所有開放源代碼的軟件作品都附帶有軟件在使用,修改和二次發布過程中需要履行的條款以及需要承擔的責任。因此,萬不可簡單的將開源等同於免費,且開源的精神和目的也不是免費使用或者對作者源代碼”為所欲為”。
開源的精神在於尊重用戶的自由以及知識傳播的自由,是為了讓優秀的軟件獲得更大的進步和發展。可能Copyleft是一種非常理想化的思想,現實總會與其精神出現偏差,但這種理想主義思想是具有現實意義的,只有不斷的提倡和傳播這種思想,社會才會聚集更多的正能量。開源可以讓人們自由享受軟件所帶來的便利以及思想的交流和創新,但在我們享受別人帶來的福利時,也請尊重別人的勞動成果。自由傳播和使用,不等於免費使用和無償使用,在打破壁壘,敢於創新的同時,也要遵循基本的開源精神。
四、補充
如果你還想了解更多的許可協議內容,可以通過查找下方列表中的目錄,點擊對應的鏈接地址,查看更詳細的內容:

License列表
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/288096.html
微信掃一掃
支付寶掃一掃