论GPL的本质和对整个软件产业的影响

发表于:2007-07-04来源:作者:点击数: 标签:
GPL 是GNU Public License的缩写,最早是自由软件基金会为了促进开放源代码的发展,而搞出来的一种版权协议。 GPL对软件产业的发展起到了巨大的促进作用,但是也带来了很多误解。在美国考察期间,我们和GNU的主要负责人进行了广泛交谈,精确地了解了GPL的本
GPL是GNU Public License的缩写,最早是自由软件基金会为了促进开放源代码的发展,而搞出来的一种版权协议。

GPL对软件产业的发展起到了巨大的促进作用,但是也带来了很多误解。在美国考察期间,我们和GNU的主要负责人进行了广泛交谈,精确地了解了GPL的本质,以及它对软件产业产生的影响。本文就是介绍这方面的情况。

一、GPL和软件版权

首先需要明确的是,GPL协议只是无数种版权协议其中的一种,它和版权本身是不同的概念。具体的解释如下:

软件的版权完全属于其作者所有,作者可以自由地选择采取哪一种版权协议来发布自己的软件。

在传统的商业模式,作者一般采取商业版权协议来发布自己的软件。商业版权协议也有各种不同的方式。例如以前商业版权协议要求用户在每一台计算机上安装一份软件,而微软新的版权协议要求用户不但安装软件,还要同时购买升级资格。这些都是不同的商业版权协议。

为了促进软件产业的发展,作者也可以选择GPL协议。这样作者将他的源代码开放,供其他人修改,而其他人能够修改的前提是接受作者指定的GPL协议。

自由软件基金会主持开发了无数的自由软件,特别是C++编译器Gclearcase/" target="_blank" >cc,由于采用了GPL协议,无数人的思想可以共享,因此GPL和自由软件迅速地发展起来。

由于GNU的软件全部采用GPL协议,而GNU的软件影响力又非常之大,因此很多人错误地将自由软件和GPL完全联系在一起,认为所有的自由软件都是采用GPL协议的,这是完全错误的。

虽然GPL和自由软件的发展紧密地联系在一起,但是这两者并不等同。自由软件的作者并不一定选择GPL来发布他的软件,如果愿意的话,软件的作者甚至可以自己编写一个版权协议。

这里一定要搞清下面的概念:

软件的版权归其作者所有,其作者有权选择采用哪种版权协议

GPL只是众多版权协议中的一种

自由软件不一定要采用GPL协议

GNU不拥有所有开放源代码软件的版权,GNU只拥有那些由自由软件基金会开发的软件的版权,以及那些作者自愿交给GNU的版权。



二、GPL的发展

随着技术的发展,越来越多的公司开始关注开放源代码软件和Linux,这些公司显然不愿意完全开放源代码。

同时GNU也注意到GPL不利于商业运作。为了促进Linux下商业软件的发展,GNU又公布了LGPL协议。

LGPL协议的核心思想是:

用户可以使用开放源代码的“程序库”开发自己的商业软件,而无需开放源代码。(“程序库”指可以完成特定功能的现成的软件代码)

如果对“程序库”本身进行了修改,则必须公开修改“程序库”的源代码。

用户如果自己开发“程序库”,如果该程序库是专门针对某个特定的开放源代码软件开发的,则必须公布源代码。如果该程序库具有一定的通用性,则可以不开放源代码。

第一条的意思是允许在Linux上开发商业软件。因为Linux下的所有软件都必须用到glibc库,所以如果要求遵守GPL协议,那么就不可能存在Linux下的商业软件了。而采取LGPL,则允许商业软件的发展。

第二条的意思是为了保护程序库的唯一性和一致性。如果用户随意修改程序库而不必开放源代码,则很快程序库就有很多个版本,这样就不能保证其他软件的兼容性

第三条的意思是允许用户开发商业用途的程序库。

LGPL协议大大促进了Linux下商业软件大发展,一些优秀的软件,例如IBM的WebSphereBorland的Kylix,AW的Maya,都是在LGPL的前提下发展起来的。

但是,仍然有很多公司认为LGPL协议的规定还是太死板,不能满足其需要,所以又提出了各种各样的“第三方协议”,比较典型的是Sun为OpenOffice提出的SISSL协议。

