开源协议介绍(GPL,LGPL,BSD,MIT,Apache)

http://blog.csdn.net/zhulinu/article/details/7419068
 
什么是许可协议?
什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供 一定的权限。
不管产品是免费向公众分发,还是出售,制定一份许可协议非常有用,否则,对于前者,你相当于放弃了自己所有的权利,任何人都没有义务表明你的原始作 者身份,对于后者,你将不得不花费比开发更多的精力用来逐个处理用户的授权问题。
而开源许可协议使这些事情变得简单,开发者很容易向一个项目贡献自己的代码,它还可以保护你原始作者的身份,使你 至少获得认可,开源许可协议还可以阻止其它人将某个产品据为己有。以下是开源界的 5 大许可协议。
GNU GPL
GNU General Public Licence (GPL) 有可能是开源界最常用的许可模式。GPL 保证了所有开发者的权利,同时为使用者提供了足够的复制,分发,修改的权利:
·         可*复制
你可以将软件复制到你的电脑,你客户的电脑,或者任何地方。复制份数没有任何限制。
·         可*分发
在你的网站提供下载,拷贝到U盘送人,或者将源代码打印出来从窗户扔出去(环保起见,请别这样做)。
·         可以用来盈利
你可以在分发软件的时候收费,但你必须在收费前向你的客户提供该软件的 GNU GPL 许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由。
·         可*修改
如果你想添加或删除某个功能,没问题,如果你想在别的项目中使用部分代码,也没问题,唯一的要求是,使用了这段代码的项目也必须使用 GPL 协议。
需要注意的是,. 使用该开源软件的代码再散布(redistribute)时,源码也必须以相同许可证公开。
代表许可类型:GPL, AGPL
2. 使用该开源软件的代码并且对开源代码有所修改后再散布时,源码必须以相同许可证公开。
代表许可类型:LGPL, CPL,CDDL, CPL,MPL等
3. 使用该开源软件的代码(包括修改)再散布(redistribute)时,没有特殊限制,只需要明记许可。
代表许可类型:ASL, BSD,MIT等
上一篇:LeetCode 81,在不满足二分的数组内使用二分法 II


下一篇:foreach底层机制