大家好,我是小麥,今天和大家分享一些開源協(xié)議的知識。
這些協(xié)議縮寫詞在各種代碼、文檔中隨處可見,比如GPL、BSD、MIT、Mozilla、Apache和LGPL等等。
github新建倉庫時協(xié)議選擇
這么多協(xié)議,我們了解的有多少呢?
作為一名專業(yè)的嵌入式系統(tǒng)開發(fā)人員,了解這些開源協(xié)議是一種基本素養(yǎng),特別是當你自己要開源一些東西的時候該如何選擇開源協(xié)議就變得非常重要了!
下面對常見的幾種做一下簡單的介紹。
開源協(xié)議的作用
開源協(xié)議規(guī)定了你在使用開源軟件時的權(quán)利和責(zé)任,也就是規(guī)定了你可以做什么,不可以做什么。
開源協(xié)議雖然不一定具備法律效力,但是當涉及軟件版權(quán)糾紛時,開源協(xié)議也是非常重要的證據(jù)之一。
對于準備編寫一款開源軟件的開發(fā)人員,也非常建議先了解一下當前最熱門的開源許可協(xié)議,選擇一個合適的開源許可協(xié)議來最大限度保護自己的軟件權(quán)益。
如何選擇開源協(xié)議
世界上的開源許可證(Open Source License)大概有上百種,今天我們來介紹下幾種我們常見的開源協(xié)議。
大致有GPL、BSD、MIT、Mozilla、Apache和LGPL這6種。
點擊放大
下面通過這幾張圖,大家可以一目了然的選擇合適的開源協(xié)議:
點擊放大
烏克蘭程序員 Paul Bagwell 畫了一張分析圖
單擊放大
單擊放大
詳細介紹常用開源協(xié)議
GNU GPL協(xié)議
GNU GPL具體為(GNU General Public License,GNU通用公共許可證)。
只要軟件中包含了遵循 GPL 協(xié)議的產(chǎn)品或代碼,該軟件就必須也遵循 GPL 許可協(xié)議,也就是必須開源免費,不能閉源收費,因此這個協(xié)議并不適合商用軟件。
遵循 GPL 協(xié)議的開源軟件數(shù)量極其龐大,包括 Linux 系統(tǒng)在內(nèi)的大多數(shù)的開源軟件都是基于這個協(xié)議的。
BSD協(xié)議
BSD協(xié)議具體為(Berkeley Software Distribution,伯克利軟件發(fā)布版)協(xié)議。
BSD 協(xié)議給予用戶極大的權(quán)利,用戶可以使用、修改和重新發(fā)布遵循該許可的軟件,并且可以將軟件作為商業(yè)軟件發(fā)布和銷售,前提是需要滿足下面三個條件:
如果再發(fā)布的軟件中包含源代碼,則源代碼必須繼續(xù)遵循 BSD 許可協(xié)議。
如果再發(fā)布的軟件中只有二進制程序,則需要在相關(guān)文檔或版權(quán)文件中聲明原始代碼遵循了 BSD 協(xié)議。
不允許用原始軟件的名字、作者名字或機構(gòu)名稱等進行市場推廣。
BSD 對商業(yè)比較友好,很多公司在選用開源產(chǎn)品的時候都首選 BSD 協(xié)議,因為可以完全控制這些第三方的代碼,甚至在必要的時候可以修改或者二次開發(fā)。
Apache 協(xié)議
Apache 協(xié)議具體為許可證版本(Apache License Version)協(xié)議,Apache 和 BSD 類似,都適用于商業(yè)軟件。
Apache 協(xié)議在為開發(fā)人員提供版權(quán)及專利許可的同時,允許用戶擁有修改代碼及再發(fā)布的自由。
Hadoop、Apache HTTP Server、MongoDB 等項目都是基于該許可協(xié)議研發(fā)的,程序開發(fā)人員在開發(fā)遵循該協(xié)議的軟件時,要嚴格遵守下面的四個條件:
該軟件及其衍生品必須繼續(xù)使用 Apache 許可協(xié)議。
如果修改了程序源代碼,需要在文檔中進行聲明。
若軟件是基于他人的源代碼編寫而成的,則需要保留原始代碼的協(xié)議、商標、專利聲明及其他原作者聲明的內(nèi)容信息。
如果再發(fā)布的軟件中有聲明文件,則需在此文件中標注 Apache 許可協(xié)議及其他許可協(xié)議。
Apache 協(xié)議還有以下需要說明的地方: 永久權(quán)利:?一旦被授權(quán),永久擁有。
全球范圍的權(quán)利:?在一個國家獲得授權(quán),適用于所有國家。
授權(quán)免費,且無版稅: 前期,后期均無任何費用。
授權(quán)無排他性: 任何人都可以獲得授權(quán)
授權(quán)不可撤消: 一旦獲得授權(quán),沒有任何人可以取消。比如,你基于該產(chǎn)品代碼開發(fā)了衍生產(chǎn)品,你不用擔心會在某一天被禁止使用該代碼。
MIT協(xié)議
MIT協(xié)議具體為(Massachusetts Institute of Technology)協(xié)議,又稱「X條款」或「X11條款」。
目前限制最少的開源許可協(xié)議之一(比 BSD 和 Apache 的限制都少),只要程序的開發(fā)者在修改后的源代碼中保留原作者的許可信息即可,因此普遍被商業(yè)軟件所使用。
使用 MIT 協(xié)議的軟件有 PuTTY、X Window System、Ruby on Rails、Lua 5.0 onwards、Mono 等。
GUN LGPL協(xié)議
GUN LGPL協(xié)議具體是(GNU Lesser General Public License,GNU 寬通用公共許可證)。LGPL 是 GPL 的一個衍生版本,也被稱為 GPL V2,該協(xié)議主要是為類庫設(shè)計的開源協(xié)議。
LGPL 允許商業(yè)軟件通過類庫引用(link)的方式使用 LGPL 類庫,而不需要開源商業(yè)軟件的代碼。這使得采用 LGPL 協(xié)議的開源代碼可以被商業(yè)軟件作為類庫引用并發(fā)布和銷售。
但是如果修改 LGPL 協(xié)議的代碼或者衍生品,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用 LGPL 協(xié)議。
因此LGPL協(xié)議的開源代碼很適合作為第三方類庫被商業(yè)軟件引用,但不適合希望以 LGPL 協(xié)議代碼為基礎(chǔ),通過修改和衍生的方式做二次開發(fā)的商業(yè)軟件采用。
審核編輯 :李倩
?
評論