2003年,微软公布RPC漏洞后,一场随之而来的病毒风暴着实让全世界的Windows用户痛苦不堪。这无疑会使更多的计算机用户把目光投向更为安全可靠的Linux。提起Linux,除了那个可爱的“小企鹅”外,人们也许还会想起Linus Torvalds,因为他编写了Linux。但有人说:“Linux并不能代表整个操作系统。Linux只是内核,整个系统还包含数以百计的软件工具和实用程序,这些工具和程序大多是由GNU们完成的。”而且他认为,整个操作系统称为GNU/Linux比较合适。这个人就是Richard Matthew Stallman。

北京科技大学 宋威


    Richard Stallman是自由软件运动的精神领袖、GNU计划及自由软件基金会FSF(Free Software Foundation)的创立者。他为自由软件运动竖立了道德、政治及法律框架,被许多人誉为当今自由软件的斗士、伟大的理想主义者,但同时也有人批评他过于固执、观点落伍。

“叫我RMS”


    1953年,Richard Stallman出生于美国纽约曼哈顿地区。1969年,16岁的Stallman在IBM纽约科学中心第一次接触到了电脑,并从此与之结下了不解之缘。1971年,他进入哈佛大学学习。同年,一次偶然得机会使得他受聘于麻省理工学院(MIT)人工智能实验室,专业从事软件开发工作,并且一直在那里工作了10多年。

   当时,人工智能实验室使用一个ITS(不兼容分时系统)分时操作系统。开发人员用汇编语言为Digital的PDP-10计算机设计和编写程序,Stallman的工作就是改进系统。当时,自由拷贝和源代码开放是整个计算机业的软件开发和传播模式。当时软件是鼓励自由拷贝的,如果你看到别人使用一种你没见过且有意思的软件,就可以向他索要程序,这样你就可以读它、修改它,或者拆卸部分用于新的程序。可以说,正是这种自由,造就了很多成功的软件,如Pascal、Lisp、Unix等。
    然而,进入80年代后,计算机的商业化和软件专有化席卷了整个产业。好多有才能的MIT程序员投入了市场的怀抱。这大大伤了MIT人工智能实验室的元气。一个相互协作、彼此交流的社区就这样被禁止了。Richard Stallman感到一个时代结束了。
    “随着社区的终结,我面临着一个道德上的抉择。最简单的就是投身于专有软件世界之中,签署不公开协议,并承诺不帮助同行、同事。我自己也很可能编写软件,并在不公开协议的前提下发布软件,去同流合污,迫使更多的人背叛自己的原则。显然,走这条路可以挣大钱,而且使编写代码的工作增添一份金钱上的快乐。但是我知道,等到自己职业生涯终结时,我再回首这些年为分离人类而砌造的‘墙壁’,我会感受到我将自己的一生都用在使这个世界变得更加糟糕。”
    另一个选择很直截了当,但令人不愉快,那就是从此离开计算机领域。“这样我的技能不会被滥用,但也将被浪费,我不会因为分化和限制计算机用户而感到有罪,但这些事情会继续发生。”Richard Stallman说:“因此,我开始寻找一条出路,使程序员可以做真正的好事。我问自己,我能写什么软件?我能否让社区重焕生机?”
    1983年,Stallman曾写下了如下一段自传:“1953年,我在曼哈顿的一个实验室,1971年到了MIT的人工智能实验室。我的爱好包括交友、各国民间舞蹈、飞行、烹饪、物理、录像、双关语、科幻小说、当然还有编程。而我正是靠最后一样爱好来维生。一年前,我与相伴10年的‘老友’——PDP-10分手了。虽然我们仍然‘相爱’,但这个世界却让我们不得不分道扬镳。在这段时间里,我仍然住在麻省的剑桥。在我的记忆里,Richard Stallman是我的俗名,人们可以叫我RMS。”
    虽然“这个世界”让他与“老友不得不分开”,但Stallman仍然在继续奋斗,仍然在“麻省的剑桥”,并大胆地宣布“Richard Stallman是我的俗名”,从此开始了他长期的、不屈服于世俗的、勇敢的战斗。

