`

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

阅读更多
论GPL的本质和对整个软件产业的影响
作者:中文2000软件技术有限公司 张昀 发文时间:2005.06.16

GPL是GNU Public License的缩写,最早是自由软件基金会为了促进开放源代码的发展,而搞出来的一种版权协议。

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

一、GPL和软件版权

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

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

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

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

自由软件基金会主持开发了无数的自由软件,特别是C++编译器Gcc,由于采用了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的WebSphere,Borland的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,那么选择其他协议就可以了,没有任何问题的。

GPL, GNU, 自由软件, 开放源代码
归类于: 文档说明, 自由软件与开源社区 | 评论(0)

如何重用Xoops的MYSQL访问代码?
5/29/2005 — dingaimin (阅读: 1710)
我准备针对电子政务行业搞几个专业性的应用,需要编写一些自己的模块。该模块需要在MySQL库中建表,并将用户提交的数据记录下来,我想重用一些访问MYSQL的代码模块,请指教。
分享到:
评论

相关推荐

    OpenCD 国外一个基于GPL的P2P软件代码

    GPL 是一种自由软件许可证,它保障了用户对软件的自由使用、复制、修改和分发的权利。P2P 技术则是互联网通信的一种模式,其中每个参与者既是客户端也是服务器,可以互相分享资源。 在这个压缩包中,我们可以找到...

    (完整版)开源软件相关概念三详解GPL许可.doc

    如果一个作品与GPL软件没有实质性的联系,它就不受GPL的“传染性”影响。但是一旦将GPL软件源代码融入到非开源软件中,或者将两者合并发布,那么非开源软件就需要遵循GPL的规定,即变为开源。 总的来说,开源软件...

    开源软件相关概念 三 详解GPL许可-9页word资料.pdf

    这种许可协议采用了“copyleft”原则,即如果一个软件项目中包含任何受GPL许可的代码,那么整个项目必须同样遵循GPL,公开源代码,并允许他人自由使用和修改。 【copyright】是版权的法律术语,指的是创作者对其...

    HDP-GPL-3.1.4.0-centos7-gpl.tar.gz

    5. 许可证文件:GPL(GNU General Public License)许可证,规定了开源软件的使用、修改和分发规则。 6. 组件库:可能包含HDP组件的二进制文件和库,用于实际运行服务。 7. 文档:用户指南、API参考、故障排除信息等...

    GPL-2 license

    ### GPL-2许可证详解 #### 引言 GNU通用公共许可协议版本2(GPLv2)是一项由自由软件基金会(Free Software Foundation, FSF)发布的开源许可证,旨在保护用户分享和修改自由软件的权利。该许可证确保了软件对于...

    HDP-GPL-3.1.0.0-centos7-gpl.tar.gz

    7. **监控与管理**:安装完成后,Ambari会提供实时的性能监控、日志查看、报警设置等功能,方便你对整个Hadoop集群进行管理和维护。 在使用过程中,注意保持Ambari Server和Agent的版本一致性,以确保最佳兼容性和...

    ext-4.0.2a-gpl

    4.0.2a-gpl”与描述中的“ext-4.0.2a-gplext-4.0.2a-gpl”都指向同一个关键信息,即EXT 4.0.2a,它是一个开源的文件系统扩展,而“gpl”指的是GNU General Public License,这是一个广泛使用的自由软件许可证。...

    开源协议比较(BSD,Apache,GPL,LGPL,MIT)

    GPL是最具影响力的开源许可证之一,由自由软件基金会(FSF)发布,旨在确保软件的自由性和开放性。根据GPL,任何使用、修改或分发GPL许可软件的人,都必须将其衍生作品也以GPL许可证发布,这被称为“传染性”或...

    anchor-plugins-gpl:具有GPL许可的插件

    这是软件的源代码分发的一部分。 它包含具有GPL许可证的插件。 什么是锚? Anchor是由在以下位置开发的图像分析平台: 苏黎世联邦理工学院 苏黎世大学 霍夫曼·拉罗什 作为一个开放源代码的个人/社区项目而进行...

    ffmpeg-win64-gpl.zip

    4. **GPL许可证**:GPL是一种自由软件许可证,要求任何派生自原始软件的产品也必须使用相同的开放源代码许可证发布,保障了源代码的开放性和共享性。 5. **使用FFmpeg**:在Windows 10上,你可以通过命令行窗口...

    五种开源协议(GPL,LGPL,BSD,MIT,Apache)介绍

    首先,GPL(GNU General Public License)是最具影响力的开源协议之一,它确保了软件的“copyleft”属性,即如果软件的任何部分被用于其他项目,整个项目必须遵循GPL协议。这意味着衍生作品也必须开源,以维护软件的...

    ext-7.0.0-gpl.7z

    "GPL"代表GNU General Public License,这是一种自由软件许可证,允许用户自由使用、修改和分发软件。选择GPL意味着开发者可以免费使用ExtJS 7.0,但必须公开任何基于此库的修改和衍生作品的源代码。 3. **组件...

    Pick_think3_gpl_thinkdesign开发_think3gpl宏_Pick_think3_gpl_源码

    thinkdesign GPL 宏写的实例 供对think3中gpl有兴趣的做参考。

    ffmpeg库:ffmpeg-n5.1-latest-win64-gpl-shared-5.1

    3. **音视频过滤**:FFmpeg 提供了丰富的滤镜系统,可以对视频和音频流进行各种处理,如裁剪、缩放、旋转、色彩校正、音频混音等。这使得开发者可以创建复杂的视频编辑或特效应用。 4. **转换和流式传输**:FFmpeg ...

    ext-7.0.0-gpl.zip

    标题中的"ext-7.0.0-gpl.zip"是一个软件扩展或库的压缩包,遵循GPL(GNU General Public License)开源协议。这通常意味着它是一个免费的、可修改的软件,用户可以查看源代码并根据需要进行定制,但必须保留原始许可...

    ffmpeg-master-latest-win64-gpl-shared

    - `README` 和 `LICENSE`:关于软件的说明文档和许可证信息。 - `bin` 目录:包含所有可执行文件和库。 - `doc` 目录:可能有FFmpeg的文档和帮助文件。 - `include` 目录:包含头文件,供开发人员使用FFmpeg API进行...

    GPL16200_programming_SUNPLUS_

    它们在功耗管理方面表现出色,适用于对低功耗有严格要求的应用,如物联网(IoT)设备、智能家居和便携式电子产品。 编程SUNPLUS GPL16200时,开发者应熟悉其指令集架构(ISA)。这是一种精简指令集计算(RISC)架构,...

    PyQt win gpl 4 11 1 zip

    GPL(GNU General Public License)是一种开源软件许可证,允许用户自由地使用、修改和分发代码,但要求任何基于此代码的衍生作品也必须遵循 GPL 许可。 PyQt 是由英国的 Riverbank Computing 公司开发的,它提供了...

    gpl.txt源码不给的方法

    标题和描述中所提及的知识点主要围绕如何在遵循GPL(General Public License)许可证的前提下,有策略地管理和发布源代码,尤其是对于那些不希望公开的部分。以下是对这些知识点的详细解析: ### GPL许可证与代码...

Global site tag (gtag.js) - Google Analytics