技术开发 频道

GNU项目25周年,路在何方?

【IT168 技术文章】

    在计算机出现的最初时期,所有的一切都可以被认为是自由软件。当时的计算机体型巨大,不能联网,还有在现在看来非常不能理解的工作方式,因为他们最初都是通过卡片或者纸带来实现计算的。就在这个时候,Richard Stallman出生了。上个世纪60年代的时候,Richard Stallman开始在IBM System/360大型机上进行程序设计,当时采用的语言是PL/I,这是一个有着悠久历史的过程性编程语言,距今已经有45个年头。70年代左右,Richard Stallman开始在MIT人工智能实验室工作。就在这里,他见证了软件的自由向私有化以及专有方向的发展。正是这种“黑客”文化的不断消失,使得他下定决心要改变这些,从而为他在83年创立GNU项目打下了基础。

    在Richard Stallman的记忆里,在整个70年代,绝大多数操作系统已经开始走向专有,不再开放。就比如在MIT的人工智能实验室,最开始的时候也有一个自由的操作系统,但是在80年代早期的时候也已消失。

    因为在此时期,MIT人工智能实验室里的黑客们成立了一家名叫Symbolics的公司,这家公司主要是结合当时的软硬件系统,出售名为LISP系统的产品。Richard  Stallman认为,这种闭源的方式正是他所追求的自由软件的死对头。

    当时Richard Stallman花了大量时间在和Synbolics公司斗争,并且不停的攻击它,而且给那些在MIT智能实验室办公司的人下了最后檄文。他还曾经说过:“我并不想在我的余生中和谁过不去,我只是想把我们所失去的东西找回来,我只是想使得计算机的使用者能够获得真正的自由。但是,假如程序是专有的,那么这个理想是永远不可能实现的。”

    所以在1984年的时候,Stallman决定自己从头开始写一个自由的操作系统。这个操作系统的名字是GNU,取意递归“GNU is Not Unix”语句的首字母。才开始的时候,他想通过改写一个名为Patel的编译器来作为这个操作系统的基础,但是很快发现这样行不通。于是他决定从头开始写一个自由的编译器,这就是后来著名的GCC(GNU Compiler Collection)的基础。然后,他还重写了Gosling Emacs文本编辑器,将其中的LISP代码全部剔除,这就是最初的GNU项目自由软件项目之一,GNU Emacs。

    接着,就是我们见证的一个历史性时刻,因为要发布GNU Emacs,Stallman就需要给软件附带一个用户授权协议。最初,Srallman在1985年使用的授权协议并不是GPL。这是GNU项目首次在软件版权领域涉足,在此之后的第四个年头,所有的GNU操作系统中部件,所有其他部分都逐渐地采用统一的授权协议,这就是GPL,GNU通用公共授权。

    在第一版本的GPL发布二十年之后的今天,我们很难去否认GPL授权的影响力和巨大的贡献。目前全球半数的开源软件使用的是GPL授权或者GPL授权的衍生版本。比如像GCC、GNU Debugger和GlibC这样的自由软件项目,现在的影响力远远超出了GNU操作系统的范畴,在更广的范围中得到应用,起着自由软件运动主力军的作用。

    来自纽约法学院的james Grimmenlmann教授认为,之所以GPL有如此强大的生命力,就在于它的公开审查和广泛使用的特点。首先,这份授权协议起草的非常完善,虽然很多的开源软件授权协议也非常完善,但是GPL要做的更好一些,它通过依靠社区力量,在多年的时候中得到了大量的反馈和审查,其中考虑了很多特殊情况。

    二十多年来,GPL还一直没有真正的出现过版权方面的纠纷,但是James教授认为,这并不是妨碍它继续进步的原因。事实上,除了在GPL V3版本中,有关DRM(数字版权管理)的条文还在模棱两可之外,围绕GPL本身是授权协议还是合约的问题,一直都是GPL争吵不休的主题之一,可以说,GPL自身还是存在着一定的问题。他还说,GPL授权和大部分开源授权不冲突,你要是违反了GPL,你就不可能不违反其他的开源授权协议。

    假如没有Richard Stallman,GPL授权、GNU项目,还有自由软件基金会是否会倒下呢?假如Stallman退休后,它们将会如何发展呢?FSF授权咨询工程师Brett Smith给了我们明确的答案,他说,FSF在运作上已经很早就和Stallman无关了,FSF走的是非营利机构的途径。是GPL等相关协议的管理者和维护者。在组织上,自由软件基金会有一个管理委员会,他们负责基金会的发展和运作。   

    在GNU社区中一个经常吵来吵去的话题就是,Stallman对于GNU项目哲学层面追求的苛刻要求。例如,来自Apache基金会的创始人之一,Brian Behlendorf就曾经说过,stallman对于某些字眼的过份追求、缺乏对其他自由言论的容忍,着实令人抓狂。

    Behlendorf在某些场合认为,开源软件和自由软件在某些情况下是一样的,而这种说法是Stallman旗帜鲜明所反对的。Behlendorf对于开源项目的社区抱有更加宽广的胸怀,甚至是某些并没有严格遵守GPL关于再发布条款的项目。

    自从GPL发布以来,很多事情已经发生变化,包括软件行业,虽然GPL也在发展,但是显然没有跟的上脚步。在GNU项目创立之初,GPL协议不同于那些共享软件,强迫性的反馈制度是必须的,只有这样他才能生存下去,取得发展。Berkeley授权没有采用这种强迫性的制度,所以没有足够的社区反馈,因而没有得到长足的发展,而这些正是目前Unix市场衰落的原因之一。在自由软件基金会创立之初,也只有这样做,他们才能存活下去。

    但是现在还抱着这种想法,可能并不是好事情。正如Behlendorf所说,Stallman在GNU项目精神上的苛刻追求,已经使得新一代的软件开发人员对他避而远之。自由软件和开源软件两者之间的分歧已经使得很多开发人员感到困惑。Behlendorf认为,在Stallman看来,作为GNU项目的创始人,GNU所追求的软件自由及其开放精神是容不得半点妥协的,但是现在有人在推广自由软件,这伤害了GNU以及自由软件运动。而事实上,他本人应该感觉骄傲,因为这也是自由软件运动的成果之一。

 

0
相关文章