GNU计划和自由软件基金会诞生


    1983年,Richard Stallman在net.unix-wizards新闻组上公布公开发起GNU计划,宣布它的目标是创建一套完全自由的操作系统,并附带一份《GNU宣言》。在该宣言中,Stallman声称发起该计划的一个重要理由是要“重现当年软件界合作互助的团结精神”。 GNU是“GNU's Not Unix”的递归缩写,Stallman宣布GNU应当发音为Guh-NOO以避免与new这个单词混淆(注Gnu在英文中原意为非洲牛羚,发音与new相同)。
    1984年1月,Stallman辞去了MIT的工作。他担心MIT会要求产品的所有权,会给产品强加入自己的销售条件,最终又会成为专有软件。对于他来说,首先需要的是一个操作系统,这是开始使用计算机的关键软件。有了自由操作系统,就能再次组建一个相互合作的自由社区,而且任何人使用自由软件都不必剥夺他/她与朋友家人的共享权利。 作为一名操作系统的开发人员,Stallman无疑最胜任。“虽然我没有认为自己一定能成功,但我意识到自己就是命中注定要做这项工作的。” 他选择做一个与Unix兼容的操作系统,这样容易被移植,而且Unix用户可以方便地转移过来。
    一开始,GNU计划只有他一个人。他发现自己原来在人工智能实验室的办公室还没有分给其他人用时,他就每天晚上溜进去工作。久而久之,白天他也跑去用实验室里的电脑。当时,人工智能实验室主任Patrick H. Winston并不干涉。因为他始终不把Stallman的辞职当真,只要Stallman能创造些好东西给大家用,实在没有必要打发这位老同事走。因此,他爽快地答应Stallman可以继续使用实验室的设备。从此,Stallman就成了特殊的一员。
    GNU工程采用了部分当时已经可自由使用的软件,例如TeX排版系统和X-Window视窗系统等。工程启动后,Stallman听到有一个自由大学编译器套件。他去信询问能否用入GNU。答复是嘲弄式的,说对大学是自由的,但软件本身不行。于是,他决定为GUN编写的第一个软件就是能跨平台的编译器。由于C语言是使用最多的开发语言,而且是Unix的开发语言,所以,他决定首先写一个C的编译器,并命名为GCC。
    1984年9月,Richard Stallman开始写GUN Emacs。到1985年初,GUN Emacs已经可以工作了,使用它可以用Unix系统进行编辑。此时,人们开始想使用Emacs,但如何传播它?当然,他将其放到了MIT的匿名服务器上。但那时互联网还未普及,人们很难通过FTP获得拷贝,而失业的Stallman也需要收入。于是,他宣布任何人都可以用150美元的价格获得程序。自由软件的分销商业模式就此诞生。目前已有几百种Emacs的副程序,可用在50多种电脑上,从微电脑到Cray的超级电脑都可用Emacs。
    为防止不法厂商利用自由软件,使其专有化。Richard Stallman还别出心裁,与一群律师起草了广为使用的GNU通用公共协议证书(GNU General Public License, GNU GPL),创造了Copyleft的授权办法。所有的GNU程序遵循一种“Copyleft”原则,即可以拷贝、可以修改、可以出售,但有一条就是源代码所有的改进和修改必须向每个用户公开,所有用户都可以获得改动后的源码。它保证了自由软件传播的延续性。
    由于Emacs的成功,Richard Stallman设立了自由软件基金会(Free Software Foundation Inc.,简称FSF)。FSF致力于消除对计算机程序在、复制、分发、理解和修改方面的限制。凡是捐助FSF和GNU计划的厂商,也可享有减税的优待。单单1989年,FSF就收到267782美元的捐助,基金会也因出售GNU程序手册和电脑磁带而赚了330377美元。此时,Stallman也不再天天溜回人工智能实验室“借”用电脑,因为许多厂家已为FSF提供一大堆的高性能工作站等硬件设备,包括HP、Thinking Machine、SONY、贝尔实验室等。也有一些厂商捐赠现金,并把技术人员送到FSF来向Stallman学习,而且支付FSF成员的薪水。
    FSF就用这些钱来养起14位基金会成员:9位程序设计师,3位负责技术资料撰写。虽然Richard Stallman自己不支薪,但他不能期望他的同仁也和他一样看得开,饿着肚子为理想奋斗。FSF的程序设计师一年也只有25000美元的薪水,这也只是在一般厂商工作薪水的一半或三分之一。Stallman之所以以低薪待人,原因就是可多请几位志同道合的合作者,为理想而工作。

Linux应该称为“GNU/Linux”


    GNU激励了许许多多年轻的软件开发者,一些商业公司也开始介入开发和技术支持。其中最著名的就是之后被Red Hat兼并的Cygnus Solutions,他们编写了除操作系统内核Hurd以外的大量自由软件。
