引用:


开源许可协议的由来

    自由软件/开源软件是自由的,免费的,源代码开放的,我们可自由下载安装和使用。

同时,为了维护作者和贡献者的合法权利,保证这些软件不被一些商业机构或个人窃取,

影响软件的发展,开源社区开发出了各种的开源许可协议。

人们不太容易区分一个软件是否真正开源的根本原因,在于开源研究院认可的许可有60多种。

但在这60多种许可中,有一个许可明显主宰着开源世界。

迪博纳说:“GPL(General Public License,通用性公开许可协议)是当今开源世界中最重要的许可。

根据迪博纳引述的Google所进行的研究,基于GPL的开源代码在所有开源软件中占45%---50%。


常见的开源协议:


GPL (General Public Licence)

    GPL是由Richard Matthrew Stallman为GNU计划而编写的,

GPL与其他自由软件许可证相比,主要区别就在于GPL寻求确保上述自由能在复制件及衍生产品中得到保障。

它通过由Stallman发明的叫copyleft的法律机制实现,即要求GPL程序的衍生产品也要在GPL之下.


COPYLEFT 条款:

    GPL不会授予许可证接受人无限的权利。再发行权的授予需要许可证接受人开放软件的源代码,

及所有修改。且复制件、修改版本,都必须以GPL为许可证,这些要求就是copyleft

GPL授予程序接受人以下权利:

    1.以任何目的运行此程序

    2. 再发行复制

    3. 改进此程序,并公开发布改进


GPL的两个显著特点:

    1. 只要在一个软件中使用具有GPL协议的产品,则该软件必须也得采用GPL协议,而微软的首席执行官史蒂夫·鲍尔默称Linux为“×××”因为GPL具有"传染"性

    2. 不允许闭源商业发布,redhat在转向rhel开发后不再提供二进制代码下载,但源码还是公开的。


LGPL (Lesser General Public Licence)

    LGPL主要使用之目标为软件库(Software Libraries),虽然其亦可使用于独立存在的应用程序。比较有名的例子为Mozilla跟OpenOffice.Org,比GPL较为宽松,


LGPL于GPL的差异:

    1. LGPL 允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码

    2. 如果修改了LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议

GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。


BSD (Berkly Software Distribution)

    BSD许可证原先是用在加州大学柏克利分校发表的各个4.4BSD/4.4BSD-Lite版本上面的,后来也就逐渐沿用下来,

1979年加州大学伯克利分校发布了BSD Unix,被称为开放源代码的先驱,BSD许可证就是随着BSD Unix发展起来的。

BSD许可证被Apache和BSD操作系统等开源软件所采纳。

 

BSD的特点:

    1. 如果在发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。

    2. 如果在发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。

    3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。


MIT (Massachusetts Institute of Technology, MIT)

    MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其它的限制。

也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。

MIT协议又称麻省理工学院许可证,最初由麻省理工学院开发。


MIT特点:

    1. 被授权人有权利使用、复制、修改、合并、出版发行、散布、再授权及贩售软件及软件的副本。

    2. 被授权人可根据程式的需要修改授权条款为适当的内容。被授权人义务:在软件和软件的所有副本中都必须包含版权声明和许可声明。


AL2.0 (Apache Licence)

    Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,

同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布


AL2.0特点:

    1. 一旦被授权,永久拥有

    2. 在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的,也没有问题。

    3. 前期,后期均无任何费用。

    4. 任何人都可以获得授权

    5. 一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码。