SISSL协议规定,在开放源代码项目OpenOffice基础上开发的商业软件,可以不公布源代码。这样,就有一个比LGPL更好支持商业软件的版权协议。

注意,前面提到过,软件的作者拥有版权,能够决定采取何种版权协议发布自己的软件。而最近一些比较大的开放源代码项目都是由一些大公司公布的源代码,因此他们可以决定对自己的开放源代码项目采取何种版权协议,而不必理会GNU的意见。

现在一些比较大的开放源代码项目,都是由大公司主持的,因此都支持各种各样的第三方协议。这些协议的目的只有一个,就是保护这些大公司自己的版权,允许他们开发商业软件。

GNU最近也在考虑制定新的版权协议,进一步增加对商业软件的支持,可见GPL协议也在不断地更新之中。



三、GPL的功与过

GPL对软件产业的发展到底是好还是坏,这是大家讨论的焦点。

在1998年以前,GPL对Linux的促进是很显然地,可以说没有GPL就没有Linux。大家都知道,与Linux竞争的,还有FreeBSD项目,这个项目的版权协议允许封闭源代码,并且实际上FreeBSD的某些软件也相当不错。但是现在来看,Linux的到蓬勃发展,FreeBSD却在逐渐消亡。

原因很简单,基于FreeBSD开发的软件,很快就变得不开放源代码了,因而得不到整个社区的支持,所以也没有可持续发展。一旦其创始人由于某种原因终止了开发,整个项目就不会延续了。

而基于GPL的项目,由于种种原因,总会有人不断研究,因此有很强的可持续发展能力。

1998年以后,公司大量介入Linux,因此LGPL又起到了很大的促进作用。由于LGPL的推广,很多公司把自己的商用软件移植到Linux上。在Linux World大会上,我们可以看到,除了微软以外,几乎所有的大型软件公司都把自己的产品移植到了Linux上或者正在移植。

现在,由于桌面Linux系统的要求,以及对Linux软件商业化的压力,大家开始让Linux真正被普通人接受,而不只限于爱好者。此时,“第三方协议”又起到了很大的作用。Linux下的主要应用软件,例如办公套件、浏览器、电子邮件、IDE编程环境等,都是基于SISSL这样的第三方协议发展起来的。

在未来的岁月里,显然Linux的发展需要各种协议的综合运用,使得Linux既拥有开放源代码软件的优点,也拥有商业软件的优点。偏重于任何一种版权协议都是片面地,对整个软件产业发展是有害的。



四、国际大公司的做法

根据在Linux World大会上的考察,目前主要的软件和硬件公司,例如IBM、Sun、RedHat、Borland、Oracle等,都是采用多种软件协议并行的方式。

最典型的是Sun负责的OpenOffice项目,这个项目就是GPL、LGPL、SISSL三种协议并存,开发者可以根据自己的情况,选择自己最合适的版权协议。

等到GPL的最新版本出来之后,也许就不会有各种各样的第三方协议,而同一在GPL的某个新的、完全支持商业软件发展的协议之下。



小结:

我们可以将GPL协议对开放源代码社区的影响情况总结如下:

要历史性地看待GPL 技术发展日新月异,我们对GPL的看法不能停留在1998年。现在单纯采用GPL协议的软件已经不多,大部分是GPL、LGPL和商业版权协议同时采用。开发者可以根据自己的需要自由地选择自己希望遵守的版权协议。这样既保证开放源代码的发展,又保证各公司的利益。

不是开放源代码软件必然采用GPL GPL不代表版权,也和Linux没有必然联系,它只是软件作者可以选择的版权协议之一。

GPL协议自身也在不断发展之中 必须看到,GPL是相当古老的东西,已经不太适合于现代软件产业的发展。所以国际上很多人正在修订GPL协议,以最大限度地促进软件产业的发展。

GPL对商业化的阻碍没有宣传得那么大 在国际社会的共同努力下,GPL协议已经不再成为开放源代码进入商业的阻碍。过分强调GPL的缺点有夸大事实之嫌。必须看到,现在的开放源代码体系是多种版权协议的混合体系,如果我们认为某些项目不适合于GPL,那么选择其他协议就可以了,没有任何问题的。

来 源:赛迪网
作者:中文2000软件技术有限公司 张昀

原文转自:http://www.ltesting.net