今天跟大家分享一些開(kāi)源協(xié)議的知識(shí),這些協(xié)議縮寫(xiě)詞在各種代碼、文檔中隨處可見(jiàn),可又有多少人對(duì)這些知識(shí)細(xì)細(xì)研究過(guò)呢?作為一名專(zhuān)業(yè)的嵌入式系統(tǒng)開(kāi)發(fā)人員這些東西都是一種素養(yǎng),特別是當(dāng)你自己要開(kāi)源一些東西的時(shí)候該如何選擇開(kāi)源協(xié)議就變得非常重要了!
1 開(kāi)源協(xié)議的作用
開(kāi)源協(xié)議規(guī)定了你在使用開(kāi)源軟件時(shí)的權(quán)利和責(zé)任,也就是規(guī)定了你可以做什么,不可以做什么。 開(kāi)源協(xié)議雖然不一定具備法律效力,但是當(dāng)涉及軟件版權(quán)糾紛時(shí),開(kāi)源協(xié)議也是非常重要的證據(jù)之一。 對(duì)于準(zhǔn)備編寫(xiě)一款開(kāi)源軟件的開(kāi)發(fā)人員,也非常建議先了解一下當(dāng)前最熱門(mén)的開(kāi)源許可協(xié)議,選擇一個(gè)合適的開(kāi)源許可協(xié)議來(lái)最大限度保護(hù)自己的軟件權(quán)益。
2 如何選擇開(kāi)源協(xié)議
世界上的開(kāi)源許可證(Open Source License)大概有上百種,今天我們來(lái)介紹下幾種我們常見(jiàn)的開(kāi)源協(xié)議。大致有GPL、BSD、MIT、Mozilla、Apache和LGPL等。

