?作為一名軟件開(kāi)發(fā)人員,你一定也是經(jīng)常接觸到開(kāi)源軟件,但你真的就了解這些開(kāi)源軟件使用的開(kāi)源許可協(xié)議嗎?
? ? ? ? 你不會(huì)真的認(rèn)為,開(kāi)源就是完全免費(fèi)吧?那么讓我們通過(guò)本文來(lái)尋找答案。
一、開(kāi)源許可協(xié)議簡(jiǎn)述
????????開(kāi)源許可協(xié)議是指開(kāi)源社區(qū)為了維護(hù)作者和貢獻(xiàn)者的合法權(quán)利,保證軟件不被一些商業(yè)機(jī)構(gòu)或個(gè)人竊取,影響軟件的發(fā)展而開(kāi)發(fā)的協(xié)議。它的中文名:開(kāi)源許可協(xié)議;外文名:open source license。
二、開(kāi)源許可協(xié)議之間的區(qū)別與聯(lián)系
? ? ? ? 通過(guò)上圖,可以很清晰的了解到6種常見(jiàn)的開(kāi)源許可協(xié)議之間的區(qū)別與聯(lián)系,主要圍繞的就是幾個(gè)核心問(wèn)題:
- 修改源代碼后,是否允許閉源?
- 每一個(gè)修改過(guò)后的文件,是否都必須放置版權(quán)說(shuō)明?
- 是否需要對(duì)每一個(gè)修改過(guò)的文件提供說(shuō)明文檔?
- 新增代碼是否需要使用同樣的許可證?
- 衍生軟件的廣告是否可以使用你的名字進(jìn)行促銷(xiāo)??
?三、幾種常見(jiàn)開(kāi)源許可協(xié)議的主要內(nèi)容
????????說(shuō)起各式各樣的開(kāi)源許可協(xié)議,我們不得不提起GNU,它的全稱(chēng)是“GNU's Not Unix!”(GNU并非Unix?。┑氖鬃帜高f歸縮寫(xiě)。
????????1985年Richard Stallman又創(chuàng)立了自由軟件基金會(huì)(Free Software Foundation)來(lái)為GNU計(jì)劃提供技術(shù)、法律以及財(cái)政支持。盡管GNU計(jì)劃大部分時(shí)候是由個(gè)人自愿無(wú)償貢獻(xiàn),但FSF有時(shí)還是會(huì)聘請(qǐng)程序員幫助編寫(xiě)。當(dāng)GNU計(jì)劃開(kāi)始逐漸獲得成功時(shí),一些商業(yè)公司開(kāi)始介入開(kāi)發(fā)和技術(shù)支持。當(dāng)中最著名的就是之后被Red Hat兼并的 Cygnus Solutions。
????????正因?yàn)橛辛薌NU計(jì)劃的大力推廣,后面的Linux才逐漸發(fā)展壯大,直至今日,它已經(jīng)走到30個(gè)年頭,在服務(wù)器領(lǐng)域可謂是一枝獨(dú)秀。也正因?yàn)橛辛薒inux的蓬勃發(fā)展,慢慢才看到了越來(lái)越多的開(kāi)源軟件走向大眾視野,整個(gè)軟件行業(yè)才走向了發(fā)展的快車(chē)道,今后也會(huì)是長(zhǎng)盛不衰,勇往直前。下面著重說(shuō)一下各大流行的開(kāi)源許可協(xié)議的核心內(nèi)容。
1、Apache開(kāi)源許可協(xié)議
?????????Apache (Apache License) :Apache許可協(xié)議,一般常用是2.0版本,Apache 2.0許可證是ASF(Apache Software Foundation,Apache軟件基金會(huì))在2004年發(fā)布的,以幫助ASF實(shí)現(xiàn)其目標(biāo):“通過(guò)開(kāi)源軟件開(kāi)發(fā)協(xié)作,提供可靠且長(zhǎng)久不衰的軟件產(chǎn)品”。ASF出品的軟件一般都采用Apache 2.0許可證。當(dāng)然,非ASF的項(xiàng)目也可以使用,Apache許可證設(shè)計(jì)出來(lái)是供所有人使用的。
它的核心內(nèi)容如下:
- 可以隨便使用,不會(huì)因版權(quán)和專(zhuān)利找你麻煩!
- 不能用我的商標(biāo)!
- 你分發(fā)本作品或衍生作品時(shí),可以不再提供源碼!
- 你在分發(fā)時(shí),必須做到:
????????1)帶上本許可證!
????????2)保留本軟件的所有版權(quán)、專(zhuān)利等說(shuō)明!
????????3)你改過(guò)的文件,你得說(shuō)改了哪!
????????4)NOTICE文件中的信息得保留!
????????5)在遵循本許可證的條件下,你可以再許可!
????????6)本作品就這樣了,我不會(huì)負(fù)任何責(zé)任的!你想負(fù)責(zé)你可以負(fù),但別拉上我!
2、MIT開(kāi)源許可協(xié)議
????????MIT (Massachusetts Institute of Technology):MIT許可協(xié)議之名源自麻省理工學(xué)院,又稱(chēng)“X許可協(xié)議”或“X11許可協(xié)議”。
????????MIT內(nèi)容與三條款BSD許可證(3-clause BSD license)內(nèi)容頗為近似,但是賦予軟件被授權(quán)人更大的權(quán)利與更少的限制。
它的核心內(nèi)容是:
- 被授權(quán)人有權(quán)利使用、復(fù)制、修改、合并、出版發(fā)行、散布、再授權(quán)及販?zhǔn)圮浖败浖母北尽?/li>
- 被授權(quán)人可根據(jù)程式的需要修改授權(quán)條款為適當(dāng)?shù)膬?nèi)容。
- 在軟件和軟件的所有副本中都必須包含版權(quán)聲明和許可聲明。
????????此授權(quán)條款并非屬copyleft的自由軟件授權(quán)條款,允許在自由/開(kāi)放源碼軟件或非自由軟件(proprietary software)所使用。此亦為MIT與BSD(The BSD license, 3-clause BSD license)本質(zhì)上不同處。
????????MIT條款可與其他授權(quán)條款并存。另外,MIT條款也是自由軟件基金會(huì)(FSF)所認(rèn)可的自由軟件授權(quán)條款,與GPL相容。
????????相對(duì)于BSD開(kāi)源許可協(xié)議,MIT開(kāi)源許可協(xié)議是當(dāng)下流行的開(kāi)源許可協(xié)議中【最為寬松】的許可協(xié)議。
3、BSD開(kāi)源許可協(xié)議?
????????BSD原先是用在加州大學(xué)柏克利分校發(fā)表的各個(gè)4.4BSD/4.4BSD-Lite版本上面(BSD是Berkly Software Distribution的簡(jiǎn)寫(xiě))的,后來(lái)也就逐漸沿用下來(lái)。1979年加州大學(xué)伯克利分校發(fā)布了BSD Unix,被稱(chēng)為開(kāi)放源代碼的先驅(qū),BSD許可證就是隨著B(niǎo)SD Unix發(fā)展起來(lái)的。BSD許可證被Apache和BSD操作系統(tǒng)等開(kāi)源軟件所采納。
????????相較于GPL許可證和MPL許可證的嚴(yán)格性,BSD許可證就寬松許多了,一樣是只需要附上許可證的原文,不過(guò)比較有趣的是,它還要求所有進(jìn)一步開(kāi)發(fā)者將自己的版權(quán)資料放上去,所以拿到以BSD許可證發(fā)行的軟件可能會(huì)遇到一個(gè)小狀況,就是這些版權(quán)資料許可證占的空間比程序還大。
它的核心內(nèi)容是:
- 如果再發(fā)布的產(chǎn)品中包含源代碼,則在源代碼中必須帶有原來(lái)代碼中的BSD協(xié)議。
- 如果再發(fā)布的只是二進(jìn)制類(lèi)庫(kù)/軟件,則需要在類(lèi)庫(kù)/軟件的文檔和版權(quán)聲明中包含原來(lái)代碼中的BSD協(xié)議。
- 不可以用開(kāi)源代碼的作者/機(jī)構(gòu)名字和原來(lái)產(chǎn)品的名字做市場(chǎng)推廣。
- 可以說(shuō)BSD開(kāi)源許可協(xié)議是當(dāng)下流行的開(kāi)源許可協(xié)議中【較為寬松】的許可協(xié)議。
4、MPL開(kāi)源許可協(xié)議?
????????MPL (Mozilla Public License):Mozilla公共許可協(xié)議。MPL是The Mozilla Public License的簡(jiǎn)寫(xiě),是1998年初Netscape的 Mozilla小組為其開(kāi)源軟件項(xiàng)目設(shè)計(jì)的軟件許可證。MPL許可證出現(xiàn)的最重要原因就是,Netscape公司認(rèn)為GPL許可證沒(méi)有很好地平衡開(kāi)發(fā)者對(duì)源代碼的需求和他們利用源代碼獲得的利益。同著名的GPL許可證和BSD許可證相比,MPL在許多權(quán)利與義務(wù)的約定方面與它們相同(因?yàn)槎际欠螼SIA 認(rèn)定的開(kāi)源軟件許可證)
它的核心內(nèi)容是:
- ?MPL雖然要求對(duì)于經(jīng)MPL許可證發(fā)布的源代碼的修改也要以MPL許可證的方式再許可出來(lái),以保證其他人可以在MPL的條款下共享源代碼。但是,在MPL許可證中對(duì)“發(fā)布”的定義是“以源代碼方式發(fā)布的文件”,這就意味著MPL允許一個(gè)企業(yè)在自己已有的源代碼庫(kù)上加一個(gè)接口,除了接口程序的源代碼以MPL許可證的形式對(duì)外許可外,源代碼庫(kù)中的源代碼就可以不用MPL許可證的方式強(qiáng)制對(duì)外許可。這些,就為借鑒別人的源代碼用做自己商業(yè)軟件開(kāi)發(fā)的行為留了一個(gè)活口。
- MPL許可證第三條第7款中允許被許可人將經(jīng)過(guò)MPL許可證獲得的源代碼同自己其他類(lèi)型的代碼混合得到自己的軟件程序。
- ?對(duì)軟件專(zhuān)利的態(tài)度,MPL許可證不像GPL許可證那樣明確表示反對(duì)軟件專(zhuān)利,但是卻明確要求源代碼的提供者不能提供已經(jīng)受專(zhuān)利保護(hù)的源代碼(除非他本人是專(zhuān)利權(quán)人,并書(shū)面向公眾免費(fèi)許可這些源代碼),也不能在將這些源代碼以開(kāi)放源代碼許可證形式許可后再去申請(qǐng)與這些源代碼有關(guān)的專(zhuān)利。
-
對(duì)源代碼的定義:而在MPL(1.1版本)許可證中,對(duì)源代碼的定義是:“源代碼指的是對(duì)作品進(jìn)行修改最優(yōu)先擇取的形式,它包括:所有模塊的所有源程序,加上有關(guān)的接口的定義,加上控制可執(zhí)行作品的安裝和編譯的‘原本’(原文為‘Script’),或者不是與初始源代碼顯著不同的源代碼就是被源代碼貢獻(xiàn)者選擇的從公共領(lǐng)域可以得到的程序代碼?!?/p>
-
MPL許可證第3條有專(zhuān)門(mén)的一款是關(guān)于對(duì)源代碼修改進(jìn)行描述的規(guī)定,就是要求所有再發(fā)布者都得有一個(gè)專(zhuān)門(mén)的文件就對(duì)源代碼程序修改的時(shí)間和修改的方式有描述。
5、GPL開(kāi)源許可協(xié)議?
????????GPL (GNU General Public License) :GNU通用公共許可協(xié)議。GNU通用公共許可協(xié)議是一個(gè)被廣泛使用的自由軟件許可協(xié)議條款,GPL 保證了所有開(kāi)發(fā)者的權(quán)利,同時(shí)為使用者提供了足夠的復(fù)制,分發(fā),修改的權(quán)利。
它的核心內(nèi)容是:
- 可自由復(fù)制:你可以將軟件復(fù)制到你的電腦,你客戶(hù)的電腦,或者任何地方。復(fù)制份數(shù)沒(méi)有任何限制。
- 可自由分發(fā):在你的網(wǎng)站提供他人下載,拷貝到U盤(pán)送人。
- 可用來(lái)盈利:可以在分發(fā)軟件的時(shí)候收費(fèi),但你必須在收費(fèi)前向你的客戶(hù)提供該軟件的 GNU GPL 許可協(xié)議,以便讓他們知道,他們可以從別的渠道免費(fèi)得到這份軟件,以及你收費(fèi)的理由。
- 可自由修改:如果你想添加或刪除某個(gè)功能,沒(méi)問(wèn)題,如果你想在別的項(xiàng)目中使用部分代碼,也沒(méi)問(wèn)題,唯一的要求是,使用了這段代碼的項(xiàng)目也必須使用 GPL 協(xié)議。
????????需要注意的是,分發(fā)的時(shí)候,需要明確提供源代碼和二進(jìn)制文件,另外,用于某些程序的某些協(xié)議有一些問(wèn)題和限制,使用 GPL 協(xié)議,你必須在源代碼代碼中包含相應(yīng)信息,以及協(xié)議本身。
6、LGPL開(kāi)源許可協(xié)議
????????LGPL (GNU Lesser General Public License) :GNU寬通用公共許可協(xié)議。GNU 還有另外一種協(xié)議,叫做 LGPL (Lesser General Public Licence),它對(duì)產(chǎn)品所保留的權(quán)利比 GPL 少,總的來(lái)說(shuō),LGPL 適合那些用于非 GPL 或非開(kāi)源產(chǎn)品的開(kāi)源類(lèi)庫(kù)或框架。因?yàn)?GPL 要求,使用了 GPL 代碼的產(chǎn)品必須也使用 GPL 協(xié)議,開(kāi)發(fā)者不允許將 GPL 代碼用于商業(yè)產(chǎn)品。LGPL 繞過(guò)了這一限制。
LGPL是GPL的變種,也是GNU為了得到更多的甚至是商用軟件開(kāi)發(fā)商的支持而提出的。與GPL的最大不同是,它有以下幾個(gè)核心內(nèi)容:
- 可以私有使用LGPL授權(quán)的自由軟件;
- 開(kāi)發(fā)出來(lái)的新軟件可以是私有的而不需要是自由軟件;
- 任何公司在使用自由軟件之前應(yīng)該保證在LGPL或其它GPL變種的授權(quán)下。
四、結(jié)尾
????????通過(guò)上文,你肯定已經(jīng)打破了開(kāi)源就是免費(fèi)的思想了吧?并且我們可以簡(jiǎn)單對(duì)上面6中常見(jiàn)開(kāi)源許可協(xié)議在寬松到嚴(yán)謹(jǐn)?shù)姆较蜃鰝€(gè)簡(jiǎn)單排序:MIT > BSD > Apache > LGPL > Mozalla (MPL) > GPL?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-728194.html
? ? ? ? 另外,在今后使用/學(xué)習(xí)一些開(kāi)源軟件/框架的時(shí)候,需要了解一下它使用的是什么開(kāi)源許可協(xié)議,如果你想基于這個(gè)開(kāi)源軟件/框架進(jìn)行一些商業(yè)行為,請(qǐng)務(wù)必了解清楚該開(kāi)源許可協(xié)議的核心內(nèi)容,以免將來(lái)在版本問(wèn)題上受到法律的制裁。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-728194.html
到了這里,關(guān)于幾種開(kāi)源協(xié)議的區(qū)別(Apache、MIT、BSD、MPL、GPL、LGPL)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!