常见开源许可协议

时间:2022-09-13 17:18:25

参考资料:
http://zh.wikibooks.org/w/index.php?title=%E5%90%84%E7%A7%8D%E8%AE%B8%E5%8F%AF%E5%8D%8F%E8%AE%AE%E6%8E%A2%E8%AE%A8&variant=zh

http://baike.baidu.com/view/1072914.html

     获得开放软件源码是免费的,但对所获取源码的使用却需要遵循该开源软件所作的许可声明。开源软件常用的许可证方式包括BSD、Apache Licence、GPL等,其中GNU的GPL被最多的开源软件组织所采用。开源软件许可模式主要分为两类:一类是copyleft,一类是non-copyleft。copyleft许可,比如GNU GPL类型,坚持认为在开源软件基础上作修改后的软件,仍旧是*软件。

    自1998年2月美国OSI成立之后,经其正式认可的开源许可类型已达30种(2002年1月止)。同时,在GNU工程/*软件基金会的"*软件许可"页面上包含了15种与GPL兼容的*软件许可、2种文档许可以及总共42个软件许可再加上4种非软件许可。

一些著名开源许可类型如下:

(1)BSD许可--它要求版权和著者身份申明;
(2)GPL--通用公共许可("CopyLeft")禁止派生或发行产品的限制;
(3)LGPL--库/次级GPL,它不同于GPL许可证,在这个许可证下,库(函数库)可以*地联接到专有软件;
(4)Artistic许可--使作者保持对进一步开发的控制。
(5)Netscape公共许可(NPL)--基于GPL精神的新的许可证,但是保持了对源码更多的控制和所有权;
(6)Apache Licence(APL)--是著名的非盈利开源组织Apache采用的协议。

    BSD是"Berkely Software Distribution"的缩写,意思是"伯克利软件发行版"。显然,BSD这个名称并不是我们现在所理解的操作系统,而且其原意也并非简单的操作系统,而是一整套软件发行版的统称。从软件发行版到操作系统的演变是有历史过程的,这一点对FreeBSD很重要。

    BSD于1983年8月正式发布,在18个月内就签发了1000多份站点许可证,是非常具有知名度的版本。到了1986年6月,4.3BSD发布,而到了1988年,CSRG发布了4.3BSD-Tahoe,这是第一个把BSD内核分解为依赖于机器和独立于机器的两部分的版本,这是非常有价值的,它使BSD得以移植到众多不同的体系结构中。

    由于BSD使用了AT&T Unix的部分源代码,当AT&T源代码许可证费用不断增加的时候,一些希望能够使用BSD代码为PC生产基于TCP/IP联网产品的厂商要求Berkely将AT&T代码从BSD发行版中分离出来,并给他们签发单独的许可证条款,而不需要AT&T的源代码许可证。因此,到了1989年6月,一个完全没有AT&T Unix代码的BSD版本诞生了,称之为"Networking Release 1"。这是第一套由Berkely发布的*可再发行(freely-redistributable)的代码,,它允许被授权的用户以源代码或者二进制的形式发布修改过的或为修改过的代码,并且可以不向Berkely申报版税,唯一要求是在源代码文件中原封不动的保留Berkely的版权声明,并且在含有以上代码的其他产品文档中声明其产品包括来自于加州大学和其他贡献者的代码。这就是著名的BSD许可证的起源。

    GPL许可证是*软件的应用最广泛的软件许可证,人们可以修改程式的一个或几个副本或程式的任何部分,以此形成基於这些程式的衍生作品。必须在修改过的档案中附有明显的说明:您修改了此一档案及任何修改的日期。 您必须让您发布或出版的作品,包括本程式的全部或一部分,或内含本程式的全部或部分所衍生的作品,允许第三方在此许可证条款下使用,并且不得因为此项授权行为而收费。

    最普遍的是开放源代码后,满足GPL许可,然后通过发行、咨询、增加用户定制功能来收费。另一种是将开放源代码和有版权的软件捆绑发行,这样,赚取版权费用。 一种是通过开放全部或部分源代码,收集补丁程序,并满足用户知情权的要求。作为商业软件的补充。通过发行多许可证的方式,从其他许可证赚钱。通过开放源代码和免费使用赚取垄断标准的地位。

    LGPL是GPL的派生,它是微软件库尔设计的。与GPL不同,LGPL化的程序可以合并到专有版权程序中。与LINUX以其提供的C语言库就是LGPL许可的实例。

    NPL是1998年网景公司把Netscape开源之后,由Netscape公司以公众可以对他进行测试版本测试的形式提出的,它试图在商业企业推广*软件开发和保护*软件开发之间达成一种妥协,受NPL约束的代码在授权给第三方时的条款与NPL的不同使NPL无法让开源社区接受。

    Apache Licence(APL)是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件:
1. 需要给代码的用户一份Apache Licence
2. 如果你修改了代码,需要再被修改的文件中说明。
3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
4. 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

各种软件授权的优缺点及适用范围和变种(增订版)
APL的优点:能够同时和GPL和商业授权相兼容,使APL的软件代码得到最大限度的利用。

APL的适用范围:如果软件要求有更广泛的使用范围,为了成为行业标准,或在使用中只有做修改才能应用,为了不失去商业客户,只能选择APL。

APL的缺点:没有竞争力,用户容易被在APL基础上开发的GPL和商业软件抢走用户。失去用户的结果就是失去社区开发者,因此,APL软件不适合社区开发。

APL的变种:BSD license、ZPL、artist license和APL的条款类似。而变种公共域软件则没有任何要求,包括保留作者名称的要求,标出修改内容的要求和改变软件名程的要求。

APL和公共域类软件有apache、perl、python、ruby、zope、xwindows、tex、freeBSD

GPL的优点:开放源代码,能够保证开发成果不被商业的竞争对手掠夺,能保证用户的忠诚和稳定的社区开发者来源。

GPL的缺点:不能商业使用,限制了代码的应用范围,因此,不能获得商业开发对用户的好处。如果软件的用户范围小或软件某些功能的用户范围小、开发量大,就不能保证社区开发者的数量,也就不能获得持续的开发。GPL虽然可以应邀开发某些功能,但不如商业软件经济,因为商业软件可以向多个用户收费。

GPL的适用范围:GPL软件生存的前提是用户数量要大,特殊的开发要求要少,适合通用软件。

GPL的变种:MPL要求所有的修改都将版权无偿归软件的创始人所有,而创始人能决定代码的商业使用或改变授权形式。MPL软件无偿使用。

GPL软件还有一种重要的变种,就是对个人使用免费,对商业使用付费。其中很多是以GPL的方式出现的,因为GPL不允许链接,象各种库就被禁止商业使用了,这些库如果没有采用LGPL授权,那么它们就自然禁止免费商业使用。比如cygwin、berkleyDB、KDE。还有一些开源软件明确说明禁止商业使用。

GPL软件有gcc、linux、glibc、gnome、open office等。

非LGPL软件,对商业使用付费的软件有cygwin、berkleyDB、KDE、ghostscript的高版本。

MPL软件有mozilla、sun的java编译器、vim

商业授权的优点:能够使开发者获益,因此保证了开发人员的稳定。能开发针对少数用户需求的软件。

商业授权的缺点:不开源,用户没有修改的*,限制了软件的使用效果和使用范围。

商业授权的变种:微软式的开源,软件不能无偿使用,带开源。所有的修改的版权无偿归微软。(不过微软未全部做到,软件的部分开源,而不能编译,和开源还有段距离)

商业软件的适用范围:用户要求高,用户数量少,用户没有修改的要求,有修改能力的用户数量少,或刚推出的需要大量开发工作的新型软件,初始费用高,而初始用户数量少。规模巨大的成系列的软件,需要严密组织的庞大机构才能开发。