下面通過(guò)這幾張圖,大家可以一目了然的選擇合適的開(kāi)源協(xié)議:
烏克蘭程序員 Paul Bagwell 畫(huà)了一張分析圖
3 詳細(xì)介紹常用開(kāi)源協(xié)議
GNU GPL(GNU General Public License,GNU通用公共許可證)
只要軟件中包含了遵循 GPL 協(xié)議的產(chǎn)品或代碼,該軟件就必須也遵循 GPL 許可協(xié)議,也就是必須開(kāi)源免費(fèi),不能閉源收費(fèi),因此這個(gè)協(xié)議并不適合商用軟件。
遵循 GPL 協(xié)議的開(kāi)源軟件數(shù)量極其龐大,包括 Linux 系統(tǒng)在內(nèi)的大多數(shù)的開(kāi)源軟件都是基于這個(gè)協(xié)議的。
GPL 開(kāi)源協(xié)議的主要特點(diǎn)
| 特點(diǎn) | 說(shuō)明 |
|---|---|
| 復(fù)制自由 | 允許把軟件復(fù)制到任何人的電腦中,并且不限制復(fù)制的數(shù)量。 |
| 傳播自由 | 允許軟件以各種形式進(jìn)行傳播。 |
| 收費(fèi)傳播 | 允許在各種媒介上出售該軟件,但必須提前讓買(mǎi)家知道這個(gè)軟件是可以免費(fèi)獲得的;因此,一般來(lái)講,開(kāi)源軟件都是通過(guò)為用戶(hù)提供有償服務(wù)的形式來(lái)盈利的。 |
| 修改自由 | 允許開(kāi)發(fā)人員增加或刪除軟件的功能,但軟件修改后必須依然基于GPL許可協(xié)議授權(quán)。 |
BSD(Berkeley Software Distribution,伯克利軟件發(fā)布版)協(xié)議
BSD 協(xié)議給予用戶(hù)極大的權(quán)利,用戶(hù)可以使用、修改和重新發(fā)布遵循該許可的軟件,并且可以將軟件作為商業(yè)軟件發(fā)布和銷(xiāo)售,前提是需要滿足下面三個(gè)條件:
如果再發(fā)布的軟件中包含源代碼,則源代碼必須繼續(xù)遵循 BSD 許可協(xié)議。
如果再發(fā)布的軟件中只有二進(jìn)制程序,則需要在相關(guān)文檔或版權(quán)文件中聲明原始代碼遵循了 BSD 協(xié)議。
不允許用原始軟件的名字、作者名字或機(jī)構(gòu)名稱(chēng)等進(jìn)行市場(chǎng)推廣。
BSD 對(duì)商業(yè)比較友好,很多公司在選用開(kāi)源產(chǎn)品的時(shí)候都首選 BSD 協(xié)議,因?yàn)榭梢酝耆刂七@些第三方的代碼,甚至在必要的時(shí)候可以修改或者二次開(kāi)發(fā)。
Apache 許可證版本(Apache License Version)協(xié)議
Apache 和 BSD 類(lèi)似,都適用于商業(yè)軟件。Apache 協(xié)議在為開(kāi)發(fā)人員提供版權(quán)及專(zhuān)利許可的同時(shí),允許用戶(hù)擁有修改代碼及再發(fā)布的自由。
Hadoop、Apache HTTP Server、MongoDB 等項(xiàng)目都是基于該許可協(xié)議研發(fā)的,程序開(kāi)發(fā)人員在開(kāi)發(fā)遵循該協(xié)議的軟件時(shí),要嚴(yán)格遵守下面的四個(gè)條件:
該軟件及其衍生品必須繼續(xù)使用 Apache 許可協(xié)議。
如果修改了程序源代碼,需要在文檔中進(jìn)行聲明。
若軟件是基于他人的源代碼編寫(xiě)而成的,則需要保留原始代碼的協(xié)議、商標(biāo)、專(zhuān)利聲明及其他原作者聲明的內(nèi)容信息。
如果再發(fā)布的軟件中有聲明文件,則需在此文件中標(biāo)注 Apache 許可協(xié)議及其他許可協(xié)議。
Apache 協(xié)議還有以下需要說(shuō)明的地方:
永久權(quán)利:一旦被授權(quán),永久擁有。
全球范圍的權(quán)利:在一個(gè)國(guó)家獲得授權(quán),適用于所有國(guó)家。
授權(quán)免費(fèi),且無(wú)版稅: 前期,后期均無(wú)任何費(fèi)用。
授權(quán)無(wú)排他性:任何人都可以獲得授權(quán)
授權(quán)不可撤消:一旦獲得授權(quán),沒(méi)有任何人可以取消。比如,你基于該產(chǎn)品代碼開(kāi)發(fā)了衍生產(chǎn)品,你不用擔(dān)心會(huì)在某一天被禁止使用該代碼。
MIT(Massachusetts Institute of Technology)協(xié)議
又稱(chēng)「X條款」或「X11條款」,目前限制最少的開(kāi)源許可協(xié)議之一(比 BSD 和 Apache 的限制都少),只要程序的開(kāi)發(fā)者在修改后的源代碼中保留原作者的許可信息即可,因此普遍被商業(yè)軟件所使用。
使用 MIT 協(xié)議的軟件有 PuTTY、X Window System、Ruby on Rails、Lua 5.0 onwards、Mono 等。
GUN LGPL(GNU Lesser General Public License,GNU 寬通用公共許可證)
LGPL 是 GPL 的一個(gè)衍生版本,也被稱(chēng)為 GPL V2,該協(xié)議主要是為類(lèi)庫(kù)設(shè)計(jì)的開(kāi)源協(xié)議。
LGPL 允許商業(yè)軟件通過(guò)類(lèi)庫(kù)引用(link)的方式使用 LGPL 類(lèi)庫(kù),而不需要開(kāi)源商業(yè)軟件的代碼。這使得采用 LGPL 協(xié)議的開(kāi)源代碼可以被商業(yè)軟件作為類(lèi)庫(kù)引用并發(fā)布和銷(xiāo)售。
但是如果修改 LGPL 協(xié)議的代碼或者衍生品,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用 LGPL 協(xié)議。
因此LGPL協(xié)議的開(kāi)源代碼很適合作為第三方類(lèi)庫(kù)被商業(yè)軟件引用,但不適合希望以 LGPL 協(xié)議代碼為基礎(chǔ),通過(guò)修改和衍生的方式做二次開(kāi)發(fā)的商業(yè)軟件采用。
原文標(biāo)題:全球各種開(kāi)源協(xié)議,搞研發(fā)得學(xué)習(xí)下!
文章出處:【微信公眾號(hào):嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
開(kāi)源
+關(guān)注
關(guān)注
3文章
4207瀏覽量
46139
原文標(biāo)題:全球各種開(kāi)源協(xié)議,搞研發(fā)得學(xué)習(xí)下!
文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
變頻器主電路外圍設(shè)備如何正確去選擇
如何正確選擇變頻電機(jī)的種類(lèi)
智能顯示模塊通過(guò)串口通信時(shí),如何知道已正確接收?如何判斷通信的指令符合協(xié)議?
開(kāi)源鴻蒙(金華)應(yīng)用創(chuàng)新示范中心”在浦江揭牌,浦江打造開(kāi)源鴻蒙生態(tài)城市新標(biāo)桿!
功率電感的型號(hào)我們應(yīng)該如何選擇?
如何選擇適合自己項(xiàng)目的通信協(xié)議評(píng)估工具?
開(kāi)放原子開(kāi)源基金會(huì)與騰訊云達(dá)成合作
如何選擇正確的光纖尾纖
MEMS傾角計(jì)應(yīng)該怎么選擇?
對(duì)于配置為Source的CCG3PA應(yīng)用,完全關(guān)閉輸出的正確方法應(yīng)該是什么?
使用HPIv2協(xié)議刷新CCG6DF設(shè)備,如何正確進(jìn)入閃爍模式?
光纖VS 同軸互連:如何選擇正確的高速測(cè)試方案?
何時(shí)選擇OSPF作為路由協(xié)議
應(yīng)該如何選擇正確的開(kāi)源協(xié)議?
評(píng)論