開源協議 - 幾張開源協議比較

天天在作軟件的時候都能遇到不少開原協議,一直不是很清楚有什麼區別,今天參考了一下別人的文章,在這裏作個總結。併發

先借鑑一個很牛B的圖:框架

 

說到開源協議,不得不提GNU。課本上給的定義是「GNU is Not Unix」,這是官方給出的遞歸定義,永遠也找不到本意,咱們能夠將它理解爲一個自由軟件工程項目或者一種計劃,是由Richard Stallman在1983年9月27公開發起的,它的目標是建立一套徹底自由、開放的操做系統。1985年10月Richard Stallman創立了自由軟件基金會(Free Software Foundation ,FSF),其主要工做是執行GNU計劃。爲了保證GNU軟件能夠自由的「使用、複製、修改、發佈」,一樣也禁止部分人在GNU軟件的基礎上本身修改併發布的軟件中添加任何限制他人自由使用的條款,在這個狀況下就誕生了GNU的許可條款,再後來又產生了其餘的(非GNU)許可條款,統稱爲開源許可協議。網站

這裏列舉了最經常使用的幾種開源協議:操作系統

GPL (GNU General Public License) :GNU通用公共許可協議
LGPL (GNU Lesser General Public License) :GNU寬通用公共許可協議
BSD (Berkeley Software Distribution)  :伯克利軟件分發許可協議
MIT (Massachusetts Institute of Technology):MIT許可協議之名源自麻省理工學院,又稱「X許可協議」或「X11許可協議」
Apache (Apache License) :Apache許可協議
MPL (Mozilla Public License) :Mozilla公共許可協議
1.GPL.net

GNU通用公共許可協議是一個被普遍使用的自由軟件許可協議條款,GPL 保證了全部開發者的權利,同時爲使用者提供了足夠的複製,分發,修改的權利:開放源代碼

可自由複製
你能夠將軟件複製到你的電腦,你客戶的電腦,或者任何地方。複製份數沒有任何限制。
可自由分發
在你的網站提供他人下載,拷貝到U盤送人。
能夠用來盈利
你能夠在分發軟件的時候收費,但你必須在收費前向你的客戶提供該軟件的 GNU GPL 許可協議,以便讓他們知道,他們能夠從別的渠道免費獲得這份軟件,以及你收費的理由。
可自由修改
若是你想添加或刪除某個功能,沒問題,若是你想在別的項目中使用部分代碼,也沒問題,惟一的要求是,使用了這段代碼的項目也必須使用 GPL 協議。
須要注意的是,分發的時候,須要明確提供源代碼和二進制文件,另外,用於某些程序的某些協議有一些問題和限制,使用 GPL 協議,你必須在源代碼代碼中包含相應信息,以及協議自己。blog

 

2.LGPL遞歸

GNU 還有另一種協議,叫作GNU寬通用公共協議,它對產品所保留的權利比 GPL 少,總的來講,LGPL 適合那些用於非 GPL 或非開源產品的開源類庫或框架。由於GPL要求包含有部分GPL受權代碼的軟件以GPL方式發佈,這樣開發者就沒法在收費的專屬軟件裏使用GPL受權代碼。 LGPL正好解決了這一問題:它不要求其它使用LGPL受權代碼的軟件以LGPL方式發佈。注意:LGPL有一特色是LGPL軟件能夠被轉換成GPL。這種特性對於在GPL庫或應用程序中直接使用LGPL程序有必定程度之幫助。開發

 

3.BSD
BSD 在軟件分發方面的限制比別的開源協議(如 GNU GPL)要少。該協議有多種版本,最主要的版本有兩個,新 BSD 協議與簡單 BSD 協議,這兩種協議通過修正,都和 GPL 兼容,併爲開源組織所承認。文檔

新 BSD 協議在軟件分發方面,除須要包含一份版權提示和免責聲明以外,沒有任何限制。另外,該協議還禁止拿開發者的名義爲衍生產品背書,但簡單 BSD 協議刪除了這一條款。

 

4.MIT
MIT 協議多是幾大開源協議中最寬鬆的一個,核心條款是:

該軟件及其相關文檔對全部人免費,能夠任意處置,包括使用,複製,修改,合併,發表,分發,再受權,或者銷售。惟一的限制是,軟件中必須包含上述版 權和許可提示。

這意味着:

你能夠自由使用,複製,修改,能夠用於本身的項目。
能夠免費分發或用來盈利。
惟一的限制是必須包含許可聲明。
MIT 協議是全部開源許可中最寬鬆的一個,除了必須包含許可聲明外,再無任何限制。

 

5.Apache
Apache 協議 2.0 和別的開源協議相比,除了爲用戶提供版權許可以外,還有專利許可,對於那些涉及專利內容的開發者而言,該協議最適合。

Apache 協議還有如下須要說明的地方:

永久權利
一旦被受權,永久擁有。
全球範圍的權利
在一個國家得到受權,適用於全部國家。
受權免費,且無版稅
前期,後期均無任何費用。
受權無排他性
任何人均可以得到受權
受權不可撤消
一旦得到受權,沒有任何人能夠取消。好比,你基於該產品代碼開發了衍生產品,你不用擔憂會在某一天被禁止使用該代碼。
分發代碼方面包含一些要求,主要是,要在聲明中對參與開發的人給予承認幷包含一份許可協議原文。

 

6.MPL

MPL既是獲得自由軟件基金會認可的自由軟件許可證,也是獲得開放源代碼促進會認可的開源軟件許可證。MPL容許在其受權下的源代碼與其餘受權的文件進行混合,包括私有許可證。但在MPL受權下的代碼文件必須保持MPL受權,而且保持開源。這樣的條款讓MPL既不像MIT和BSD那樣容許派生做品徹底轉化爲私有,也不像GPL那樣要求全部的派生做品,包括新的組件在內,所有必須保持GPL。經過容許在派生項目中存在私有模塊,同時保證核心文件的開源,MPL同時激勵了商業及開源社區來參與幫助開發核心軟件。

使用MPL受權的軟件並不受專利的限制,其能夠自由使用,修改,並可自由的從新發布。帶有專利代碼的版本仍然可使用,轉讓,甚至出售,但未經許可則不能修改代碼。此外,MPL並不授予用戶對於開發者商標的使用權。

爲了知足MPL的條款限制,用戶必須負擔一些「責任」,主要是關於散發使用MPL受權的軟件。用戶必須確保從新散發的軟件全部源代碼均以MPL受權,即便是以可執行文件的方式提供或是與其餘使用專有軟件受權的源代碼結合也同樣。但若跟以GNU通用公共許可協議、GNU寬通用公共許可證、Affero通用公共許可證受權的源代碼結合則是例外。此時開發者則可選用以上三種更加嚴格的條款來受權。

參考文章:

    常見的幾種開源協議

    幾種協議比較(二)

相關文章
相關標籤/搜索