【轉】五種開源協議的比較(BSD, Apache, GPL, LGPL, MIT)

來源:互聯網
上載者:User

標籤:http   使用   檔案   os   問題   linux   

當 Adobe、Microsoft、Sun 等一系列巨頭開始表現出對”開源”的青睞時,”開源”的時代即將到來!

現今存在的開源協議很多,而經過 Open Source Initiative 組織通過獲批准的開源協議目前有 58 種(http://www.opensource.org/licenses/alphabetical)。我們在常見的開源協議如 BSD, GPL, LGPL, MIT 等都是 OSI 獲批准的協議。如果要開源自己的代碼,最好也是選擇這些被獲批准的開源協議。

這裡我們來看四種最常用的開源協議及它們的適用範圍,供那些準備開源或者使用開源產品的開發人員/廠家參考。

BSD 開源協議(original BSD license、FreeBSD license、Original BSD license)

BSD 開源協議是一個給於使用者很大自由的協議。基本上使用者可以”為所欲為”,可以自由的使用,修改原始碼,也可以將修改後的代碼作為開源或者專有軟體再發布。

但”為所欲為”的前提當你發布使用了 BSD 協議的代碼,或則以 BSD 協議代碼為基礎做二次開發自己的產品時,需要滿足三個條件:

  1. 如果再發布的產品中包含原始碼,則在原始碼中必須帶有原來代碼中的 BSD 協議。
  2. 如果再發布的只是二進位類庫/軟體,則需要在類庫/軟體的文檔和著作權聲明中包含原來代碼中的 BSD 協議。
  3. 不可以用開原始碼的作者/機構名字和原來產品的名字做市場推廣。

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

Apache Licence 2.0(Apache License, Version 2.0、Apache License, Version 1.1、Apache License, Version 1.0)

Apache Licence 是著名的非盈利開源組織 Apache 採用的協議。該協議和 BSD 類似,同樣鼓勵代碼共用和尊重原作者的著作權,同樣允許代碼修改,再發布(作為開源或商業軟體)。需要滿足的條件也和 BSD 類似:

  1. 需要給代碼的使用者一份 Apache Licence
  2. 如果你修改了代碼,需要再被修改的檔案中說明。
  3. 在延伸的代碼中(修改和有原始碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。
  4. 如果再發布的產品中包含一個Notice檔案,則在Notice檔案中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現為對Apache Licence構成更改。
  5. Apache Licence也是對商業應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要並作為開源或商業產品發布/銷售。

GPL(GNU General Public License)

我們很熟悉的 Linux 就是採用了 GPL。GPL 協議和 BSD, Apache Licence 等鼓勵代碼重用的許可很不一樣。GPL 的出發點是代碼的開源/免費使用和引用/修改/衍生代碼的開源/免費使用,但不允許修改後和衍生的代碼做為閉源的商業軟體發布和銷售。這也就是為什麼我們 能用免費的各種 Linux,包括商業公司的 Linux 和 Linux 上各種各樣的由個人,組織,以及商業軟體公司開發的免費軟體了。

GPL 協議的主要內容是只要在一個軟體中使用(”使用”指類庫引用,修改後的代碼或者衍生代碼)GPL 協議的產品,則該軟體產品必須也採用 GPL 協議,既必須也是開源和免費。這就是所謂的”傳染性”。GPL 協議的產品作為一個單獨的產品使用沒有任何問題,還可以享受免費的優勢。

由於 GPL 嚴格要求使用了 GPL 類庫的軟體產品必須使用 GPL 協議,對於使用 GPL 協議的開原始碼,商業軟體或者對代碼有保密要求的部門就不適合整合/採用作為類庫和二次開發的基礎。

其它細節如再發布的時候需要伴隨GPL協議等和BSD/Apache等類似。

LGPL(GNU Lesser General Public License)

LGPL 是 GPL 的一個為主要為類庫使用設計的開源協議。和 GPL 要求任何使用/修改/衍生之 GPL 類庫的的軟體必須採用GPL協議不同。LGPL 允許商業軟體通過類庫引用(link)方式使用 LGPL 類庫而不需要開源商業軟體的代碼。這使得採用 LGPL 協議的開原始碼可以被商業軟體作為類庫引用並發布和銷售。

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

GPL/LGPL 都保障原作者的智慧財產權,避免有人利用開原始碼複製並開發類似的產品

MIT(MIT)

MIT 是和 BSD 一樣寬範的許可協議,作者只想保留著作權,而無任何其他了限制。也就是說,你必須在你的發行版裡包含原許可協議的聲明,無論你是以二進位發布的還是以原始碼發布的。

再補一個微軟的開源許可:

2005年年底,微軟把這個“共用源碼許可證”一分為三(實際上是五個),即:

  • Microsoft Permissive License(簡稱 Ms-PL); 
  • Microsoft Community License(簡稱 Ms-CL);
  • Microsoft Reference License(簡稱 Ms-RL)。

其中(1)Ms-PL,最為寬鬆,允許使用者看(View)、修改(Modify)和分發(Redistribute)原始碼,而不論出自商業用途還 是非商業用途(目的),類似 BSD 許可證;(2)Ms-CL,允許使用者看(View)、修改(Modify)和分發(Redistribute)原始碼,但是,要求使用者保證任何包含它的較 大的“作品”,也必須按照這個許可證發布,類似 GNU 的 GPL 許可證;(3)Ms-RL,允許使用者看(View)原始碼,但不許修改和分發,只許參考。因此,微軟才把他叫作“微軟參考許可證”。

其他兩個許可證,叫作:(4) Ms-LPL;(5)Ms-LCL,其中的那個“L”,表示“Limited”(受限制之意),要求原始碼(編譯之後)僅能在 Windows 平台上運行。

本文摘自千一網路:www.cftea.com
http://www.cftea.com/c/2009/05/686GS4DFLZDXU724.asp
http://www.cftea.com/c/2008/12/T5SCY87E7HTSJ7Q3.asp

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.