五种开源协议的比较(BSD,APACHE,GPL,LGPL,MIT)–整理
Linux 开源协议

Linux 开源协议现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种(/licenses /alphabetical)。
常见的开源协议如BSD、GPL、LGPL和MIT等都是OSI批准的协议。
如果要开源自己的代码,最好也是选择这些被批准的开源协议。
这里介绍四种最常用的开源协议及它们的适用范围,供那些准备开源或者使用开源产品的读者参考。
1.BSD开源协议(original BSD license、FreeBSD license、Original BSD license)BSD开源协议是一个给于使用者很大自由的协议。
基本上使用者可以“为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
但“为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD 协议代码为基础做二次开发自己的产品时,需要满足三个条件:●如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
●如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
●不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD代码鼓励代码共享,但需要尊重代码作者的著作权。
BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。
而很多的公司企业在选用开源产品的时候都首选BSD 协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
2.Apache Licence 2.0Apache Licence是著名的非盈利开源组织Apache采用的协议。
该协议和BSD 类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。
需要满足的条件也和BSD类似:●需要给代码的用户一份Apache Licence。
各种开源协议说明

各种开源协议说明开源协议是一种法律许可证,它规定了开放源代码软件的使用和分发条件。
这些协议确保了源代码的访问权,并且允许开发者修改和重新分发软件。
在详细介绍几种常见的开源协议前,值得注意的是,任何组织或个人使用开源软件时都应仔细阅读和理解相关协议的条款。
下面,我将介绍几种常见的开源协议。
1. GNU通用公共许可证(GNU General Public License,GPL):GPL是最常见的开源许可证之一,它要求任何以GPL许可的代码修改或衍生的代码也必须采用GPL许可证进行分发。
这使得GPL成为一种“传染性”许可证,因为它保护被许可软件的自由,并要求所有修改的代码都保持开源。
因此,如果一个开源项目使用了GPL许可证,该项目的整个代码库都必须遵循GPL许可证。
2.MIT许可证:3. Apache许可证:Apache许可证是一个比较灵活的开源许可证,它鼓励自由使用、修改和重新分发。
与MIT许可证不同的是,Apache许可证要求用户在修改的代码中包含原始许可证和版权声明。
此外,该许可证还规定了与软件相关的使用、专利权和商标权等方面的额外条款。
4.BSD许可证:5. Mozilla公共许可证(MPL):MPL是一种兼容GPL和LGPL的开源许可证,它要求修改MPL软件的代码也必须采用MPL进行分发。
然而,MPL允许将MPL软件与其他许可证的代码进行组合和分发,只要相关组件保持独立。
MPL还规定了软件使用和分发方面的条款。
总的来说,开源协议以不同的形式和方式保障了开放源代码软件的自由和灵活性。
开发者可以根据自己的需求选择适合的开源许可证,以保护其软件的使用和分发权利。
然而,无论使用哪种开源许可证,都需要严格遵守相关协议的条款,以确保合法合规地使用和分发开源软件。
常用的开源协议

以下是一些常用的开源协议:1. GNU通用公共许可证(GNU General Public License,GPL):这是最广泛使用的开源许可证之一,它明确规定了用户对软件的自由使用、修改和传播的权利,同时要求任何基于该软件的衍生作品也必须遵循相同的开源条款。
2. MIT许可证(MIT License):这是一种简洁而灵活的开源许可证,允许用户自由地使用、复制、修改、合并、发布和再授权软件。
它较为宽松,仅要求在软件的所有副本中包含版权声明和许可声明。
3. Apache许可证(Apache License):这是Apache软件基金会所采用的开源许可证,允许用户在保持原始许可证条件下自由使用、修改、分发和销售软件。
与GPL 相比,Apache许可证更加商业友好。
4. BSD许可证(BSD License):这是一系列类似的开源许可证,如BSD 2-Clause License和BSD 3-Clause License 等。
BSD许可证相对宽松,允许用户自由使用、修改和分发软件,同时要求在衍生作品中保留原始许可证和版权声明。
5. Mozilla公共许可证(Mozilla Public License,MPL):这是由Mozilla基金会创建的一种开源许可证,主要用于保护Mozilla Firefox等开源软件。
它要求使用、修改和分发软件的衍生作品时必须遵循相同的许可证。
6. Eclipse公共许可证(Eclipse Public License,EPL):这是Eclipse基金会采用的一种开源许可证,允许用户使用、修改和分发软件,同时对于衍生作品也有特定的规定。
请注意,每种许可证都有其独特的条款和限制,因此在选择和使用开源软件时应仔细阅读和理解相关许可证的内容,并根据项目需求进行选择。
此外,由于法律和许可证可能会随时间而变化,请在使用开源软件前查阅最新的许可证版本和法律条文。
了解开源的许可证GPL、LGPL、BSD、Apache 2.0的区别

