《若为自由故:自由软件之父理查德·斯托曼传》-–—第2章:黑客路漫漫
纽约大学计算机学院坐落在沃伦·韦弗大楼(Warren Weaver Hall)之中,和著名的华盛顿广场公园相隔两个街区。大楼周围充斥着从空调压缩机里传出来的股股热浪,这阵热浪好似屏障一般,驱散着各路闲杂人等。倘若冲破这道屏障,面前还会出现另一道防线:一个安检处拦在了整座大楼的唯一一道入口前面。
走过安检口,气氛似乎缓和了些。可是,依旧能看到各处林立的警示牌指向消防出口。一路下来,可能会有这样的感受:哪怕是在2001年9月初的纽约这样一座现代化的都市之中,也要记得,小心驶得万年船。
当继续向前,走到中央大厅的时候,这份谨慎的感受却被一群人冲破了。他们之中,有些看起来像是纽约大学的学生。大部分则蓬着头,好似等待着一场盛大的音乐会。在这短暂的上午,这群人占据了沃伦·韦弗大楼。这下子,安检人员反倒闲下来了。他们斜躺坐在椅子上,看着电视剧。要是哪位访客,问起``演讲''的事,这位保安就会连话也懒得说一句,干脆冲着旁边的大礼堂一耸肩,然后继续看他的电视剧。
有如此神通,能让保安放半天假的这位演讲者,此时正坐在大礼堂中。他就是理查德·M·斯托曼:GNU工程的创始人,自由软件基金会的第一任主席,1990年麦克阿瑟奖(MacArthur Fellowship)获得者,同年美国计算机协会(Association of Computing Machinery)格雷斯·莫瑞·霍普奖(Grace Murray Hopper Award)获得者,2001年日本武田基金会(Takeda Foundation)的武田奖(Takeda Award)共同获得者。当然,他也是人们熟悉的那位麻省理工学院人工智能实验室的黑客。前阵子黑客相关的网站上,包括GNU工程的官方网站上http://www.gnu.org ,都刊载了一条新闻:理查德·M·斯托曼将在他的家乡纽约曼哈顿发表演讲,回应微软在前些时候关于GNU通用公共许可证(GNU General Public License)的抨击。
斯托曼演讲的主题,是关于自由软件运动的历史和未来。这次演讲的地点尤为重要。不到一个月前,微软的副总裁克雷格·蒙迪(Craig Mundie)就是出现在纽约大学斯特恩商学院(Stern School of Business),抨击GNU通用公共许可证——简称GPL。GPL是斯托曼16年前想出来的法律武器,用来对抗工业界中越来越盛行的专有软件。1980年,斯托曼经历了那次施乐打印机事件之后,预感到了软件专有化的潮流逐渐到来。为了抗衡这潮流,斯托曼提出了自由软件的概念:用户可以自由地使用、学习、修改和再发布软件。如今,GPL已经俨然成为了自由软件社区的核心工具。简单来说,GPL是一个软件使用许可证,它利用版权法,将自由软件锁定在公众可以自由使用和修改的领域。一旦锁定,这个软件就不会再被专有化。不仅仅是这个软件本身被锁定为自由软件,这个软件的任何衍生品也会成为自由软件。也就是说,倘若某个软件以GPL形式授权发布,这个软件以及任何它的衍生品,都可以被用户自由使用和修改。所谓一个软件的衍生品,也就是任何使用了该软件的代码的作品。哪怕一个软件仅仅使用了某个GPL授权软件的一小部分代码,这个软件也将被要求以自由软件形式发布。恰恰是这个原因,软件业的很多人把GPL称为病毒式许可证,因为它像病毒一样,``感染''所有它触及到的程序1。
随着信息产业的发展,全球越来越依赖软件和软件标准。在这样的环境下,谁都无法忽视GPL。哪怕曾经嘲笑过GPL的公司,也不能再把它视为空中楼阁。因为越来越多的软件都是以GPL形式授权:Linux,一个最初由芬兰大学生林纳斯·托瓦兹(Linus Torvalds)于1991年开发出的类UNIX操作系统内核、GNU Emacs、GNU调试器、GNU编译器等都是以GPL授权的。这些工具在一起,形成了一个完整的自由操作系统。世界各地的黑客为这套操作系统贡献着代码。每个黑客也可以自由地拥有这样一套操作系统。如今,很多计算机公司都不再把这样一套自由操作系统视为威胁。相反,IBM、惠普、Sun等公司都依赖这个操作系统,并在这套系统之上开发和出售自己的软件产品。2
在黑客这个圈子里,这个操作系统也被当作战略武器,用来对抗微软公司。这个总部坐落于华盛顿州雷德蒙德市的软件公司,从20世纪80年代开始,已经俨然成了软件业的垄断巨头。作为Windows操作系统的拥有者,微软公司面对业界同行转向GPL许可证的事实,已经再也坐不住了。在Windows中,几乎每行代码都是专有的。至少按照法律条款看,它归微软所有。倘若有谁不慎在Windows中放入一点GPL授权的代码,整个Windows产品都会被``感染''为自由软件。在微软看来,这就好比把哪吒请进了龙宫,整个公司都得翻江倒海,它必须把整个操作系统的代码都以自由软件的形式发布。竞争对手就可以自由地复制、修改这个系统,并销售修改后的版本,这可能会瞬间颠覆微软公司龙头老大的地位。
因此,微软极度关注GPL的普及情况。也正因如此,蒙迪才来纽约大学,抨击GPL以及``开源''软件的开发销售模式。(微软并不承认``自由软件''这个概念,而是习惯把矛头指向开源章节中即将谈到的``开源''阵营,回避自由软件运动的存在。)这才引得斯托曼也决定来纽约大学,在同一所校园内,回应蒙迪的抨击。
对软件业来说,二十年的时间可是个不短的年头。遥想二十多年前的1980年,斯托曼还在咒骂着人工智能实验室的施乐打印机;微软,这个被当今黑客视为全球软件业巨头的公司,还是个私人的创业小公司;而IBM,这个被当年的黑客视为全球计算机业巨头的公司,还没推出个人计算机;至于IBM的个人计算机推动了整个计算机业的发展,则是之后的事情了。而当今人们习以为常的很多技术,在那时都还没出现。包括WWW网络、卫星电视、32位终端游戏机等。如今的很多计算机巨头,在当时也一样还没建立。包括AOL、Sun、亚马逊、康柏、戴尔等。
高科技产业在这短暂时间内迅速成长的过程中,则充斥着关于GPL的争论。GPL的支持者声称:由于计算机硬件平台的短暂寿命,为了避免买到过时产品,用户会倾向于购买大品牌的产品。由此带来的结果,造成了软件市场赢者通吃的局面3。而如今,由于软件被认为是专有的,具有垄断地位的公司就会滥用它的权利,使得整个产业停滞不前。垄断企业会堵住所有去路,让竞争者无法生存,也让后起的创业公司无处立足。
GPL的反对者则恰恰相反。他们声称销售软件和购买软件一样,具有风险。倘若没有法律保证软件可以被专有化,人们将再也看不到杀手级应用的繁荣(所谓杀手级应用,即某种技术足以打开一片全新市场)4,公司也将失去继续创新的动力。正如微软副总裁蒙迪于5月3日在纽约大学所说的,GPL的``病毒''特性为各大公司带来了威胁,威胁着它们赖以生存的软件产品。蒙迪道:
它严重地威胁着独立的商业软件。出售软件不仅仅是要收回发行成本,还有更多的人力附加价值。而GPL则让这种买卖变成天方夜谭5
在过去的十年中,无论是GNU/Linux还是Windows,都有了长足的进步,赢得了各自的成功。两者双赢的局面,似乎使得无论支持或反对GPL都有了足够的理由。但是,作为像斯托曼这样的自由软件活动家来说,成功并不是事情的关键。真正的问题并不是自由软件和专有软件哪个更为成功,而是哪个更道德。不管怎么说,这场自由软件与专有软件的战役在软件工业发展史上是一次重要的事件。哪怕像微软这样强大的企业,也需要第三方软件开发者。恰恰是他们开发的工具、程序、游戏,才使得Windows系统更加吸引用户。回顾近二十年软件业的发展,哪怕不提自家公司的成长,蒙迪依旧提醒他的听众,不要被自由软件运动的风潮吹昏头脑:
二十年的经验表明,保护知识产权的经济社会,配合降低研发成本的商业模式,可以极大地促进经济发展和财富分配5。
这段来自蒙迪的警告,成了斯托曼今日演讲的背景。现在,距离蒙迪演讲后不到一个月,斯托曼就站在演讲礼堂前方,背对着黑板,摩拳擦掌,迫不及待地准备发表他的演说了。
这二十年来,相比软件业翻天覆地的变化,斯托曼的改变则更加明显。当年他曾是那位精瘦、不留胡须的黑客,曾在那台PDP-10前,没日没夜地和它畅谈。而如今,在讲坛上的那位,已人近中年,发福、留发、蓄须。他会花大把时间回复邮件,在公众或程序员面前发表演说、组织演讲——正如今天这次一样。他今天穿着海蓝色的T恤和一条棕色的涤纶裤子,看起来好似刚刚踏出沙漠的隐士。
人群之中,则充斥着和斯托曼有着类似打扮的听众。很多人带着笔记本电脑和蜂窝调制解调器,以及各种录音录像设备,准备把斯托曼的演讲传上互联网,那里还有更多的听众等着他的言论。听众中,男女比例大约15∶1。大约每七八个女听众里,就有一位拿着企鹅的毛绒玩具,这是Linux的吉祥物,还有些女听众则抱着泰迪熊。
图一理查德·M·斯托曼,大约摄于2000年。``我决定要开发一套自由的操作系统,哪怕这要花费我一生的时间。''照片来自http://www.stallman.org。
人潮涌动,斯托曼则离开了演讲台,坐在第一排的听众席上,把一直运行着的笔记本电脑拿出来,开始敲键盘。接下来的十分钟里,进来的学生、教授和粉丝逐渐走到他旁边,围观他工作,而斯托曼对此则完全不在意。
既然在大学演讲,学院派的规矩是少不了的。演讲嘉宾介绍则是重要一环。对斯托曼的介绍可谓阵容强大。纽约大学的两位教授分别为他做两段开场白。第一位,是来自纽约大学斯特恩商学院高新技术研究中心的主任,麦克·乌列茨基(Mike Uretsky)。
``大学之地,争辩之所;争辩之处,兴趣所在。''乌列茨基说,``本次讲座,恰是秉承此道。个人愚见,所谓开源,甚是有趣。''
还没等乌列茨基把话说完,斯托曼就站起来挥着手喊道:
``我是搞自由软件的,开源是另外一码事!''
这一嗓子引来了一阵哄堂大笑。笑声褪去,掌声渐起。当下,听众中绝大多数都对斯托曼的这份咬文嚼字有所耳闻,更知道在1998年,他和开源阵营支持者的那次争论。斯托曼的这一行为,就如同整点新闻一般,早在大家意料之中。
乌列茨基草草结束介绍,走下讲堂。接下来对斯托曼做介绍的,是纽约大学计算机系的教授埃德蒙·舍恩伯格(Edmond Schonberg)。作为一个计算机程序员,又是GNU工程的贡献者,他很清楚该如何用词。他站在当代程序员的角度,扼要回顾了斯托曼的事业。
``放眼全球,脚踏实地,斯托曼是典范。他严肃地审视了软件源代码不对公众公开的事实,发展出了一套严密的逻辑体系。这套体系敦促着我们,让我们不得不重新思考如何开发软件,何谓知识产权,以及软件社区究竟是何物。''6
舍恩伯格的致辞迎来了更多的掌声。斯托曼在掌声中,合上笔记本电脑,挪出身子,走上讲台。
演讲开始,斯托曼的表现更像是个老练的喜剧演员,让人没法察觉这是一场严肃的政论讲座。``我首先要感谢微软公司给了我这样一次机会,来到贵校,畅抒己见,”斯托曼玩笑道,“过去几周里,我都觉得自己像个没落作家,自己的作品都无人问津。''
为了照顾新人,斯托曼用一套类比简要介绍了自由软件。他把软件代码比作烹饪菜谱。二者都提供清晰的步骤,说明如何一步一步完成某个特定任务。同时,人们都可以很容易地按照自己的需求,对它们进行修改。``你不用按照菜谱的每一步严格执行操作,''斯托曼说,``你可以少放点调料。喜欢蘑菇,放些蘑菇;口味淡就少放盐;加点胡椒粉什么的。''
最重要的,斯托曼强调,软件和菜谱都很容易被分享。倘若有位客人来家里吃晚餐,那么把菜谱给他无非是花些时间,费点笔墨。复制软件则要求更少,只要轻点鼠标,费点电。而分享之后,起码有两份收获:增进了友谊;同时,下次需要帮忙的时候,对方也会有所回报。
``想象一下,要是菜谱全被封锁在一个黑匣子里,那会如何?''斯托曼话峰一转,``你不知道他们用了什么调料,只有他们才能更改配方。你如果把菜谱抄出一份,送给朋友,他们就把你叫贼,把你关进牢房,长达数年。如果你早就习惯了把菜谱传来传去,这样的世界一定会让你觉得不可理喻。可这一切恰恰发生在专有软件的世界之中。在这个世界里,很平常的社交行为被严格禁止,或者被想方设法避免。''
类比过后,斯托曼又提起了施乐打印机事件。和烹饪菜谱的类比一样,打印机事件也是一个称手的工具。两者介绍完,听众就可以了解到如今的软件业究竟发生了多大改变。斯托曼的介绍把听众拉回了曾经那个年代,那时还没有亚马逊和它的一键支付;没有微软和它的Windows系统;没有甲骨文数据库。在这样的背景之下,听众有了很大的想象空间,可以不受当下这些所谓的大公司影响,重新审视所谓的软件所有权。
讲起施乐打印机事件,斯托曼轻车熟路。他好似律师在做法庭最后陈词一般,字斟句酌。当说到卡耐基梅隆大学的那位计算机教授拒绝给他源代码的时候,斯托曼道:
``他背叛了我们,''斯托曼稍有停顿,接着说,``但他不止背叛了我们,更有可能背叛你!''
``你''字一出,斯托曼就伸出食指,指向在座听众。听众之中,有人稍有皱眉。而斯托曼的目光,则移到了前排,一位听众正在低头偷笑。``而且我觉得,他更有可能背叛你。''斯托曼指着刚才偷笑的那位听众。
这个临场的包袱,把一个人的窃笑变成了全场大笑。各种行为,好似舞台剧一般。笑声中,他总结道:``要想不被他背叛,你只能盼着晚点投胎。''笑声又起,``因为这位教授承诺,拒绝和地球上大多数人合作。''
斯托曼一字一顿:``他签署了保密协议。''
在这二十年来,理查德⋅马修⋅斯托曼,从当年一个不太得志的学者,成为了一呼百应的运动领袖。这一蜕变本身就饱含寓意。它诉说着斯托曼的顽强与固执,诉说着他的决心和毅力,更清晰地诠释了自由软件运动的价值观和远见。这之中,也当然包含了斯托曼编写的高质量代码,字里行间都凝结了斯托曼的心血,将他的经历铸成了计算机界的传奇。传奇之上,更能看到GPL不可遏制的蓬勃生命力。而作为法律界的一大创新,GPL已经被公认为斯托曼的重要成就。
当下,计算机和相关软件技术已成为整个世界的一大支柱。斯托曼的经历也更彰显了在如此背景之下,政权民意的风云变化。
这一切的一切,也许恰恰能解释,为什么斯托曼发起的运动能如此长久不衰,而很多当年的名牌大厂,却早已风光不再的原因。遥想当年,1984年,斯托曼刚刚发起了GNU工程7。面对这一项目,自由软件运动内外都充斥着对这个工程的无视、嘲讽,甚至攻击。一路走来,虽然GNU工程有过几次跳票延期,但在大多数时候还能按时交付,完成一个又一个发布计划。踏过了十八个寒暑,GNU工程也日渐成熟,在软件市场中赢得一席之地。而这近二十年来,自由软件的理想被斯托曼精心呵护,渐渐传遍大江南北。
要想了解这潮流背后的缘由,就要兼听八方言论。这不仅包括斯托曼自己的评价,更要倾听和他在同一战壕里作战的战友们的叙述。其实,斯托曼的个性并不复杂,倘若坚信``所见即所得'',那么斯托曼这个人就不难被理解。
``想要了解斯托曼这个人,你必须要把各处细节联系起来,看成一个有机的整体''伊本⋅莫格林说道,他是自由软件基金会法律顾问,同时也是哥伦比亚大学法学院教授,``在斯托曼身上有着各种古怪脾气,这也许会把人拒之千里。而这份不同寻常,恰恰就构成了斯托曼这个活生生的人。他对挫败异常敏感,他对道德准则恪守不渝。他不肯妥协的个性,在关键问题上不肯让步的固执,这一切的总和,最终让我们看到了当今的斯托曼。''
一个简单的打印机事件变成了燎原之火,燃遍全球,足以和全球最富有的软件公司抗衡。要想回顾和解释这一切,并非易事。首先要了解软件所有权,以及它是如何走到当今的重要位置的;更要和人类健忘的本性做斗争;还要能从关于斯托曼的各种神话和攻击之中,看出本质。最后,还要能理解斯托曼在软件领域的过人天赋;以及他如何把这份天赋用到其他领域;还有在这一过程中的各种成败得失。
当我请斯托曼做一番自我总结的时候,他也强调了莫格林提到的个性和原则:``坚强固执是我的本性。很多人在尝试做一些事,遇到了困难,就退缩放弃了。可我从不言弃。''
他也同样感激自己的运气。倘若当初没有那次打印机事件,没有其中的各种人事冲突,没有当年的各种机缘巧合,他也许不会放弃麻省理工学院的研究职位,不会重新抉择,选择一条与众不同的道路,并为之奋斗终身。是身边的各种因素,最终让斯托曼得以做出不同凡响的成绩。
``我正好有合适的技能,''斯托曼回顾着当初发起GNU工程的决定,总结道,除了我以外,没人在做这事。我就觉得责任在身,我若不做,舍我其谁。''
脚注:
事实上,GPL的没有这么夸张的``威力''。把程序与另一个GPL许可证的程序放在同一台计算机上运行并不会把程序也变成自由软件。斯托曼说:"把一个东西说成是病毒是一种很粗暴的类比,也许把GPL比成是吊兰还稍微贴切一些,如果你把它切下来放到别处,它会继续生长。"要了解GNU通用公共许可证的更多信息,请访问:http://www.gnu.org/copyleft/gpl.html 。
仅管这些软件都在GNU/Linux上运行,但它们本身不一定是自由软件,相反的,他们中的大部分都是私有软件。跟Windows一样,这些私有软件同样不尊重你的自由。虽然它们对于GNU/Linux的成功起到了一定的推动作用,但它们对于自由软件运动中实现自由的目标并没有什么贡献。
参考Shubha Ghosh于2000年1月在Gigalaw.com上发表的文章Revealing the Microsoft Windows Source Code。http://www.gigalaw.com/articles/ghosh-2000-01-p1.html
其实杀手级应用并不一定需要是专有化的。比如说,传奇的Mosaic浏览器,它的许可证就允许在一定的限制条件下对该程序进行非商业化的修改。 读者应该这样来理解:软件市场就像买彩票一样,预期的收益越高,越多的人愿意参与其中。有关杀手级应用的现象,Philip Ben-David 2007年12月7日发表的文章《What Happened to the``Killer App''?》对此有清晰的阐述。http://www.ecommercetimes.com/story/5893.html
参考微软资深副总裁克雷格·蒙迪的The Commercial Software Model一文,节选于他2001年5月3日在纽约大学斯特恩商学院所做的演讲。http://www.microsoft.com/presspass/exec/craig/05-03sharedsource.asp。
如果他今天再来发表这样的演讲,斯托曼一定会指出``知识产权''这个词所存在的认识上的偏差和可能造成的混淆。请参考:http://www.gnu.org/philosophy/not-ipr.html
GNU是``GNU's not Unix''的缩写。斯托曼在2001年5月29日纽约大学的演讲中,讲述了这个缩写的起源:
作为黑客,我们总是想给程序起一些有趣或古怪的名字,因为给程序起名字也是编写程序的乐趣中的一部分。我们也有一种使用递归缩写的传统喜好,用这样的方式表明我们所新写的程序与某个现有的程序具有一定的相似性……在为GNU工程起名字时,我试图寻找一个递归缩写来表达``Something Is Not UNIX''含义,我用26个字母去取代``Something'',但得到的结果都差强人意,看起来并不像是一个单词。于是,我决定把Is这个单词采用缩写的形式,这样我就可以得到一个三个字母缩写词,也就是说是``Something's Not UNIX''。我尝试了各个字母,最终决定选用``GNU''这个词。
GNU作为一个双关词,斯托曼建议软件用户在发音时,对第一个字母``g''进行发音(也就是说,把它读作``gah-new'')。一方面是为了避免与表示白尾角马这种非州羚羊的单词``gnu''发生混淆,另一方面也是避免与``新(new)''这个形容词发生混淆。``我们已经为GNU工程奋斗了17年,因此它也一点也不`新'了。''
来源:作者的笔记,以及斯托曼2001年5月29日在纽约大学演讲的在线讲稿``Free Software: Freedom and Cooperation''。http://www.gnu.org/events/rms-nyu-2001-transcript.txt