开源协议
Posted 小稀稀和她的小摩的
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源协议相关的知识,希望对你有一定的参考价值。
随着Microsoft, Adobe等巨头对开源的支持,世界迎来了更广阔的开源盛事。
现今的开源协议有很多,诸如GPL、LGPL、BSD、Apache License Version 2.0、MIT等,都是通过了OSI(Open source Initiative)组织的批准。这里我们暂时看看这几种最常用的开源协议,以供大家参考。
1. GPL (GNU General Public License)
GPL协议的主要内容是在一个软件中使用(这个"使用"指两个方面 : 1.将代码作为library引用 2.修改代码或者衍生代码)GPL协议的产品,则该软件产品必须也采用GPL协议。也就是说必须开源和免费。So,这个协议就不适用于商用软件。GPL协议虽然不适用商业软件,不过还是极大的提高了开源软件的数量。目前用得多的是GPLV1、GPLV2,区别是V2添加了"如果发布源于GPL的软件时,不能只发布二进制代码的形式。"。采用GPL协议的软件常见的有Linux,mysql。
Notice : Linux采用了GPL协议,所以Linux系统的使用是开源免费的。而一些商业化的Linux系统,如RHL(RedHatLinux),其实收费的部分是系统的安装、维护、升级、内核补丁等服务。
2. LGPL (Library GPL)
LGPL中的L,指的是Library,后来改称Lesser GPL。由上面GPL的介绍可知,GPL协议是一种比较严格的协议,限制了很多商用软件使用GPL软件作为组件,所以才有了这个LGPL。LGPL允许商业软件通过引用library的方式使用LGPL组件(而不是直接使用源代码),这样就可以不用开源商业软件的源代码。但是如果修改LGPL协议的代码或者衍生。则所有修改部分的代码和衍生代码都必须采用LGPL协议。So,LGPL协议适合那些以library形式引用LGPL组件的商用软件,而不适用于通过修改或衍生的方式做二次开发的商业软件。采用LGPL协议的软件常见的有JBoss,Hibernate、FCKeditor。
3. BSD (Berkeley Software Distrubution)
BSD协议相对GPL和LGPL要宽松。BSD协议允许使用者修改源代码,也可以将修改后的代码开源或者用于商业软件,因此适用于商业软件。不过如果你用到了使用BSD协议的代码,需要满足下列三个条件 :
[1] 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
[2] 如果再发布的只是二进制类库或软件,则需在类库或软件的文档和版权声明中包含原来代码中的BSD协议。
[3] 不可以用开源代码的作者或机构名以及原来产品的名字做市场推广。
4. Apache License Version 2.0
这个协议除了为用户提供版权许可之外,还有专利许可。与BSD协议权限类似, 允许代码修改,再发布,适用商业软件。但是也需要满足以下条件:
[1] 需要给代码的用户一份Apache Licence
[2] 如果你修改了代码,需要再被修改的文件中说明
[3] 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明
[4] 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改
它有这些好处 :
[1] 永久权利 一旦被授权,永久拥有
[2] 全球范围的权利 在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的,也没有问题
[3] 授权免费 无版税, 前期、后期均无任何费用
[3] 授权无排他性 任何人都可以获得授权
[3] 授权不可撤消 一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码
使用apache Licence vesion 2.0协议的开源软件有:Hadoop 、apache httpserver、Spring Framework、MongoDB
5. MIT (Massachusetts Institute of Technology)
又称X11协议。MIT与BSD类似,但是比BSD协议更加宽松,是目前最少限制的协议。这个协议唯一的条件就是在修改后的代码或者发行包包含原作者的许可信息。适用商业软件。
使用MIT的软件项目有:jquery、Node.js
参考资料 :
http://www.awflasher.com/blog/archives/939
http://www.lanceyan.com/tech/arch/opensource_permission.html
http://www.oschina.net/news/29401/android-gpl-license
以上是关于开源协议的主要内容,如果未能解决你的问题,请参考以下文章
五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)