尽管GNU的计划是建立一个完整的自由软件世界,但是作为其根基的操作系统(Hurd)的开发进展却相对缓慢。Linux的出现恰逢其时,它使得GNU有了一个坚实的根基。
    Richard Stallman经常阐述:“GUN代表自由的思想,但不是免费的午餐。”而同是自由软件的积极倡导者,Linus Torvalds从不对自由软件应该是什么妄加评论,他毫不犹豫地把Linux奉献给了自由软件,奉献给了GNU计划。
    1991年,Linus Torvalds编写了系统内核,称之为Linux。Linux作为一个操作系统,用于编译、项目管理、运行的各种工具和各种函数库也源于GNU项目。Linux就把所有软件和硬件连接起来。
GNU和Linux密不可分,因此,Richard Stallman一直说,Linux并不能代表整个操作系统。Linux只是内核,整个系统还包含数以百计的软件工具和实用程序,它们大多是由GNU的开发者们完成的。他认为,Linux操作系统称为GNU/Linux比较合适。

为弘扬自由软件精神四处布道


    有人说,Richard Stallman是地球上编写代码最多的程序员。他编写了大量优秀的程序,如Emacs 、GCC和GDB (程序调试器)。目前,尽管他对GNU的设想还没有完全实现,但是这个软件系统已经有1000多个应用程序,而且GNU自己的内核Hurd也已经发布了Beta版本。此外,GNU在工作站和微机市场也颇有成就,许多Unix/工作站和微机厂家,都把GNU纳入他们操作系统。
Stallman的工作得到了认可,他曾获得多项大奖和荣誉:
    ◆1990年度麦克阿瑟奖(MacArthur Fellowship);
    ◆1991年度美国计算机协会(Association for Computing Machinery)颁发的Grace Hopper Award,以表彰他所开发的的Emacs文字编辑器;
    ◆1996年获颁瑞典×××技术学院荣誉博士;
    ◆1998年度电子前线基金会(Electronic Frontier Foundation)先锋奖(Pioneer Award);
    ◆1999年Yuri Rubinski纪念奖;
    ◆2001年武田研究奖励赏;
    ◆2002年成为美国国家工程院院士。
但是,Richard Stallman真正的力量还是他的思想。在他的理论下,用户彼此拷贝软件不但不是“盗版”,而是体现了人类互助的美德。他说:“想想看,如果有人同你说,只要保证不拷贝给其他人用的话我就把这些宝贝拷贝给你。其实,这样的人才是魔鬼;而诱人当魔鬼的,则是卖高价软件的人。”他在《为什么软件不应有‘所有者’?》一文中指出,软件的编写者将软件“据为己有”看上去天经地义。但必须看到,一个软件并不是单纯的工具,一旦软件的编写者将其传播出去,就不简单地是在提供“工具”,而是在传播“思想”。在这一点上,现有的版权体系采用了所谓保护“表达”,不保护“思想”的两分法,为软件保护问题设置了无法解释的障碍,造成了软件的精神分裂。
    Richard Stallman认为,自由软件并非免费软件。为了募集资金,他建议销售软件光盘时制定一个适当的价格。另外,虽说是自由软件,也不一定必须设定一个较低的价格。而且,在Copyleft时代,软件公司可以靠服务和训练赚钱。如果你公司没有人会用源代码,你就得请位程序员,帮你修改由FSF得来的Copyleft程序。你不必怕出钱所改的程序会流传到另一家公司,因为那家公司也许会为这软件改头换面,或修改或添加些新功能。在任意拷贝的情况下,大家都回因此而受惠。
    Stallman希望,有一天软件业者不是靠目前的“Copyright”版权法,迫使客户花费巨额资金购买软件,而是依仗提供服务(如技术支援、训练)来获取应得的报酬。简而言之,未来软件业的基本准则就是“资源免费,服务收费”。
    Stallman总是风尘仆仆,行囊相随,四处布道。Stallman从来都只用自由软件(当然他没用过Windows)。他没有自己的汽车、电视和×××。这位单身汉居住在一间租来的房子里,他没有领过一天工资,因为他的工作就是使软件获得自由。

    然而在商业社会的今天,人们更愿意追逐财富,而不是贫寒的Stallman的崇高思想。Richard Stallman毫不妥协的个性和思想使其在自由软件内部也越来越成为争议人物。但不容置疑的是,正是他的思想成为自由软件运行的力量源泉。无论如何,Richard Stallman仍然被认为是自由软件运动的核心人物,他在计算机领域的重要地位不容动摇。
    Steven Levy的名著《***:电脑时代的英雄》论述了个人计算机兴起的历史。该书最后一章讲述了Richard Stallman的故事,题目就是“最后一个真正***”。这是对他最恰当的评价。连他的反对者也说:“如果不存在Richard Stallman,人类也应该把他创造出来。”