android系统的用户空间使用apache协议,linux内核使用gpl协议。
GNU General Public Licence (GPL)
GNU General Public Licence (GPL) 有可能是开源界最常用的许可模式。GPL 保证了所有开发者的权利,同时为使用者提供了足够的复制,分发,修改的权利:
- 可自由复制
你可以将软件复制到你的电脑,你客户的电脑,或者任何地方。复制份数没有任何限制。 - 可自由分发
在你的网站提供下载,拷贝到U盘送人,或者将源代码打印出来从窗户扔出去(环保起见,请别这样做)。 - 可以用来盈利
你可以在分发软件的时候收费,但你必须在收费前向你的客户提供该软件的 GNU GPL 许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由。 - 可自由修改
如果你想添加或删除某个功能,没问题,如果你想在别的项目中使用部分代码,也没问题,唯一的要求是,使用了这段代码的项目也必须使用 GPL 协议。
1. 如果你使用了GPL协议的开源代码,将此开源代码用在了你的软件产品里,那么,你的整个软件产品必须开源,而且必须以GPL协议开源;
2. 如果软件以GPL协议开源,那么源代码必须是面向社会开源的。而且你发布产品的时候源代码也必须一同附上。
3. 如果软件以GPL协议开源,那么你可以对该软件收取一定的服务费用,但你永远不能对该软件的源代码收费。
GNU LGPL
GNU 还有另外一种协议,叫做 LGPL (
Lesser General Public Licence),它对产品所保留的权利比 GPL 少,总的来说,LGPL 适合那些用于非 GPL 或非开源产品的开源类库或框架。因为 GPL 要求,使用了 GPL 代码的产品必须也使用 GPL 协议,开发者不允许将 GPL 代码用于商业产品。LGPL 绕过了这一限制。
Apache
Apache 协议 2.0 和别的开源协议相比,除了为用户提供版权许可之外,还有专利许可,对于那些涉及专利内容的开发者而言,该协议最适合(这里有 一篇文章阐述这个问题)。
Apache 协议还有以下需要说明的地方:
- 永久权利
一旦被授权,永久拥有。 - 全球范围的权利
在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的,也没有问题。 - 授权免费,且无版税
前期,后期均无任何费用。 - 授权无排他性
任何人都可以获得授权 - 授权不可撤消
一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码。
分发代码方面包含一些要求,主要是,要在声明中对参与开发的人给予认可并包含一份许可协议原文。
按照使用条件的不同,开源软件许可证可以分为三类(严苛程度递减)
1. 使用该开源软件的代码再散布(redistribute)时,源码也必须以相同许可证公开。
代表许可类型:GPL, AGPL
2. 使用该开源软件的代码并且对开源代码有所修改后再散布时,源码必须以相同许可证公开。
代表许可类型:LGPL, CPL,CDDL, CPL,MPL等
3. 使用该开源软件的代码(包括修改)再散布(redistribute)时,没有特殊限制,只需要明记许可。
代表许可类型:ASL, BSD,MIT等