開源協(xié)議比較(GPL、BSD、MIT、Mozilla、Apache和LGPL)
1、 什么是開源協(xié)議
開源協(xié)議是指開源社區(qū)為了維護(hù)作者和貢獻(xiàn)者的合法權(quán)利,保證軟件不被一些商業(yè)機(jī)構(gòu)或個(gè)人竊取,影響軟件的發(fā)展而開發(fā)的協(xié)議。
2、 各個(gè)開源協(xié)議簡(jiǎn)介
GPL:來源自由軟件聯(lián)盟GNU,GPL/LGPL側(cè)重于代碼及衍生代碼的開源與免費(fèi)使用。GPL協(xié)議的主要內(nèi)容是只要在一個(gè)軟件中使用GPL協(xié)議的產(chǎn)品,則該軟件產(chǎn)品必須也采用GPL協(xié)議,既必須也是開源和免費(fèi)。GPL協(xié)議的產(chǎn)品作為一個(gè)單獨(dú)的產(chǎn)品使用沒有任何問題,還可以享受免費(fèi)的優(yōu)勢(shì)。GPL的出發(fā)點(diǎn)是代碼的開源/免費(fèi)使用和引用/修改/衍生代碼的開源/免費(fèi)使用,但不允許修改后和衍生的代碼做為閉源的商業(yè)軟件發(fā)布和銷售。
BSD:BSD是"Berkeley Software Distribution"的縮寫,意思是"伯克利軟件發(fā)行版"。
BSD開源協(xié)議是一個(gè)給于使用者很大自由的協(xié)議??梢宰杂傻氖褂?,修改源代碼,也可以將修改后的代碼作為開源或者專有軟件再發(fā)布。 當(dāng)你發(fā)布使用了BSD協(xié)議的代碼,或則以BSD協(xié)議代碼為基礎(chǔ)做二次開發(fā)自己的產(chǎn)品時(shí),需要滿足三個(gè)條件:
1.如果再發(fā)布的產(chǎn)品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協(xié)議。
2.如果再發(fā)布的只是二進(jìn)制類庫/軟件,則需要在類庫/軟件的文檔和版權(quán)聲明中包含原來代碼中的BSD協(xié)議。
3.不可以用開源代碼的作者/機(jī)構(gòu)名字和原來產(chǎn)品的名字做市場(chǎng)推廣。
BSD代碼鼓勵(lì)代碼共享,但需要尊重代碼作者的著作權(quán)。BSD由于允許使用者修改和重新發(fā)布代碼,也允許使用或在BSD代碼上開發(fā)商業(yè)軟件發(fā)布和銷售,因此是對(duì)商業(yè)集成很友好的協(xié)議。
MIT:MIT是和BSD一樣寬范的許可協(xié)議,源自麻省理工學(xué)院(Massachusetts Institute of Technology, MIT)。作者只想保留版權(quán),而無任何其他了限制。MIT與BSD類似,但是比BSD協(xié)議更加寬松,是目前最少限制的協(xié)議。這個(gè)協(xié)議唯一的條件就是在修改后的代碼或者發(fā)行包包含原作者的許可信息。適用商業(yè)軟件。使用MIT的軟件項(xiàng)目有:jquery、Node.js。
Mozilla:Mozilla公共許可證(英語:Mozilla Public License,簡(jiǎn)稱MPL)是個(gè)自由、開源、詳細(xì)的軟件許可證,由Mozilla基金會(huì)開發(fā)并維護(hù)。該協(xié)議融合了BSD許可證和GNU通用公共許可協(xié)議的特性,追求平衡專有軟件和開源軟件開發(fā)者之間的顧慮。
MPL允許在其授權(quán)下的源代碼與其他授權(quán)的文件進(jìn)行混合,包括私有許可證。但在MPL授權(quán)下的代碼文件必須保持MPL授權(quán),并且保持開源。
Apache:Apache License(Apache許可證),是Apache軟件基金會(huì)發(fā)布的一個(gè)自由軟件許可證。該協(xié)議和BSD類似,同樣鼓勵(lì)代碼共享和最終原作者的著作權(quán),同樣允許源代碼修改和再發(fā)布。但是也需要遵循以下條件:
1.需要給代碼的用戶一份Apache Licence。
2.如果修改了代碼,需要再被修改的文件中說明。
3.在衍生的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協(xié)議,商標(biāo),專利聲明和其他原來作者規(guī)定需要包含的說明。
使用這個(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)心會(huì)在某一天被禁止使用該代碼
LGPL:GNU寬通用公共許可證,簡(jiǎn)稱LGPL(GNU Lesser General Public License),被用于一些GNU程序庫。這個(gè)許可證以前被稱為GNU庫(Library)通用公共許可證。LGPL是GPL的一個(gè)為主要為類庫使用設(shè)計(jì)的開源協(xié)議。LGPL是GPL的變種,也是GNU為了得到更多的甚至是商用軟件開發(fā)商的支持而提出的。與GPL的最大不同是,可以私有使用LGPL授權(quán)的自由軟件,開發(fā)出來的新軟件可以是私有的而不需要是自由軟件。所以任何公司在使用自由軟件之前應(yīng)該保證在LGPL或其它GPL變種的授權(quán)下。
但是如果修改LGPL協(xié)議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用LGPL協(xié)議。因此LGPL協(xié)議的開源代碼很適合作為第三方類庫被商業(yè)軟件引用。
GPL/LGPL都保障原作者的知識(shí)產(chǎn)權(quán),避免有人利用開源代碼復(fù)制并開發(fā)類似的產(chǎn)品。
3、 主流開源協(xié)議比較(側(cè)重許可方面)
想了解更多?現(xiàn)在就開始免費(fèi)體驗(yàn)