看看下面选择开源许可证的案例:
Android 使用宽松的Apache 2.0发布,因为Google作为一个商业公司,并不想失去商业软件的支持,它希望团结一切可以团结的力量加入的Android的开发中来,壮大自己的阵 营,使用Apache 2.0就无可厚非了。而Google本身,并没有丧失对Android的控制权,不会担心另外一个公司拿走了Android的代码开发出一个闭源 Android的对手。因为,只要Android不断的出新版,社区不停的跟进,并且不停的修改API,其他基于Android开发的公司不得不把自己的 Patch提回到主干上,否则,必然将耗费大量人力物力在维护自己的Patch上(钱这方面你斗得过Google?),得不偿失。而且,闭源之后,与整个 社区为敌,作为一个定位软件平台的项目,会流失大量应用软件开发者,以小博大,任何一个商业公司都不会干这种胜算不高的蠢事。
BSD、Apache 2.0
相对GPL/LGPL的开放源代码,BSD,Apache 2.0就宽松许多——商业软件可以任意的使用BSD,Apache 2.0发布的软件代码,而不需要开放源代码,只需要提及代码的原出处就可以了。BSD和Apache 2.0提及的方式稍有不同,具体可以参考协议的详细内容。它们是GPL兼容的
还有关于Mozilla Public License、Creative Commons、Eclipse Public License 1.0等协议,这里就不一一介绍了。
你对开源有多少了解呢?如果你是软件开发者,要开源软件,不单单是开放源代码就可以了,选择一种许可证很重要,一个许可证之于软件就相当于价值观之于普通人,代表了这个软件的基本品性。一个错误的许可证选择可能会直接导致整个项目的失 败,XFree86就是一个好例子。
开源软件协议(MITBSDApacheLGPLMPLGPL)

开源软件协议(MITBSDApacheLGPLMPLGPL) 大家好,我是痞子衡,是正经搞技术的痞子。
今天痞子衡给大家讲的是关于开源软件协议基本知识。
牛顿曾说过:“如果我比别人看得更远,那是因为我站在巨人的肩上”。
在软件开发中如果说也存在巨人的肩膀让我们站,我想这个巨人应该就是开源软件。
一个优秀的软件开发人员应该能够善于学习和利用开源软件来加速自己的开发,而为了正确地使用开源软件,我们必须要了解开源软件协议,今天我们就来聊一聊开源软件协议这个话题。
1.开源软件是什么? 所谓“开源软件”(open-source software),字面上理解就是开放源代码的软件,即在软件发行的时候,附上软件的源代码,并授权允许用户更改/自由再散布/衍生著作权。
开源软件通常是有copyright(著作权)的,它的License(许可证)可能包含这样一些额外的限制:刻意的保护它的开放源码状态,著者身份的公告,或者开发的控制。
提及开源软件,通常会想到两个形容词:免费、自由。
开源软件大多是免费的(但也并不排斥商业收费),开源软件的使用往往也是相对自由的(自由度取决于其License)。
因此常常会与开源软件造成混淆和误解的有另外两个概念:“免费软件”、“自由软件”免费软件:免费提供给用户使用的软件,通常并不包含公开其源码的内容。
自由软件:在反著作权,倡导软件这种知识产品应该免费共享的思想下诞生的软件,当然必须是要开放源代码的。
一个专用的名词copyleft(著佐权)就是用来形容这种软件。
除了前面介绍的3种类型软件之外,还有一种概念:“商业软件”,即被用作商品以达到营利目的收费软件,这种软件一般不会包含源码,并且受各种严苛的版权限制。
从上面的介绍可以看出,自由软件与商业软件是完全对立的,而开源软件就是自由软件与商业软件的折中,它既继承了“自由软件”所提倡的知识共享的理念,同时又允许人们以专利的形式从知识产品中谋取利益,从而保护了人们生产、创造知识产品的积极性。
开源协议区别

