http://www.admin10000.com/document/2490.htmlhtml
常见的开源许可协议有:GPL、LGPL、BSD、Apache Licence vesion 2.0、MIT。这些协议有什么区别呢?jquery
全称 GNU General Public License。它的主要内容为:只要在一个软件中使用(“使用”指类库引用或者修改后的代码) GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这个协议就不太适合商用软件,或者准备使用GPL开源组件的商用项目。基于这个协议的项目,极大的提升了开源软件的数量。上面那个微博的案例,若是做者使用了GPL协议,而使用方没有公开源代码就是违反了协议。目前用的多的是GPLV1,GPLV2。这两个什么区别看后面那张树形图。采用这个协议的开源软件有:Linux、 MySQL 。nginx
最初是Library GPL的缩写,后来改称做Lesser GPL。因为GPL太严格,限制了不少商用软件使用GPL组件才推出了这个LGPL。LGPL容许商业软件经过引用类库的方式使用LGPL组件(不直接使用源代码),这样能够不须要开源商业软件的代码。可是若是要修改原始组件的代码,则涉及修改部分的代码和基于原来代码衍生的代码都必须采用LGPL协议。LGPL不适合以LGPL协议为基础的代码进行二次开发的商业软件,可是商用软件能够采用编译后的类库引用就不须要公开源代码了。采用这个协议的开源软件有: JBoss、 FCKeditor 、 Hibernate。以前extjs就由于从LGPL转换到GPL带来了很多的震动。apache
全称 Berkeley Software Distribution。这个协议相对上面两个协议宽松不少,容许使用者修改和从新发布代码,也容许使用或在BSD代码基础上开发商业软件发布和销售,所以是适用于商业软件的。oop
使用者别过高兴,使用时还必须作到知足三个条件:ui
1)若是再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。spa
2)若是再发布的只是二进制类库/软件,则须要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。server
3)不能够用开源代码的做者/机构名字和原来产品的名字作市场推广。适用BSD协议的开源软件有: nginx、CruiseControl、Redis。htm
这个协议除了为用户提供版权许可以外,还有专利许可。与BSD协议权限相似, 容许代码修改,再发布,适用商业软件。ip
可是也须要知足如下条件:
1)须要给代码的用户一份Apache Licence。
2)若是你修改了代码,须要再被修改的文件中说明。
3)在延伸的代码中(修改和有源代码衍生的代码中)须要带有原来代码中的协议,商标,专利声明和其余原来做者规定须要包含的说明。
4)若是再发布的产品中包含一个Notice文件,则在Notice文件中须要带有Apache Licence。你能够在Notice中增长本身的许可,但不能够表现为对Apache Licence构成更改。
除了这些条件它还有这些好处:
1)永久权利 一旦被受权,永久拥有。
2)全球范围的权利 在一个国家得到受权,适用于全部国家。假如你在美国,许但是从印度受权的,也没有问题。
3)受权免费 无版税, 前期、后期均无任何费用。
4)受权无排他性 任何人均可以得到受权
5)受权不可撤消 一旦得到受权,没有任何人能够取消。好比,你基于该产品代码开发了衍生产品,你不用担忧会在某一天被禁止使用该代码
使用apache Licence vesion 2.0协议的开源软件有:Hadoop 、apache httpserver、Spring Framework、MongoDB 。
源自麻省理工学院(Massachusetts Institute of Technology, MIT),又称X11协议。MIT与BSD相似,可是比BSD协议更加宽松,是目前最少限制的协议。这个协议惟一的条件就是在修改后的代码或者发行包包含原做者的许可信息。适用商业软件。使用MIT的软件项目有:jquery、Node.js。
列出了经常使用协议,还有一些比较经常使用的你们就谷歌了,好比: Mozilla Public License、Creative Commons、Eclipse Public License 1.0等。