开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别在哪里
浅析GPL、BSD、MIT、Mozilla、Apache和LGPL
GPL 是一种包括Linux都使用的开源协议,GPL和BSD及Apache licensed等协议的重用许可都不一样,用户可以拿GPL来免费使用和修改成衍生版代码以做二次开发,但是修改生成后并不能拿去作为闭源的商业软件来出售或盈利。此外,修改好的代码也只能作为GPL协议的衍生产品免费供其他用户或组织使用,绝不允许付费使用。此即GPL到“传染性”。GPL的出发点是代码的开源性和引用/修改/衍生代码的免费性,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。Linux 采用了 GPL,这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。
LGPL是GPL的一个主要为类库使用设计的开源协议。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售,但二次开发过后的代码也必须采用LGPL协议才行。
BSD开源协议:它给予用户的权限很大,可以由用户随意使用,修改源代码,修改好后还能作为开源软件重新发布。
而MIT协议虽然和BSD协议类似,但是它给予用户的权限更宽,该软件和相关文档对所有人免费任意处置,不论是复制、修改、发布、分发,还是销售都无问题,只要发布者在新的发行版里发布包含原许可协议的声明即可。
Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件).需要满足的条件也和BSD类似:
-
需要给代码的用户一份Apache Licence
-
如果你修改了代码,需要再被修改的文件中说明.
-
在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明.
-
如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence.当然你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改.
-
Apache Licence也是对商业应用友好的许可.使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售.
Mozilla即MPL,
同著名的GPL许可证和BSD许可证相比,MPL在许多权利与义务的约定方面与它们大致相同。但是,相比而言MPL还有以下几个显著的不同之处:
◆ MPL虽然要求对于经MPL许可证发布的源代码的修改也要以MPL许可证的方式再许可出来,以保证其他人可以在MPL的条款下共享源代码。但是,在MPL许可证中对“发布”的定义意味着MPL允许一个企业在自己已有的源代码库上加一个接口,也就是除了接口程序的源代码以MPL许可证的形式对外许可外,源代码库中的源代码就可以不用MPL许可证的方式强制对外许可。这些,就为借鉴别人的源代码用做自己商业软件开发的行为留了一个额外选项。
◆ MPL许可证第三条第7款中允许被许可人将经过MPL许可证获得的源代码同自己其他类型的代码混合得到自己的软件程序。
◆ 对软件专利的态度,MPL许可证不像GPL许可证那样明确反对软件专利,但是却明确要求源代码的提供者不能提供已经受专利保护的源代码(除非他本人是专利权人,并书面向公众免费许可这些源代码),也不能在将这些源代码以开放源代码许可证形式许可后再去申请与这些源代码有关的专利。
◆ 对源代码的定义不同
在MPL(1.1版本)许可证中,对源代码的定义是:“源代码指的是对作品进行修改最优先择取的形式,它包括:所有模块的所有源程序,加上有关的接口的定义,加上控制可执行作品的安装和编译的‘原本’(原文为‘Script’)。”MPL许可证第3条有专门的一款是关于对源代码修改进行描述的规定,就是要求所有再发布者都得有一个专门的文件就对源代码程序修改的时间和修改的方式有描述。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)