GPLGPL授予程序接受人以下权利,或称“自由”:* 以任何目的运行此程序的自由* 以学习程序工作机理为目的,对程序进行修改的自由(能得到源代码是前提)* 再发行复制件的自由* 改进此程序,并公开发布改进的自由(能得到源代码是前提)相反地,随版权所有软件的最终用户许可证几乎从不授予用户任何权利(除了使用的权利),甚至可能限制法律允许的行为,比如逆向工程。
GPL与其他一些更“许可的”自由软件许可证(比如BSD许可证)相比,主要区别就在于GPL寻求确保上述自由能在复制件及演绎作品中得到保障。
它通过一种由Stallman发明的叫copyleft的法律机制实现,即要求GPL程序的演绎作品也要在GPL之下。
相反,BSD式的许可证并不禁止演绎作品变成版权所有软件。
copyleftGPL不会授予许可证接受人无限的权利。
再发行权的授予需要许可证接受人开放软件的源代码,及所有修改。
且复制件、修改版本,都必须以GPL为许可证。
这些要求就是copyleft,它的基础就是作品在法律上版权所有。
由于它版权所有,许可证接受人就无权进行修改和再发行(除合理使用),除非它有一个copyleft条款。
如果某人想行使通常被法律所禁止的权利,只需同意GPL的条款。
相反地,如果某人发行软件违反了GPL(比如不开放源代码),他就有可能被原作者起诉。
copyleft利用版权法来达到与其相反的目的:copyleft给人不可剥夺的权利,而不是版权法所规定的诸多限制。
这也是GPL被称作“被黑的版权法”的原因。
许多GPL软件发行者都把源代码与可执行程序捆绑起来。
另一方式就是以物理介质(比如CD)为载体提供源代码。
在实践中,许多GPL软件都是在互联网上发行的,源代码也有许多可以FTP方式得到。
copyleft只在程序再发行时发生效力。
对软件的修改可以不公开或开放源代码,只要不发行。
注意copyleft只对软件有效力,而对软件的输出并无效力(除非输出的是软件本身)。
开源软件授权协议详解(GPLMPLLGPLB

开源运动同样有自己的游戏规则和道德准则。
不遵行这些规则不但损害开源运动的健康发展,也会对违规者造成名誉和市场上的损失,更可能陷入法律纠纷和赔偿。
现今存在的开源协议很多,而经过Open Sourcel ni tiative组织通过批准的开源协议目前有58 种。
我们在常见的开源协议如BSD,GPL,LGPL,M等都是OSI批准的协议。
如果要开源自己的代码,最好也是选择这些被批准的开源协议。
强开源约束授权GPL(GNU General Public Licens)e 我们很熟悉的Linux 就是采用了GPL。
GPL协议和BSD Ap ache Lice nee等鼓励代码重用的许可很不一样。
GPL的出发点是代码的开源/使用和引用/修改/衍生代码的开源/使用, 但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。
这也就是为什么我们能用的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的软件了。
GPL协议的主要内容是只要在一个软件中使用(使用”指类库引用,修改后的代码或者衍生代码)GPL协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和。
这就是所谓的”传染性”。
GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受的优势。
由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL 协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。
其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。
弱开源约束授权MPL License(Mozilla PublicLicense允许重发布、修改, 但要求修改后的代码版权归软件的发起者。
这种授权维护了商业软件的利益,,它要求基于这种软件的修改无偿贡献版权给该软件。
这样,围绕该软件的所有代码得版权都集中在发起开发人得手中。
但MPL 是允许修改,无偿使用的。
开源软件授权协议详解(GPLMPLLGPLB

开源运动同样有自己的游戏规则和道德准则不遵行这些规则不但损害开源运动的健康发展,也会对违规者造成名誉和市场上的损失,更可能陷入法律纠纷和赔偿。
现今存在的开源协议很多,而经过Open SourceInitiative 组织通过批准的开源协议目前有58 种。
我们在常见的开源协议如BSD,GPL,LGPL,M等都是OSI批准的协议。
如果要开源自己的代码,最好也是选择这些被批准的开源协议。
强开源约束授权GPL (GNU Ge neral Public Lice ns)我们很熟悉的Li nux就是采用了GPL。
GPL协议和BSD, Apache Lice nee等鼓励代码重用的许可很不一样。
GPL的出发点是代码的开源/使用和引用/修改/衍生代码的开源/使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。
这也就是为什么我们能用的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的软件了。
GPL协议的主要内容是只要在一个软件中使用(使用”指类库引用,修改后的代码或者衍生代码)GPL协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和。
这就是所谓的”传染性”。
GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受的优势。
由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。
其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。
弱开源约束授权MPL License(Mozilla PublicLicense允许重发布、修改,但要求修改后的代码版权归软件的发起者。
这种授权维护了商业软件的利益,,它要求基于这种软件的修改无偿贡献版权给该软件。
这样,围绕该软件的所有代码得版权都集中在发起开发人得手中。
但MPL是允许修改,无偿使用的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
五种开源协议的比较 (BSD,APACHE,GPL,LGPL,MIT)–整 理
最初来自:/READ.PHP?TID-662-PAGE-E-FPAGE-1.HTML(遗憾 的是这个链接已经打不开了),我基本未改动,只是进行了一些排版和整理。
参考文献:/LICENSING/LICENSES/
当 Adobe、Microsoft、Sun 等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来! 现今存在的开源协议很多,而经过 Open Source Initiative 组织通过批准的开源协议目前有 58 种 (/licenses/alphabetical)。
我们在常见的开源协议如 BSD, GPL, LGPL,MIT 等都是 OSI 批准的协议。
如果要开源自己的代码,最好也是选择这些被批准的开源协议。
这里我们来看四种最常用的开源协议及它们的适用范围,供那些准备开源或者使用开源产品的开发人员/ 厂家参考。
BSD 开源协议(original BSD license、FreeBSD license、Original BSD license)
BSD 开源协议是一个给于使用者很大自由的协议。
基本上使用者可以”为所欲为”,可以自由的使用,修改 源代码,也可以将修改后的代码作为开源或者专有软件再发布。
但”为所欲为”的前提当你发布使用了 BSD 协议的代码,或则以 BSD 协议代码为基础做二次开发自己的产 品时,需要满足三个条件: 1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的 BSD 协议。
2. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的 BSD 协议。
3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。
BSD 由于允许使用者修改和重新发布代码,也允 许使用或在 BSD 代码上开发商业软件发布和销售,因此是对 商业集成很友好的协议。
而很多的公司企业在 选用开源产品的时候都首选 BSD 协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者 二次开发。
Apache Licence 2.0(Apache License, Version 2.0、Apache License, Version 1.1、 Apache License, Version 1.0)
Apache Licence 是著名的非盈利开源组织 Apache 采用的协议。
该协议和 BSD 类似,同样鼓励代码共享和 尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。
需要满足的条件也和 BSD 类 似:
1. 需要给代码的用户一份 Apache Licence 2. 如果你修改了代码,需要再被修改的文件中说明。
3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明 和其他原来作者规定需要包含的说明。
4. 如果再发布的产品中包含一个 Notice 文件,则在 Notice 文件中需要带有 Apache Licence。
你可 以在 Notice 中增加自己的许可,但不可以表现为对 Apache Licence 构成更改。
Apache Licence 也是对商业应用友好的许可。
使用者也可以在需要的时候修改代码来满足需要并作为开源 或商业产品发布/销售。
GPL(GNU General Public License)
我们很熟悉的 Linux 就是采用了 GPL。
GPL 协议和 BSD, Apache Licence 等鼓励代码重用的许可很不一样。
GPL 的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的 代 码做为闭源的商业软件发布和销售。
这也就是为什么我们能用免费的各种 linux, 包括商业公司的 linux 和 linux 上各种各样的由个人,组织,以及商 业软件公司开发的免费软件了。
GPL 协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL 协 议的产品,则该软件产品必须也采用 GPL 协议,既必须也是开源和免费。
这就是所谓的”传染性”。
GPL 协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。
由于 GPL 严格要求使用了 GPL 类库的软件产品必须使用 GPL 协议,对于使用 GPL 协议的开源代码,商业软 件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。
其它细节如再发布的时候需要伴随 GPL 协议等和 BSD/Apache 等类似。
LGPL(GNU Lesser General Public License)
LGPL 是 GPL 的一个为主要为类库使用设计的开源协议。
和 GPL 要求任何使用/修改/衍生之 GPL 类库的的软 件必须采用 GPL 协议不同。
LGPL 允许商业软件通过类库引用(link)方式使用 LGPL 类库而不需要开源商业 软件的代码。
这使得采用 LGPL 协议的开源代码可以被商业软件作为类库引用并 发布和销售。
但是如果修改 LGPL 协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必 须采用 LGPL 协议。
因此 LGPL 协议的开源 代码很适合作为第三方类库被商业软件引用,但不适合希望以 LGPL 协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
GPL/LGPL 都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品
MIT(MIT)
MIT 是和 BSD 一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行 版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的.
2011/4/21 freeback: dean-zc@
。