常見的開源許可證介紹,程序員必看
根據(jù)開源許可證授權(quán)的限制程度,可以將開源許可證從寬松到嚴(yán)格進(jìn)行排序:
- 最寬松的是BSD許可證、MIT許可證、Apache許可證、ISC許可證等,這些許可證授權(quán)幾乎沒有任何限制,允許自由地使用、修改、復(fù)制和分發(fā)軟件,同時(shí)允許將軟件用于商業(yè)和非商業(yè)目的,只要在軟件的副本中包含許可證和版權(quán)聲明即可。
- 接下來是MPL許可證和LGPL許可證,這些許可證要求將修改后的代碼以同樣的許可證進(jìn)行發(fā)布,并且要求在修改后的代碼中包含原始代碼的授權(quán)和版權(quán)信息,但不要求將整個(gè)項(xiàng)目以同樣的許可證進(jìn)行發(fā)布。
- GPL許可證、AGPL許可證和CPL許可證相對(duì)嚴(yán)格,這些許可證要求將整個(gè)項(xiàng)目以相同的許可證進(jìn)行發(fā)布,即使只是使用軟件的一部分,也必須以相同的許可證進(jìn)行發(fā)布。此外,這些許可證還要求修改后的代碼必須公開發(fā)布。
接下來詳細(xì)說下每種開源許可證。
MIT許可證
MIT許可證是一種非常寬松的開源許可證,允許將軟件用于商業(yè)和非商業(yè)用途,并且允許修改、分發(fā)和私有化軟件。MIT許可證是一種BSD風(fēng)格許可證,也被稱為X11許可證,因?yàn)樗畛跏菫榱薓IT X Window System編寫的。
MIT許可證的主要條款包括以下內(nèi)容:
- 每份復(fù)制或者重用必須包含版權(quán)聲明和許可聲明;
- 對(duì)于使用本軟件的風(fēng)險(xiǎn),作者不承擔(dān)任何責(zé)任;
- 允許在商業(yè)和非商業(yè)用途中自由使用、復(fù)制、修改、合并、出版發(fā)行本軟件及其衍生品,以及允許對(duì)軟件進(jìn)行私有化。
由于MIT許可證的開放性和靈活性,它已經(jīng)成為了許多重要開源軟件項(xiàng)目的許可證,如Node.js、Ruby on Rails、jQuery等。
Apache許可證
Apache許可證由Apache軟件基金會(huì)發(fā)布。它是一種類似于MIT和BSD許可證的非常寬松的許可證,允許用戶自由使用、分發(fā)和修改軟件,包括用于商業(yè)用途。
Apache許可證的主要條款包括以下內(nèi)容:
- 允許在商業(yè)和非商業(yè)用途中自由使用、復(fù)制、修改和分發(fā)本軟件及其衍生品;
- 對(duì)于使用本軟件的風(fēng)險(xiǎn),作者不承擔(dān)任何責(zé)任;
- 每份復(fù)制或者重用必須包含版權(quán)聲明和許可聲明;
- 在任何衍生品中包含的代碼,必須包含原始許可證、版權(quán)聲明和作者聲明;
- 如果修改了代碼,必須說明修改的內(nèi)容。
Apache許可證不同于MIT和BSD許可證的地方在于,Apache許可證對(duì)使用Apache軟件的企業(yè)和組織有一些特定的要求。例如,如果一個(gè)組織使用Apache軟件作為其產(chǎn)品的一部分,那么該組織必須在其產(chǎn)品中包含原始Apache許可證,以及對(duì)Apache軟件的貢獻(xiàn)說明。但是,這些要求對(duì)于個(gè)人用戶來說并不適用。
由于Apache許可證的靈活性和開放性,它也成為了許多重要的開源軟件項(xiàng)目的許可證,如Apache Web服務(wù)器、Hadoop、Lucene、Tomcat等。
BSD許可證
BSD許可證同樣是一種非常寬松的開源許可證,由加州大學(xué)伯克利分校發(fā)布。BSD許可證是一種開放源代碼許可證,允許用戶自由使用、分發(fā)和修改軟件,包括用于商業(yè)用途。
BSD許可證的主要條款包括以下內(nèi)容:
- 允許在商業(yè)和非商業(yè)用途中自由使用、復(fù)制、修改和分發(fā)本軟件及其衍生品;
- 對(duì)于使用本軟件的風(fēng)險(xiǎn),作者不承擔(dān)任何責(zé)任;
- 每份復(fù)制或者重用必須包含版權(quán)聲明和許可聲明;
- 在任何衍生品中包含的代碼,必須包含原始許可證、版權(quán)聲明和作者聲明;
- 不允許使用作者的名稱、標(biāo)志或其他標(biāo)識(shí)來推銷或宣傳產(chǎn)品或服務(wù)。
BSD許可證的開放性和靈活性使得它成為了許多重要開源軟件項(xiàng)目的許可證,如FreeBSD、NetBSD、OpenBSD等操作系統(tǒng),以及許多其他軟件工具和庫。
GPL許可證
GPL許可證全稱為GNU通用公共許可證(GNU General Public License)。它是由自由軟件基金會(huì)(Free Software Foundation)發(fā)布的一種許可證,是自由軟件運(yùn)動(dòng)的核心組成部分。
GPL許可證的主要特點(diǎn)是強(qiáng)調(diào)代碼的開放性和共享性,保障用戶對(duì)于軟件的自由和知情權(quán)。在使用GPL許可證的軟件中,任何人都可以自由地使用、復(fù)制、分發(fā)和修改軟件,并且必須在任何派生作品中保留相同的許可證,即使是商業(yè)用途也不能例外。這意味著,任何修改后的代碼必須遵守相同的GPL許可證。
GPL許可證的主要條款包括以下內(nèi)容:
- 任何人都可以免費(fèi)使用、復(fù)制、分發(fā)和修改本軟件;
- 任何修改后的軟件必須同樣使用GPL許可證發(fā)布,并保證在任何派生作品中保留相同的許可證;
- 在任何派生作品中,必須包含原始代碼的版權(quán)聲明和GPL許可證;
- 在使用本軟件的過程中,不能對(duì)用戶施加額外的限制或收費(fèi);
- 任何對(duì)本軟件的修改、衍生作品或其他基于本軟件的作品,都必須公開發(fā)布其源代碼。
GPL許可證的開放性和強(qiáng)制性使得它成為了許多自由軟件項(xiàng)目的首選許可證,如Linux操作系統(tǒng)、GCC編譯器、Emacs文本編輯器等。同時(shí),它也因?yàn)槠鋰?yán)格的條款限制了商業(yè)軟件廠商對(duì)于開源軟件的利用和修改,引起了一些爭議。
LGPL許可證
LGPL許可證是GNU Lesser General Public License的縮寫,中文名為GNU寬通用公共許可證。它是自由軟件基金會(huì)(Free Software Foundation)發(fā)布的一種開源軟件許可證。
LGPL許可證和GPL許可證有些類似,也是一種強(qiáng)制要求源代碼開放的許可證。但與GPL許可證不同的是,LGPL許可證允許在非開源軟件中使用或者鏈接LGPL許可證的代碼庫,而不要求整個(gè)程序必須遵循LGPL許可證。這就為使用LGPL許可證的開源軟件提供了更多的商業(yè)應(yīng)用機(jī)會(huì),可以在商業(yè)軟件中使用或者鏈接開源軟件庫而不用擔(dān)心版權(quán)問題。
LGPL許可證的主要特點(diǎn)包括:
- 允許在LGPL許可證的代碼庫中嵌入專有軟件;
- 允許商業(yè)軟件通過動(dòng)態(tài)鏈接的方式使用LGPL許可證的代碼庫;
- 修改LGPL許可證的代碼庫后必須公開發(fā)布修改后的代碼;
- 在發(fā)布LGPL許可證的代碼庫時(shí)必須同時(shí)提供源代碼;
- 使用LGPL許可證的代碼庫必須保留原始的版權(quán)信息和許可證信息。
LGPL許可證通常用于開發(fā)一些重要的軟件庫,例如GStreamer多媒體框架、GTK+圖形用戶界面工具包、Qt等。由于LGPL許可證的開放性和允許商業(yè)應(yīng)用,它比GPL許可證更適合一些商業(yè)公司和組織在開源軟件項(xiàng)目中的參與和貢獻(xiàn)。
AGPL許可證
AGPL許可證是GNU Affero General Public License的縮寫,中文名為GNU Affero通用公共許可證。它是自由軟件基金會(huì)(Free Software Foundation)發(fā)布的一種開源軟件許可證。
AGPL許可證是基于GPL許可證的一種衍生許可證,和GPL許可證一樣,要求在使用、修改和分發(fā)源代碼時(shí)必須公開源代碼和任何修改,但與GPL許可證不同的是,AGPL許可證還要求在通過計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行軟件的交互或者傳輸時(shí),也必須公開源代碼。
AGPL許可證的主要特點(diǎn)包括:
- 允許在AGPL許可證的代碼庫中嵌入專有軟件;
- 允許商業(yè)軟件通過動(dòng)態(tài)鏈接的方式使用AGPL許可證的代碼庫;
- 修改AGPL許可證的代碼庫后必須公開發(fā)布修改后的代碼;
- 在發(fā)布AGPL許可證的代碼庫時(shí)必須同時(shí)提供源代碼;
- 當(dāng)通過計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行軟件的交互或者傳輸時(shí),必須公開源代碼和任何修改;
- 使用AGPL許可證的代碼庫必須保留原始的版權(quán)信息和許可證信息。
AGPL許可證的適用范圍主要是Web應(yīng)用程序和基于云計(jì)算的軟件服務(wù)。由于云計(jì)算的本質(zhì)就是通過計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行軟件的交互和傳輸,因此AGPL許可證的要求更嚴(yán)格,可以防止商業(yè)公司或者組織通過云計(jì)算方式使用開源軟件而不公開源代碼。AGPL許可證也被稱為“服務(wù)端GPL”,因?yàn)樗鼣U(kuò)展了GPL許可證的要求,適用于一些需要通過計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行軟件傳輸和交互的場景。
MPL許可證
MPL許可證是Mozilla Public License的縮寫,中文名為Mozilla公共許可證。它是由Mozilla基金會(huì)發(fā)布的一種開源軟件許可證。
MPL許可證是一種軟件許可證,它允許開發(fā)者在開源協(xié)議下分發(fā)他們的軟件,同時(shí)也允許他們以專有軟件的形式進(jìn)行銷售。MPL許可證主要基于GPL許可證,但與GPL許可證不同的是,MPL許可證還包含一些商業(yè)軟件的要求,如要求保留原始的版權(quán)信息和許可證信息、禁止使用商標(biāo)等。
MPL許可證的主要特點(diǎn)包括:
- 允許商業(yè)軟件的銷售和使用;
- 在分發(fā)MPL許可證的軟件時(shí)必須提供源代碼;
- 允許使用MPL許可證的軟件和其他軟件進(jìn)行鏈接和集成;
- 對(duì)衍生的代碼和文件采取相對(duì)靈活的要求,可以根據(jù)需要進(jìn)行修改;
- 在使用MPL許可證的軟件中使用商標(biāo)需要得到授權(quán)。
MPL許可證適用于需要在保持開源的前提下,允許商業(yè)軟件的銷售和使用的項(xiàng)目,如Mozilla Firefox等。與GPL許可證不同的是,MPL許可證并沒有強(qiáng)制要求開發(fā)者將其軟件以GPL許可證的方式發(fā)布,這使得MPL許可證更加靈活,適用范圍更廣。
CDDL許可證
CDDL許可證是Common Development and Distribution License的縮寫,中文名為通用開發(fā)和分發(fā)許可證。它是由Sun公司(現(xiàn)為Oracle公司)發(fā)布的一種開源軟件許可證,主要用于Java平臺(tái)的開發(fā)和分發(fā)。
CDDL許可證是一種復(fù)雜的許可證,它在允許用戶自由地使用、復(fù)制和分發(fā)軟件的同時(shí),還對(duì)軟件的衍生品作出了嚴(yán)格的要求。CDDL許可證要求所有使用或分發(fā)源代碼或二進(jìn)制文件的項(xiàng)目都必須使用CDDL許可證,并且必須公開其源代碼。
CDDL許可證的主要特點(diǎn)包括:
- 允許商業(yè)軟件的銷售和使用;
- 在分發(fā)CDDL許可證的軟件時(shí)必須提供源代碼;
- 允許使用CDDL許可證的軟件和其他軟件進(jìn)行鏈接和集成;
- 要求對(duì)衍生的代碼和文件采取相對(duì)嚴(yán)格的要求,需要使用相同的CDDL許可證;
- 與MPL許可證類似,CDDL許可證要求使用商標(biāo)需要得到授權(quán)。
CDDL許可證適用于需要在保持開源的前提下,允許商業(yè)軟件的銷售和使用的項(xiàng)目,特別是Java平臺(tái)的開發(fā)和分發(fā)。CDDL許可證和MPL許可證有很多相似之處,但CDDL許可證對(duì)衍生品的要求更加嚴(yán)格,因此可能不適合所有的開源項(xiàng)目。
EPL許可證
EPL許可證是Eclipse Public License的縮寫,中文名為Eclipse公共許可證。它是一種開源軟件許可證,主要用于Eclipse平臺(tái)的開發(fā)和分發(fā)。
EPL許可證是一種非常靈活的許可證,它在允許用戶自由地使用、復(fù)制和分發(fā)軟件的同時(shí),還允許用戶將軟件用于商業(yè)目的,并且可以在閉源的情況下使用和分發(fā)軟件。EPL許可證要求所有使用或分發(fā)源代碼或二進(jìn)制文件的項(xiàng)目都必須使用EPL許可證,并且必須公開其源代碼。
EPL許可證的主要特點(diǎn)包括:
- 允許商業(yè)軟件的銷售和使用;
- 在分發(fā)EPL許可證的軟件時(shí)必須提供源代碼;
- 允許使用EPL許可證的軟件和其他軟件進(jìn)行鏈接和集成;
- 允許在閉源的情況下使用和分發(fā)軟件;
- 要求使用商標(biāo)需要得到授權(quán)。
EPL許可證適用于需要在保持開源的前提下,允許商業(yè)軟件的銷售和使用的項(xiàng)目,特別是Eclipse平臺(tái)的開發(fā)和分發(fā)。EPL許可證是一種非常靈活的許可證,適用范圍廣泛,被廣泛應(yīng)用于開源軟件項(xiàng)目和商業(yè)軟件項(xiàng)目中。
ISC許可證
ISC許可證是一種類似于BSD許可證的開源軟件許可證,它的全稱是Internet Systems Consortium許可證。該許可證最初由Internet Systems Consortium(ISC)創(chuàng)建,是ISC開發(fā)的軟件和工具的標(biāo)準(zhǔn)許可證。
ISC許可證是一種非常簡潔明了的許可證,主要包括以下幾個(gè)方面:
- 允許復(fù)制、使用和分發(fā)源代碼和二進(jìn)制文件;
- 允許將源代碼或二進(jìn)制文件用于商業(yè)或非商業(yè)用途;
- 要求在源代碼的所有副本和衍生產(chǎn)品中包含原始許可證和版權(quán)聲明;
- 不提供任何明示或暗示的擔(dān)保和保證。
和BSD許可證類似,ISC許可證的主要特點(diǎn)是非常靈活和簡潔,沒有對(duì)用戶和使用者的限制,同時(shí)也不對(duì)軟件的衍生產(chǎn)品做限制,因此被廣泛應(yīng)用于開源軟件中。ISC許可證的主要優(yōu)點(diǎn)是可以在商業(yè)和非商業(yè)項(xiàng)目中使用,并且沒有對(duì)衍生產(chǎn)品做出太多的限制,非常適合需要靈活性的項(xiàng)目。
Artistic許可證
Artistic許可證是由Perl編程語言的創(chuàng)始人Larry Wall創(chuàng)造的,旨在保護(hù)Perl語言和它的相關(guān)模塊和工具。該許可證經(jīng)過多次修改和改進(jìn),現(xiàn)在已經(jīng)成為開源軟件界中一種非常常見的許可證。
Artistic許可證的主要特點(diǎn)包括:
- 允許自由地復(fù)制、使用和分發(fā)軟件;
- 允許對(duì)軟件進(jìn)行修改和衍生,并在衍生品中使用原始軟件的代碼;
- 要求在軟件的所有副本和衍生品中包含版權(quán)和許可證聲明;
- 允許將軟件用于商業(yè)和非商業(yè)目的;
- 不提供任何明示或暗示的擔(dān)保和保證。
與GPL、LGPL等許可證不同,Artistic許可證沒有要求將衍生品同樣開源,因此被認(rèn)為是一種更為寬松的許可證。該許可證最初被廣泛應(yīng)用于Perl和其他Perl模塊和工具的開發(fā)和分發(fā),后來也被應(yīng)用于其他開源軟件項(xiàng)目。現(xiàn)在,Artistic許可證已經(jīng)發(fā)展成為了兩個(gè)版本:Artistic License 1.0和Artistic License 2.0,其中后者更為現(xiàn)代化和靈活。
CPL許可證
CPL(Common Public License)是一種開源軟件許可證,由IBM公司創(chuàng)建,是在MPL 1.1的基礎(chǔ)上進(jìn)行修改而成的。CPL許可證最初發(fā)布于2001年,現(xiàn)在已被認(rèn)為是一種已過時(shí)的許可證,可以不用了解。