科普文章
GNU GPL简介
时间:2009-09-03
  GNU GPL(GNU General Public License,通用公共许可证)是一个广泛被使用的自由软件许可证,最初由理查德·斯托曼为GNU计划而撰写。到目前位置,GPL先后发布了有3个版本。

  GPLv1  GPLv1是最初的版本,发布于1989年1月,其目的是防止那些阻碍自由软件的行为,而这些阻碍软件开源的行为主要有两种(一种是软件发布者只发布可执行的二进制代码而不发布具有源代码,一种是软件发布者在软件许可加入限制性条款)。因此GPLv1规定,如果发布了可执行的二进制代码,就必须同时发布可读的源代码,并且在发布任何基于GPL许可的软件时,不能添加任何限制性的条款。

  GPLv2  在GPLv2中所做的最大的改动就是增加了“自由还是死亡”(Liberty or Death)的条款。该条款规定,如果发布源于GPL的软件时,只能以二进制代码的形式发布软件,那么他将根本无权发布该软件。

  GPLv3  发布于2007年6月29日。在所进行的修改中最重要的有四个:解决软件专利问题;与其他许可证的兼容性;源代码分割和组成的定义;解决数字版权管理 (DRM) 问题。

  在GPL中有一个关键的概念就是Copyleft。GPL规定,再发行权的授予需要许可证接受人公开软件的源代码及所有修改,而且复制件、修改版本都必须以GPL为许可证。这些要求就是Copyleft,它的基础就是作品在法律上版权所有。

  由于版权所有,一般情况下,许可证接受人无权对作品进行修改和再发行(除合理使用),除非它有一个 Copyleft条款。Copyleft利用版权法来达到与其相反的目的: Copyleft给人不可剥夺的权利,而不是版权法所规定的诸多限制。这也是GPL被称作“被黑的版权法”的原因。

  Copyleft只在程序再发行时发生效力。对软件的修改可以不公开或开放源代码,只要不发行。注意copyleft只对软件有效力,而对软件的输出并无效力(除非输出的是软件本身)。

(本文摘自《计算机世界》2009年08月21日第32期)