作為一個軟件開發人員,你一定也是天天接觸一些開源軟件,比如一些開源的軟件框架,比如開源的操作系統。這里大名鼎鼎就是Linux操作系統了,在服務器領域和嵌入式開發,它決定是大神中的大神級別的存在。
那么,就算我們學會了這么多的開源軟件,我們真的就了解這些開源軟件使用的【開源許可協議】嗎?這年代,不會還真有人理解成:【開源就是免費】吧?
通過閱讀本文,你講會了解到以下幾部分內容:
- 開源許可協議是什么及它的來源
- 開源許可協議之間的區別與聯系
- 幾種常見開源許可協議的主要內容
- 學習開源許可協議的意義
一、開源許可協議是什么及它的來源
開源許可協議是指開源社區為了維護作者和貢獻者的合法權利,保證軟件不被一些商業機構或個人竊取,影響軟件的發展而開發的協議。它的中文名:開源許可協議;外文名:open source license
開源許可協議是怎么來的呢?
自由軟件/開源軟件是自由的,源代碼開放的,我們可自由下載安裝和使用。
人們不太容易區分一個軟件是否真正開源的根本原因,在于開源研究院認可的許可有60多種。但在這60多種許可中,有一個許可明顯主宰著開源世界。迪博納說:“GPL(General Public License,通用性公開許可協議)是當今開源世界中最重要的許可。”根據迪博納引述的Google所進行的研究,基于GPL的開源代碼在所有開源軟件中占45%---50%。
二、開源許可協議之間的區別與聯系
為了能夠讓大家更加直觀地了解到,各種開源許可協議之間的區別與聯系,我參考了了一些資料,重新畫了這一張圖,供大家參考。下面的內容,我將會圍繞這張圖來展開。
?編輯這張就很清晰地描述了6種常見的開源許可協議之間的區別與聯系,主要圍繞的就是幾個核心問題:
- 修改源代碼后,是否允許閉源?
- 每一個修改過后的文件,是否都必須放置版權說明?
- 是否需要對每一個修改過的文件提供說明文檔?
- 新增代碼是否需要使用同樣的許可證?
- 衍生軟件的廣告是否可以使用你的名字進行促銷?
三、幾種常見開源許可協議的主要內容
說起各式各樣的開源許可協議,我們不得不提起GNU,它的全稱是“GNU's Not Unix!”(GNU并非Unix!)的首字母遞歸縮寫。
1985年Richard Stallman又創立了自由軟件基金會(Free Software Foundation)來為GNU計劃提供技術、法律以及財政支持。盡管GNU計劃大部分時候是由個人自愿無償貢獻,但FSF有時還是會聘請程序員幫助編寫。當GNU計劃開始逐漸獲得成功時,一些商業公司開始介入開發和技術支持。當中最著名的就是之后被Red Hat兼并的 Cygnus Solutions。
正因為有了GNU計劃的大力推廣,后面的Linux才逐漸發展壯大,直至今日,它已經走到30個年頭,在服務器領域可謂是一枝獨秀。
也正因為有了Linux的蓬勃發展,慢慢才看到了越來越多的開源軟件走向大眾視野,整個軟件行業才走向了發展的快車道,今后也會是長盛不衰,勇往直前。
下面著重說一下各大流行的開源許可協議的核心內容。
1、Apache開源許可協議
Apache (Apache License) :Apache許可協議,一般常用是2.0版本,Apache 2.0許可證是ASF(Apache Software Foundation,Apache軟件基金會)在2004年發布的,以幫助ASF實現其目標:“通過開源軟件開發協作,提供可靠且長久不衰的軟件產品”。ASF出品的軟件一般都采用Apache 2.0許可證。當然,非ASF的項目也可以使用,Apache許可證設計出來是供所有人使用的。
它的核心內容如下:
你可以隨便用!不會因版權和專利找你麻煩的!
不能用我的商標!
你分發本作品或衍生作品時,可以不再提供源碼!
你在分發時,必須做到:
1)帶上本許可證!
2)保留本軟件的所有版權、專利等說明!
3)你改過的文件,你得說改了哪!
4)NOTICE文件中的信息得保留!
5)在遵循本許可證的條件下,你可以再許可!
6)本作品就這樣了,我不會負任何責任的!你想負責你可以負,但別拉上我!
2、MIT開源許可協議
MIT (Massachusetts Institute of Technology):MIT許可協議之名源自麻省理工學院,又稱“X許可協議”或“X11許可協議”。
MIT內容與三條款BSD許可證(3-clause BSD license)內容頗為近似,但是賦予軟件被授權人更大的權利與更少的限制。
它的核心內容是:
1)被授權人有權利使用、復制、修改、合并、出版發行、散布、再授權及販售軟件及軟件的副本。
2)被授權人可根據程式的需要修改授權條款為適當的內容。
3)在軟件和軟件的所有副本中都必須包含版權聲明和許可聲明。
此授權條款并非屬copyleft的自由軟件授權條款,允許在自由/開放源碼軟件或非自由軟件(proprietary software)所使用。
此亦為MIT與BSD(The BSD license, 3-clause BSD license)本質上不同處。
MIT條款可與其他授權條款并存。另外,MIT條款也是自由軟件基金會(FSF)所認可的自由軟件授權條款,與GPL相容。
相對于BSD開源許可協議,MIT開源許可協議是當下流行的開源許可協議中【最為寬松】的許可協議。
3、BSD開源許可協議
BSD (Berkeley Software Distribution) : 伯克利軟件分發許可協議。
BSD開源協議是一個給予使用者很大自由的協議。基本上使用者可以"為所欲為",可以自由的使用,修改源代碼,也可以將修改后的代碼作為開源或者專有軟件再發布。
但"為所欲為"的前提是當你發布使用了BSD協議的代碼,或者以BSD協議代碼為基礎做二次開發自己的產品時,需要滿足一些條件。
它的核心內容是:
1)如果再發布的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協議。
2)如果再發布的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權聲明中包含原來代碼中的BSD協議。
3)不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。
可以說BSD開源許可協議是當下流行的開源許可協議中【較為寬松】的許可協議。
4、MPL開源許可協議
MPL (Mozilla Public License):Mozilla公共許可協議。
MPL是The Mozilla Public License的簡寫,是1998年初Netscape的 Mozilla小組為其開源軟件項目設計的軟件許可證。MPL許可證出現的最重要原因就是,Netscape公司認為GPL許可證沒有很好地平衡開發者對 源代碼的需求和他們利用源代碼獲得的利益。同著名的GPL許可證和BSD許可證相比,MPL在許多權利與義務的約定方面與它們相同(因為都是符合OSIA 認定的開源軟件許可證)
它的核心內容是:
1)允許免費重發布、免費修改,但要求修改后的代碼版權歸軟件的發起者。
2)這種授權維護了商業軟件的利益,它要求基于這種軟件的修改無償貢獻版權給該軟件。這樣,圍繞該軟件的所有代碼得版權都集中在發起開發人得手中。
3)但MPL是允許修改,無償使用的。
4)MPL軟件對鏈接沒有要求。(要求假如你修改了一個基于MPL協議的源代碼,則必須列入或公開你所做的修改,假如其他源代碼不是基于MPL則不需要公開其源代碼)
5、GPL開源許可協議
GPL (GNU General Public License) :GNU通用公共許可協議。
GNU通用公共許可協議是一個被廣泛使用的自由軟件許可協議條款,GPL 保證了所有開發者的權利,同時為使用者提供了足夠的復制,分發,修改的權利。
它的核心內容是:
1)可自由復制:你可以將軟件復制到你的電腦,你客戶的電腦,或者任何地方。復制份數沒有任何限制。
2)可自由分發:在你的網站提供他人下載,拷貝到U盤送人。
3)可用來盈利:你可以在分發軟件的時候收費,但你必須在收費前向你的客戶提供該軟件的 GNU GPL 許可協議,以便讓他們知道,他們可以從別的渠道免費得到這份軟件,以及你收費的理由。
4)可自由修改:如果你想添加或刪除某個功能,沒問題,如果你想在別的項目中使用部分代碼,也沒問題,唯一的要求是,使用了這段代碼的項目也必須使用 GPL 協議。
需要注意的是,分發的時候,需要明確提供源代碼和二進制文件,另外,用于某些程序的某些協議有一些問題和限制,使用 GPL 協議,你必須在源代碼代碼中包含相應信息,以及協議本身。
6、LGPL開源許可協議
LGPL (GNU Lesser General Public License) :GNU寬通用公共許可協議
GNU 還有另外一種協議,叫做 LGPL (Lesser General Public Licence),它對產品所保留的權利比 GPL 少,總的來說,LGPL 適合那些用于非 GPL 或非開源產品的開源類庫或框架。因為 GPL 要求,使用了 GPL 代碼的產品必須也使用 GPL 協議,開發者不允許將 GPL 代碼用于商業產品。LGPL 繞過了這一限制。
LGPL是GPL的變種,也是GNU為了得到更多的甚至是商用軟件開發商的支持而提出的。與GPL的最大不同是,它有以下幾個核心內容:
1)可以私有使用LGPL授權的自由軟件;
2)開發出來的新軟件可以是私有的而不需要是自由軟件;
3)任何公司在使用自由軟件之前應該保證在LGPL或其它GPL變種的授權下。
四、學習開源許可協議的意義
通過對上面幾種常見的開源許可協議的學習,至少我們肯定已經打破了【開源就是免費】的固化思想,也了解到了【開源并不是簡簡單單把源代碼公開而已】。
從上面的分析,我們可以簡單對上面6中常見開源許可協議在寬松到嚴謹的方向做個簡單排序:
MIT > BSD > Apache > LGPL > Mozalla (MPL) > GPL
在今后使用/學習一些開源軟件/框架的時候,多一個心眼,了解一下它使用的是什么開源許可協議,如果你想基于這個開源軟件/框架進行一些商業行為,請務必了解清楚該開源許可協議的核心內容,以免將來在版本問題上受到法律的制裁。
好了,本期關于開源許可協議的介紹就到這里了,感興趣或者有疑問的,歡迎留言評論。謝謝大家。
參考文章:
百度百科開源許可協議
幾種常見的許可協議
逐句深扒 Apache 許可協議原文,一文看懂!
詳細介紹 MPL (Mozilla Public License) 協議
幾種開源協議的比較
?
-
開源
+關注
關注
3文章
3380瀏覽量
42603 -
許可協議
+關注
關注
0文章
4瀏覽量
5813 -
RT-Thread
+關注
關注
31文章
1300瀏覽量
40264
發布評論請先 登錄
相關推薦
評論