首先介绍开源软件的共同的特点:源代码开放、免费修改、免费重新发布。
以BDS为代表的接近于公共域软件的授权。包括Xwindows、freeBDS、apache、perl、python、ruby、zope 等。其中apache的授权叫APL,是一种比较典型的授权声明,下面对于近似公共域的授权以APL表示。这种授权的特点就是虽然保留版权,但不但免费修 改、免费重新发布,而且允许商业使用,允许商业修改后不公布修改的软件代码。是对商业软件友好的授权方式。
以GPL为代表的自由软件,包括linux、gcc、KDE、gnome等。允许免费修改、免费重发布,但要求修改代码必须也遵守GPL。这种 授权方式大大限制了从开源中牟利的手段,因此是对商业不友好的授权,对商业不友好的后果是不能使开源代码产生更广泛的效果、不能调动商业软件开发力量。但 也要看到GPL对打破垄断的价值,打破垄断对所有的商业软件也是有利的。在GPL下面还有一种对商业更友好的方式就是LGPL,允许商业代码链接LGPL 代码,这样商业软件在利用LGPL软件的同时能够很大程度上保留商业利益。gnome是LGPL的(不确定),KDE是GPL的。因此在KDE上面实现商 业软件比较困难,因此说KDE是开放不充分的。
以MPL为代表的商业公司的开源策略。包括mozilla、openoffice等。允许免费重发布、免费修改,但要求修改后的代码版权归软件 的发起者,这样发起者和组织者具有更优越的地位。MPL一般也是同时遵守LGPL的。这是因为GPL比较严格,不会产生另一个商业的竞争者。MPL也是对 商业友好的。并且用一些优惠来鼓励商业软件开源。
关于GPL,如果开源软件的开发要借助社区的力量,那么最好是用GPL授权,因为这样可以防止商业软件抢走用户而导致的开源软件的使用者和开发者都不足。
如果开源软件的开发部需要借助社区的力量,而是封闭开发,使用BSD授权是最恰当的授权。因为既然不需要借助社区的力量,用户的多少和后加入开 发的人的多少都没有关系,并且同样可以达到开源软件给用户修改和重新发布的自由。并且:一、如果允许修改者商业化,则更加调动了修改者的积极性,可以弥补 开源软件不注重豪华功能的缺陷,使小部分用户的特殊需要也能够得到满足,和开源软件形成互补关系。如activepython就是对python的很好的 补充。二、开源软件的使用范围也更广,对社会的贡献也更大。比如现在python被引入到.net支持的语言范围内,而如果python是GPL,则这种 情况是不可能发生的。三、比如nextstep,beOS,macX的出现说明BSD使商业软件的起步更高,促进了商业软件的发展,对用户来说获益更 大。(我认为开源和商业并不矛盾,而是相互补充,用户都需要)。四、不但对用户有好处,也对软件发展的基石--开发人员有好处。使开源软件的开发者在促进 开源的同时还可以使自己的事业得益于开源代码,避免了学习投入的浪费,也使开发的重复工作量最小。(使软件开发在更庞大的基础上继续前进会节省大量的社会 资源,会使软件的开发成果更快发展,会出现更多精彩的软件,而每个公司都从基础做起是对社会的更大浪费,这个问题需要政府和更多的公益事业人员意识到,软 件这种不同于其他产品的可继承性的特点需要大家注意,如果立法能够把商业软件的著作权保护期缩短,并且强制开源,和专利的情况接近,那么对社会进步的好处 会更大,除了对公司垄断获得超额利润有影响外,对正常获利也没有影响)
当然,选择GPL或BSD授权还和人的价值观有关系,但以开发类型来选择授权方式是比较合理的。如果采用封闭开发,使用BSD也可以达到GPL的效果,而采用社区开发,BSD会对开发团队的成长不利。如果在没有商业化价值的领域,GPL完全没有必要。
MPL授权是商业软件想要借助社区的力量的产物。
LGPL对有商业化的友好性和GPL相比是大大提高了,在很多情况下对商业化都没有阻碍,可以说达到了50%的商业化的要求,但有时商业化需要 对源代码的彻底修改,因此不能说LGPL百分之百满足商业化要求,LGPL是一个折衷的授权,如果社区开发的软件希望能在更大的范围内被使用,可以采用 LGPL。
各种软件授权的优缺点及适用范围和变种(增订版)
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等。