若为自由故——自由软件之父理查德·斯托曼传

978-7-115-36951-2
作者: 【美】Sam Williams
译者: 邓楠李凡希
编辑: 陈冀康
分类: IT人文

图书目录:

详情

本书堪称是自由软件之父、GNU创始人Richard Stallman的自传。记录了Richard Stallman从MIT的技术人员起步,到成为自由软件的倡导者、发起自由软件运动的整个历程和故事。对于IT从业者思考当下的问题和未来的趋势极具启发意义。

图书摘要

若为自由故——自由软件之父理查德·斯托曼传
[美] Sam Williams 著

邓楠 李凡希 译

人民邮电出版社

北京

图书在版编目(CIP)数据

若为自由故:自由软件之父理查德·斯托曼传/(美)威廉姆斯(Willams,S.)著;邓楠,李凡希译.--北京:人民邮电出版社,2015.4

ISBN 978-7-115-36951-2

Ⅰ.①若… Ⅱ.①威…②邓…③李… Ⅲ.①斯托曼,R.M.—传记②软件开发 Ⅳ.①K837.126.1②TP311.52

中国版本图书馆CIP数据核字(2015)第002143号

版权声明

Simplified Chinese Edition, jointly published by O'Reilly Media, Inc. and Posts & Telecom Press, 2015. Authorized translation of the English edition, 2002 O'Reilly Media, Inc., the owner of all rights to publish and sell the same.

Copyright© 2002 by O'Reilly Media, Inc.

All rights reserved.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License."

本书中文简体版由 O'Reilly Media, Inc.授权人民邮电出版社出版。

版权所有,侵权必究。

◆著 [美]Sam Williams

译 邓楠 李凡希

责任编辑 陈冀康

责任印制 张佳莹 焦志炜

◆人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

固安县铭成印刷有限公司印刷

◆开本:720×960 1/16

印张:16.25

字数:231千字  2015年4月第1版

印数:1-3000册  2015年4月北京第1次印刷

著作权合同登记号 图字:01-2013-3998号

定价:49.00元

读者服务热线:(010)81055410 印装质量热线:(010)81055316

反盗版热线:(010)81055315

内容提要

理查德·斯托曼是自由软件之父,他是自由软件运动的精神领袖、GNU 计划以及自由软件基金会的创立者。

本书用叙事体的风格,讲述了理查德·斯托曼的成长经历和传奇人生。全书共14章,记录了斯托曼从一名黑客成为自由软件的倡导者,并发起自由软件运动的成长经历。作者通过接触斯托曼本人、他的家庭、追随他的程序高手以及IT产业界,以全新的视角和丰富的笔触,塑造了这位软件产业界的“罗宾汉”的形象由此也帮助读者了解他所倡导的自由软件运动的缘起、理念和发展历史。

本书是了解黑客文化、自由软件运动以及斯托曼的一本轻松读物,适合任何IT行业相关人士、程序员以及Linux和UNIX爱好者阅读。

译者序一 若为自由故

“自由”这个词,有人崇尚,有人厌恶,还有人打心眼里对它咬牙切齿。而还有那么一小撮人,绞尽脑汁地要诉说着什么是自由,该如何保卫自由。而理查德·斯托曼(Richard Stallman)是这样一个另类:他定义了“软件用户的自由”,并且身体力行地为自己的自由理念宣传,在计算机技术领域掀起了一场“自由”运动。

瞎折腾——恐怕不少人会如此评价斯托曼。

如今,计算机与网络的普及改变了人们的生活方式。然而,技术的便利却没能带来意想中的地球村。用户面前不是一个信息流畅的互联网络,而是军阀割据的战乱天地。在利益与专制面前,自由再一次沦陷。费劲周折,人们重拾起自由这面大旗。此时才发现,斯托曼早已在这个战场上为大家奋战多年。

在我看来,理查德·斯托曼注定会成为一位俄狄浦斯式的悲剧英雄。他固执,有原则,拒绝妥协。而这也就注定了他难以如愿。他追求着一份乌托邦式的理想,也恰恰是这个理想本身铸就了他的几分睿智、几分悲凉。作为自由软件运动的发起人,他大可从容地把同根通源的“开源运动”视作晚辈后生,在当今众多公司投身开源的热潮里,摘取本该属于他的果实。然而,他却认为开源运动强调的是软件开发模式,忽略了软件用户的自由。尽管绝大部分开源软件许可证也是自由软件许可证,尽管没几个人真的在乎“自由软件”和“开源软件”究竟有什么区别,他还是拒绝与开源运动有任何瓜葛。人们诉说着自由软件的成果,分享着 GNU/Linux、Apache 基金会的成功故事,斯托曼则在旁边不断泼冷水:自由软件运动远没有结束,我们离目标依旧很远。

正如科学永远要与误解相伴一样,自由也总有被私利与强权侵蚀的可能。追求自由如同追求真理,永无止境。

这本斯托曼的传记为人们描绘了一位计算机界的奇才。然而,与那些硅谷创业故事不同,这里没有一夜暴富的上市传奇,没有商场战场的尔虞我诈,更不会看到主人公的圆满谢幕。如今的理查德·斯托曼,依旧参与着自由软件的开发,依旧在世界各地演讲,宣传他的自由软件运动;也依旧会遭受人们的误解与不屑,被视作异类。斯托曼的执着与固执令他难见成功,也成就了他的传奇。

本书写成于 21 世纪初期,书中描写的一些环境当下早已不再:如今,自由/开源社区蓬勃发展,甚至硅谷的各大公司也纷纷抛来橄榄枝。自由软件与开源软件早已不是商业公司的敌人,反而是众多企业的得力助手,甚至是利润来源。哪怕是曾经自由软件运动的宿敌——微软公司,也投身到自由/开源软件的开发中,甚至公开了自家公司产品的代码。这一切的发展,都始于斯托曼当年的一份宣言。而其中原委,只有读过之后才能品味。

本书原题为 Free as in Freedom。本意是强调 Free 一词中的“自由”意项。对应的中文翻译则让我们犯了难。为此,我们曾在 GNU官方网站的中文翻译组征求意见,最终选定了半句匈牙利诗人裴多菲·山多尔的“若为自由顾”来作为本书的标题。裴多菲曾领导了1848年爆发的匈牙利革命,并为此献出了自己 26 岁的生命。尽管斯托曼不一定会赞同裴多菲的政治理念,但那份为了争取自由而拼进全力的执着,却是两位领袖的共通之处。

非常荣幸能与凡希合译本书。他翻译了第 9章以后的内容,并完成了绝大部分的校对工作。是他的热情,让我这个习惯拖延的人追上进度。感谢人民邮电出版社陈冀康编辑的帮助,是他的耐心才让这本书最终得以出版。也感谢哲思自由软件社区,特别是徐继哲先生对本书的支持。

与很多翻译作品一样,本书也难免存在疏漏。但作为一本“自由”图书,读者可以参与改进,我们也会根据读者的建议更新本书的电子版。

邓楠

2014年5月于山景城

译者序二 自由自在

1999年,我第一次尝试安装 GNU/Linux,这也应该是我第一次接触“自由软件”。这次尝试的结果就是让我损失了硬盘上积累的自从 1994年第一次接触电脑以来所有的资料。虽然遭遇了这样的不幸,却仍然磨灭不了我的好奇心。1999年到 2006年期间,我屡战屡败地安装过各种各样的GNU/Linux发行版,但最终还是选择了GNU/Linux作为我日常使用的操作系统。

2004年,我第一次接触 Emacs 编辑器。Emacs 实在是个难以上手的家伙,好不容易通过 Emacs内置的教程学到一点皮毛后,我就决定尝试把这份教程翻译成中文,造福后人。我向 Emacs的邮件列表发了一封热情洋溢的邮件,咨询是否可以由我来完成翻译工作。很快收到了两封回信,说 CVS 中已经有人完成了教程的中文翻译,会随着下一个版本的 Emacs发布,并欢迎我对现有的译文进行审阅。

在继续学习 Emacs的过程中,我终于认识了 GNU工程,也才真正明白了什么是“自由软件”。后来我加入了 GNU官方网站的中文翻译小组,在翻译 GNU网站的各种页面和文章的过程中,对自由软件、GPL以及自由软件运动发起人理查德·斯托曼有了进一步的认识。

2008年5月24日,我参加了在上海复旦大学举行的“哲思自由软件峰会”,第一次与斯托曼有了面对面的交流。除了他所使用的OLPC XO-1 笔记本电脑让我垂涎欲滴外,他在现场所表现出来的强烈个性更是给我留下了深刻的印象。会后,我请他在某本图书上签名的请求被他毫不留情地拒绝了,“这不是一本自由图书,我不能在上面签名。”斯托曼的解释非常干脆。

2011年的某一天,我在无意中发现,七年前回复我有关 Emacs教程翻译问题的人之一就是斯托曼本人。我与斯托曼的这两次直接交流,得到了截然不同的反馈:对于向自由软件社区贡献自己力量的行为,斯托曼会给予热情的支持和鼓励;对于非自由的软件和图书作品,斯托曼的抵触毫不留情。

在 GNU 官方网站的中文翻译小组中,我和邓楠一度是比较活跃的两位成员。作为翻译小组的协调员,邓楠需要负责所有翻译成果的发布工作。我们的合作非常愉快,在 2010年左右完成了 GNU网站大部分二级页面的翻译工作。

所以,当邓楠邀请我跟他一起完成本书的翻译工作时,我马上就答应了。虽然这只是一本薄薄的小册子,但是对于我这样习惯于技术言语的人来说,要把这么多词句组织得不是那么干涩,还是有着不小的挑战。中间的曲折故事暂且不表,经过近一年的努力,我们终于还是完成了这本书的翻译工作。

交稿前夕,正好斯托曼要来中国进行几场巡回演讲,我有幸在杭州与他进行了一次更深层次的交流。谈到本书的出版工作,斯托曼本人表现出了极大的兴趣,甚至希望我们能立刻把这本书印出来在他接下来的巡回演讲中进行分发。同时,他也迫切地希望我们能够继续翻译出版他自己修订过的本书第二版的中文版。

由于本书英文版出版时间较早,书中所引用的很多网址如今都已经失效。不过在翻译过程中我们还是保留了很多失效的网址,因为即使对应的网页现在已经无法正常访问,但从网址本身也许仍可以窥探出一些有用的信息。

感谢人民邮电出版社陈冀康编辑在本书出版过程给予的帮助,正如本书作者在跋中所写的那样,在传统出版领域出版这样一本“自由”图书还是面临着不少的挑战。陈冀康编辑的耐心和执着,最终促成了本书。感谢好友贾征主动帮忙审阅了全书的内容,也感谢家人对我翻译工作的支持。

尤其值得一提的是,这本书使用的是 GFDL许可证,也就是说,这是市面上极为少有的一本“自由”图书。在 GFDL条款的保护下,读者可以自由地复制、分发和修改本书。我们已经把全书的 LaTeX源文件公开发布到网上,希望通过我们的努力,抛砖引玉,让更多的人可以参与到了解、完善和传播本书内容的活动中。请访问http://www.freemindworld.com/faif获取本书的电子版本,并欢迎读者参与到本书第二版的翻译工作中来。通过读者与社区的共同努力,希望能在第一版的基础上进一步精雕细琢,完成一部至瑧完美的作品。今后如果你有机会见到斯托曼本人,不妨带上本书,他一定会非常乐意在这本记录他人生故事的“自由图书”上签名的。

李凡希

2014年5月于杭州

前言

理查德·M·斯托曼(Richard M. Stallman)的作品本身就为他自己代言。从源代码中的文档到公开发表的论文和演讲,很少人能像斯托曼那样把自己的想法和作品毫无保留地公开给大众。

这样的“公开”让人耳目一新——请原谅我用一个与斯托曼特质格格不入的词来形容他的话。不论如何,我们仍然生活在一种把信息尤其是个人信息当成是一种无价的物品的社会中。人们不禁要问,为什么有人会愿意公开如此多的信息,却并不求什么回报?

我们会在后续的章节中看到,斯托曼并不是完全无私地公开他的言论和作品。他发表的每一个程序、演讲或有记录的格言都有标价,即使不是一般人所熟悉的那种需要用货币来支付的价格。

把丑话说在前面不是作为一种警告,而是一种坦诚。作为一个花费了去年一年时间发掘有关斯托曼个人历史的人,对他的作品做出这样的评价必须得拿出一些勇气。马克·吐温(Mark Twain)有一句格言:不要为了不实报道跟媒体人争吵。如果用在斯托曼身上,就是永远不要给一个把自己一切想法都公诸于众的人写权威传记。

对于那些愿意花几个小时来阅读本书的读者,我会很有信心地说,本书中有些史实和引文是你们在 Slashdot 或 Google 搜索中无法找到的。当然,你需要为获得这些信息支付一定的费用。对于纸质书的读者,你的购买行为就已经支付了这些费用。对于电子书的版本,你可以用支持自由软件相似的方式来“付费”。感谢 O'Reilly & Associates公司的同仁,得以让本书以 GNU自由文档许可证(GFDL)的形式发行,这意味着你可以修改本书,或者发布一个你自己改编过的版本,并以相同的许可证来发布。

如果你正在阅读的是电子版,并愿意以支持自由软件的形式对本书做出贡献,也就是说,如果你愿意对本书进行改进或把它推荐给更多的读者,我会非常感激。从 2002年6月开始,我会在在线商店中发布一个本书的纯 HTML 的版本——http://www.faifzilla.org。我的目标是定期对它进行更新,并随着时间的流逝把 Free as in Freedom 的故事继续延续下去。如果你选择后一种形式,请阅读本书的附录 C,这是一份完整的 GNU自由文档许可证,里面描述了你所享有的权利。

对于只是想坐下来安安静静阅读本书的人,即使你选择的是在线电子版本而不是纸质书,我仍把你们对本书的关注看成与付费购买纸质书一样是对本书的支持。对此,你无须感到惊讶,因为你是采用了一种不同的方式来表达了你对本书的美好祝愿。

最后,我想说明,这只是一本人物传记,但它也是一本技术文档。在撰写和编辑本书的过程中,我和编辑权衡了很多这个故事中的关联人物所提供建议和素材,包括理查德·斯托曼本人。我们意识到在这个故事中有很多的技术细节,需要由更多素材的支撑才能表达得更为清晰。由于本书以 GFDL发布,因此我们也欢迎读者向给自由软件打补丁那样为本书打补丁。所有被我们接受的改动都会整合到本书的电子版中并最终可能会整合到本书以后的印刷版本中。如果你愿意为本书提供改进意见,请发邮件到 sam@inow.com。

建议与问题

请把你的建议和问题寄送给本书的出版商:

美国:

O'Reilly Media,Inc.

1005 Gravenstein Highway North

Sebastopol,CA 95472

中国:

北京市西城区西直门南大街 2号成铭大厦 C座 807室(100035)

奥莱利技术咨询(北京)有限公司

我们为本书提供了一个网站,上面有本书的勘误表、示例和其他相关的资料。这个页面上还提供了与作者和其他读者进行交流的网站链接。你可以通过下面的网址来访问这个网站:

http://www.oreilly.com/catalog/freedom/

如果有任何的建议或技术问题需要咨询,请发电子邮件到:

bookquestions@oreilly.com

有关 O'Reilly 相关的图书、会议、资源及 O'Reilly Network 的相关信息,请访问 O'Reilly的网站:

http://www.oreilly.com

致谢

由衷感谢 Henning Gutmann 对本书的关注,由衷感谢 Aaron Oas 在创作初期给 Tracy 的建议。感谢 Laurie Petrycki、Jeffrey Holcomb 和其他 O'Reilly & Associates 的同仁。感谢 Tim O'Reilly 对本书的支持。感谢所有参与审阅本书初稿的朋友:Bruce Perens、Eric Raymond、Eric Allman、Jon Orwant、Julie 和 Gerald Jay Sussman、Hal Abelson和 Guy Steele。希望你们能喜欢这本没有错别字的书。感谢 Alice Lippman提供访谈内容、花絮和照片。感谢我的家庭成员 Steve、Jane、Tish 和 Dave。最后,感谢理查德·斯托曼的勇气和忍耐力,让我们去了解有关他的一切。

——Sam Williams

第1章 从一台打印机说起

我畏惧希腊人,哪怕他们带着礼物来。

——维吉尔,《埃涅阿斯纪》

这可是台全新的打印机!怎么又卡纸了?

理查德·M·斯托曼(Richard M. Stallman)刚刚发现了这问题,这可苦了他了。他当年27 岁,是麻省理工学院人工智能实验室的一名程序员。一个小时前,他给那台激光打印机提交了一个 50 页的打印任务,之后就忙着干活去了。现在他正站在那台打印机前面,眼巴巴地看着它被纸卡住:总共才打印了的四页纸,还没有一页是自己的。换句话说,斯托曼那份 50 页的文件,外加别人的半份文档,全被一张纸卡住了,成了实验室网络上的两个孤魂野鬼。

干程序员这行也是有风险的:你总得等着机器干活。不过斯托曼还是能苦中作乐。可再怎么说,等着机器干活,和在它跟前盯着它干活毕竟是两码事。就说现在吧,斯托曼正盯着打印机,看它一页一页慢吞吞地往外吐纸。这情景对他来说可不陌生。斯托曼好歹也是个程序员,成天都在改进机器和程序,提高它们的效率。当下,他恨不得掀开这台打印机,仔细查查究竟是哪里出的毛病。

可惜,凭编程的能耐,没法解决机械工程的问题。斯托曼只能在重新打印文件的这些时间想点别的:能不能用别的办法,绕道解决这个卡纸的问题?

这台打印机来人工智能实验室有多久了?斯托曼努力回忆着。这机器是施乐公司(Xerox Corporation)捐赠的。它可是新一代产品的原型,是从上一代的复印机改进而来。和上一代比,它不再是简单地复印文件,而是从网络上接收数据,打印成专业品质的文档。它诞生于著名的施乐帕罗奥多研究中心(Xerox Palo Alto Research Facility)。再过大约十年,将会发生一场打印机革命,那时,许多计算机厂商都会投身其中。而这款打印机则是这场革命的先行者。

人工智能实验室的程序员们,本能般地喜欢折腾这些新酷产品。当初他们麻利地把这打印机请回来,把它和实验室中的各种复杂的计算设备连在了一起,结果甚是喜人。比起以前的打印机,这台新打印机打印速度飞快。平均大约一秒打印一页纸。以前要花二十多分钟打印的东西,如今两分钟就解决了。新机器的打印精度也更高了。让它给画个圆,它绝不会打出个鸡蛋;让它画条直线,它也绝不会拐着弯瞎划拉。

怎么看,这打印机都是份难以拒绝的礼物。

可没过几周,这机器的缺点就逐渐显现了。其中最要命的,就是卡纸问题。凭着工程师的直觉,程序员们很快就洞察出了这问题背后的诱因。这台打印机是在复印机的基础上设计的。倘若是一台复印机,它旁边总会站个人直接操作它。遇到卡纸问题,这个人总能立即发现,着手解决,不至于有什么大影响。用工程师的行话讲,这系统需要用户参与。所以,对于复印机来说,卡纸问题也就没人关注了。设计复印机的时候,施乐公司的工程师们都没把卡纸的事情放在心上,专心去对付其他问题了。可把类似的机械部件用在打印机上,问题就来了。

施乐公司在复印机的基础之上,设计了这个打印机。这个小小的变化,却使得人机关系发生了微妙而深刻的改变。现在,在同一时刻,这机器不再只服务一个用户。它要同时给整个网络的用户提供打印服务。这些用户也不再老老实实地站在机器前面,而是坐在网络的另一端,隔着老远,向这台机器发布打印命令,指望它能按要求完成任务。等这些用户回过神,想起去取打印的文件时才会发现,大半的内容都被一页纸卡住出不来了。

在这台打印机之前,斯托曼也遇到过卡纸问题,他也是实验室里第一个提出解决方案的人。几年前,实验室还用着一台旧打印机,也有类似的问题。这台打印机的控制程序,运行在实验室里的一台PDP-11 计算机上。那会儿,斯托曼修改了这个控制程序,解决了这个问题。当然,他没法直接修理打印机来解决卡纸的问题。不过他能修改控制程序,让它定期检查打印机是否工作正常,再把检查结果传给实验室的核心计算机——一台 PDP-10。生怕哪个粗心用户忘了去查看打印机,斯托曼还让控制程序在卡纸的时候,向所有等待打印任务的用户发送一条提醒消息。消息简短明确:“打印机被卡住了,请去维修。”收到这消息的人都是等着要用打印机的,所以问题就迎“人”而解。

斯托曼这解决方案虽然治标不治本,但也算讨巧。它没解决打印机机械部件的问题,却提出了一个次优方案:完善人机交互,及早报告问题。多亏了斯托曼加的几行代码,人工智能实验室的员工,不用再跑来跑去地查看打印机状态了。这样,每周起码节省了 10~15 分钟时间。用编程的术语讲,斯托曼的方案提高了网络的整体智能。

“你要是收到这条消息,你可就坐不住了。你多半等不及别人去解决卡纸问题,”斯托曼回忆着其中的逻辑,“你得亲力亲为,跑到打印机跟前。一两分钟之后,要是问题还没解决,就会聚来两三个人。这其中,总会有个人知道怎么修理。”

类似的巧法子是人工智能实验室的一大特色。尤其在其中的资深程序员之间,屡见不鲜。实际上,那些顶尖程序员不屑于用“程序员”这词。他们更喜欢用圈子里的行话,自称“黑客”。这词儿涵盖了不少内容:从抖机灵、甩包袱,到改进现有软件,优化计算机系统。而更深之处,则蕴含着旧时美国移民的智慧。对于黑客来说,有这样一条铁律:从头开发一个软件只是小儿科;改进一个程序才显真本事 [1]

这条铁律,恰恰影响着施乐这样的公司,让它们乐意把自己的产品,以及配套的软件捐赠到黑客聚集的地方。要是这些黑客们改进了其中的软件,这些公司就可以把这些修改拿过来,化为己用,投入市场。用商业术语讲,这叫优势社会资产。公司花小钱,就能有个附属研发部门。

凭着这份礼尚往来的精神,斯托曼在这台新打印机面前并不慌张。他只要找个法子,把以前那套修改方案拿过来,修理修理这机器,或者用圈子里的话说,“黑”它一下,就万事大吉了。可是,他刚找了找这台施乐激光打印机的软件,就碰了一鼻子灰。这打印机根本不提供软件,至少没提供任何给人读的程序代码。要知道,那个时代,大多数公司都会发布软件的源代码(一系列可供人阅读的文本文件,用于详细定义程序的行为)。可当下,施乐公司提供的程序,却只有编译好的可执行文件。程序员倒是可以打开这些文件,可打开之后看见的,全是 0和 1。除非他们有闲功夫,乐意去翻译这些二进制信息,否则这些东西看起来只是一堆胡言乱语。

尽管斯托曼可谓是精通计算机,但还是没那份闲心和时间去解释这些二进制文件。不过作为一名黑客,他总是有法子。他知道,黑客这个圈子里,分享信息是至关重要的。过不了多久,就会有个黑客,从大学实验室或者哪个公司的机房里,拿出这激光打印机控制软件的源代码,分享给圈子里的同胞。

经历了几次卡纸事件之后,斯托曼还耐着性子安慰自己。不管怎么说,当初也遇到过类似情况的。几年前,实验室需要一个网络程序,让那台 PDP-11 和 PDP-10 之间协调工作。实验室里这群黑客自然能胜任这项任务。不过,作为一名哈佛毕业的校友,斯托曼记起了当初在哈佛计算机系,有个黑客也写过类似的程序。就运行在哈佛的一台PDP-10上。那台 PDP-10,和当下人工智能实验室这台一样,只是运行了不同的操作系统。哈佛的机房里有规定,要求所有安装在 PDP-10上的程序,都必须发布源代码。

作为校友,斯托曼还可以进哈佛的机房。他就大模大样地走进去,复制出源代码,带回了麻省理工的人工智能实验室。紧接着,他改写了程序,让它能在人工实验室的机器上运行。不费吹灰之力,人工智能实验室的软件设施又进步了一截。斯托曼甚至还在哈佛的软件基础上,增加了点新功能。“后来这个程序我们用了好几年。”斯托曼回忆道。

对于 20世纪 70年代的程序员来说,把软件复制来复制去,就好比从邻居家借碗酱油那样稀松平常。所不同的是,你从邻居那拿了多少酱油,邻居就少了多少。而从别人那里复制一个程序出来,并不影响别人继续使用那个程序。要说有影响,也是正面的。因为斯托曼对这程序还加了些功能,别的黑客可以自由地复制斯托曼改进的程序。这也算礼尚往来了。在哈佛那边,后来确实有个从 Bolt, Beranek & Newman这家公司来的程序员,复制走了斯托曼的程序。之后还又加了点功能,斯托曼则又把改进后的程序复制了回来,用回到人工智能实验室里。

“开发一个程序就好比开发一座城市,”斯托曼回忆着人工智能实验室的软件设施,“有些部分会被换掉,有些得重建翻修。新的东西会逐步加进来。可如果你仔细看某个部分,也许会感慨这块从风格看应该是 20世纪 60年代早期的;之后的部分估计是 70年代中期完成的。”

圈子里的这种氛围简单朴实,它让知识逐渐积累。这种积累为以后的发明和创造提供了稳固的基石。人工智能实验室以及世界各地的黑客们,都得益于这个氛围。比如在美国的西海岸,一群加州大学伯克利分校的计算机科学家们和 AT&T的工程师合作,遵循着如此积累知识的理念,创造了一整套操作系统。他们把这操作系统叫作 UNIX。UNIX 这个名字来源于另一个操作系统的名字——Multics,一个早期的学术研究项目。倘若是当初的程序员,只要愿意支付成本价和运输费,就可以买到一份 UNIX系统的副本。整套系统会被复制到一个全新的磁带上,完整地寄到购买者手里,谁都能买,童叟无欺。参与到这个文化小圈子的程序员,不一定都把自己称为黑客。不过,绝大多数人都有着斯托曼那般的情结:要是一个程序或者一个补丁可以解决自己的问题,没准也能帮到别人。独乐乐不如众乐乐,何不分享给大家,起码也算积德行善了。

一开始,施乐公司不分享源代码的行为倒也没惹到谁。斯托曼在找源代码的过程中,甚至都没想过去联系施乐公司:“人家都送咱打印机了,何必还非得兴师动众地管他们要代码呢?”

可是眼巴巴地等着源代码,如今还没找到,倒是让斯托曼起了疑心,勾起了他几年前一段不快的回忆。当初,一位在卡耐基梅隆大学的计算机博士,名叫布莱恩·瑞德(Brian Reid)。他开发了一个很不错的文本排版软件,名叫 Scribe。这软件可以让用户通过网络传递文档并且还支持自定义的字体,这在当时可是首例。之后这种功能的普及则带来了 HTML——如今 WWW 网络上的通用语言。1979年,布莱恩决定把 Scribe出售给一家在匹兹堡的公司,名叫 Unilogic。他当时刚好博士毕业,正打算把开发 Scribe的任务转手给别人,免得它流落到公有领域里。为了让这份订单更吸引人,布莱恩在 Scribe中动了点小手脚:他在里面放了个“定时炸弹”,让用户有 90天的免费试用期。90天一过,如果用户不交费,则不能再使用这个软件。

对于布莱恩来说,这个买卖是个双赢策略。一方面,正如布莱恩所期望的那样,Scribe的代码的确没有流落到公有领域;另一方面, Unilogic也有了一个向用户收费的途径。可这对斯托曼来说,这份交易完全是背叛了程序员的良心。布莱恩非但没遵循分享再传播的精神,而且竟然还助纣为虐,帮助公司去强制限制用户自由。

一周过去了,依然没有施乐激光打印机源代码的一丁点消息。斯托曼觉得这好像又是一笔索财要钱的勾当。不过还没等他给这事定性,好消息就来了:一个在卡耐基梅隆大学,计算机系的教授刚刚从施乐公司离开。这位教授还在激光打印机部分工作,而且从收到的八卦消息看,他在卡耐基梅隆大学还在继续激光打印机方面的研究。

于是,斯托曼这才抛开之前的胡思乱想,打算下次去卡耐基梅隆大学的时候,去会见这位教授。

也没多久,他就得到了一次访问卡耐基梅隆大学的机会。和斯托曼所在的麻省理工学院一样,它们那里也有一个人工智能实验室。这才几个月不到,斯托曼就因为工作原因需要去卡耐基梅隆大学出差访问。访问中,他在计算机系请人帮忙找到了那位曾在施乐公司领导激光打印机项目的教授。他正好就在办公室。

工程师之间的讨论总是开门见山的。几句简单寒暄过后,斯托曼就直入主题,说明自己是为了激光打印机的控制程序代码而来,以便可以修改后用到麻省理工学院的 PDP-11 计算机上。可令斯托曼吃惊的是,这位教授竟然拒绝了他的要求。

“他跟我说他答应了公司不能泄露代码。”斯托曼说。

记忆总是这么有趣。二十年过去了,斯托曼关于这段经历的回忆大部分都是空白的。他都不记得当初为了什么事去的卡耐基梅隆大学,连具体哪年去的都给忘了。他也不记得那位教授是谁。根据 Scribe的作者瑞德的回忆,惹到斯托曼的那位很可能是罗伯特·斯布鲁(Robert Sproull)。他曾是施乐公司 PARC 研究所的研究员,如今在Sun 研究所任部门主管。20 世纪 70年代,斯布鲁在施乐公司 PARC研究所负责激光打印机程序的主要开发。他在 80年代拿到了卡耐基梅隆大学的教职,并在那里继续他的激光打印机相关的工作。

“斯托曼想要的代码包含的可都是前沿技术,那可是斯布鲁去卡耐基梅隆之前,花了几年的时间研发的成果,”瑞德回忆道,“我想斯托曼拜访斯布鲁那会,他刚刚到卡耐基梅隆大学还不到一个月。”

可是,直接给斯布鲁发邮件,询问当初的事情,他却不记得这事了:“实在是无可奉告。”斯布鲁在邮件中写道:“我确实不记得有这么一件事。”

当事双方谁也不记得事情的细节,甚至都无法确定是否真的发生过。至于斯托曼说的,斯布鲁硬生生地拒绝了他的这件事,也就无从考证了。在之后的各种演讲中,斯托曼一再提及这件事。强调斯布鲁由于签署了保密协议,从而不能泄露源代码。如今在各个 IT 公司,签署保密协议已经非常普遍。不过在当时,为软件代码签署保密协议还算先例。这也间接地反映出施乐公司对激光打印机项目的重视程度。“施乐公司打算把激光打印机做成商业产品”,瑞德说,“他们除非疯了,才会把代码泄露出去。”

但在斯托曼看来,这种保密协议完全是另外一回事。那时大家都把软件认为是一种共有的资源,卡耐基梅隆大学一些研究员的做法,就意味着否定这个公理。这对斯托曼来说,就好比是一个农夫眼看着用来灌溉庄稼的河流干枯了,循着河道往上巡查,竟然看到一道大坝从天而降,拦住河水。大坝上赫然印着几个大字:施乐公司。

施乐公司用各种花言巧语,把一位程序员同胞带入了这片新天地,与世隔绝。不过一开始,斯托曼也没把重点集中在施乐公司那边,而是怪罪到了个人性格上。作为一个标准技术宅男,斯托曼和人沟通起来难免有点障碍。他这次亲自跑去拜访一位程序员同行,已经是一种充满诚意的行为了。而到头来却被当头一棒。让他实在觉得对方有点鲁莽。“我当时非常生气,都不知道怎么表达。我二话没说,扭头就走了,”斯托曼说,“没准我还使劲摔了门,谁知道呢。我能记得的,就是当时想赶快离开。”

二十多年过去了,斯托曼当初的怨气还在。他甚至把这个事件描述为人生转折点。然而,那之后几个月中,在人工智能实验室以及斯托曼身上发生的各种事,却比这次打印机事件还令人难以接受。斯托曼,本是一名孤独的黑客,本能地对绝对权威存有戒心。在经历了这一系列事件后,他变成了一位斗士,把传统的自由、平等、博爱的精神引入软件开发领域。而这次的打印机事件,在其一生的无数事件中则最值得一书。

“它让我思考了一些脑海中由来已久的问题,”斯托曼说,“我以前有过一些初步的想法,认为软件本该共享。可当时还不知道怎么表述。那时的想法还没有清晰到可以用简单几句话给别人介绍。”

尽管之前也有过类似的不快经历,可这次的打印机事件彻底让斯托曼意识到,这一系列的事件,正悄悄地侵蚀自己所珍视的文化——那个神圣不可侵犯的小圈子。作为一名世界顶级研究机构的顶级程序员,斯托曼之前一直都无视那些程序员同行所作的各种妥协让步,因为他们还不至于影响到斯托曼的工作。而如今施乐激光打印机的到来,让斯托曼开始注意到其他计算机用户一直忍受的程序和机器。这些程序很少能影响到人工智能实验室,斯托曼和实验室的成员之前一直都可以自由地重写软件,添加功能。直到有一天,人工智能实验室把一台计算机的操作系统从不相容分时系统(Incompatible Time Sharing Operating System)换成了商业的 TOPS 20 系统,这些就再也不能做了。

如今,这台激光打印机已经强势入驻到人工智能实验室了,而外面的世界也悄悄发生了变化。除了偶尔卡纸以外,打印机工作还算正常。可是按照个人喜好修改软件则不可能了。从软件业的角度看,这台打印机的出现是个信号,预示着软件是公司的重要财产。谁也不会再想发布软件源代码,因为这可能会给潜在竞争对手机会,让他们可以轻松山寨自己的产品。而在斯托曼看来,这台打印机简直就是个卧底。十来年的尝试,私有软件总算在人工智能实验室中站得一角。私有软件,也就是如今所说的专有软件,这次被打扮成礼物,潜入得悄无声息。

施乐公司后来还发出邀请,让一些程序员再使用它们的礼品。斯托曼说,要是再早几年,他没准也无法拒绝这种免费午餐。是那次打印机事件,让斯托曼建立起了道德防线。它不仅给了斯托曼足够的怒火去对以后的各种礼品心存戒备,更让斯托曼开始思考一个让他自己也坐立不安的问题:要是以后哪个黑客同行进到自己的办公室,向他索要代码,他究竟会不会拒绝复制代码呢?

“这是我第一次碰上这种保密协议,它很快让我明白,保密协议面前,总会有无辜的受害者”,斯托曼坚定地说,“在打印机事件中,我和整个人工智能实验室扮演了受害者的角色。”

斯托曼带着这种态度,经历了动荡的 20世纪 80年代。在这期间,麻省理工学院的同事们纷纷离开实验室,走进公司,签署了保密协议。大多数保密协议都有解密时间,而这则成了很多黑客们的借口。他们会辩解说:软件迟早会成为公共资源。而保证软件在早期的开发阶段不被泄露,则可以保证让各位黑客朋友们可以进入顶尖项目中工作。这些借口,在斯托曼看来,则是迈向深渊的第一步。

“要是谁跟我建议,让我以这种方式背叛我的同事,我就会回忆起在打印机事件中,我和我的同事被别人背叛的感觉,那份怒火终生难忘”,斯托曼说,“我会回敬给分发专有软件的人,并告诉他‘谢谢你的软件,非常棒!可是我不能接受你的那些保密协议,很遗憾,我不会用它。’”

斯托曼很快就会明白,要拒绝这些要求和邀请,不仅需要一些个人牺牲,更会被其他一些黑客们疏远。这些黑客虽然也对各种保密协议嗤之以鼻,但会更圆滑地对它加以评判。正因为如此,斯托曼被誉为“最后的黑客”。这使他与专有软件市场渐行渐远。拒绝提供源代码,在斯托曼看来,不仅违背了第二次世界大战以来深植入软件开发中的科学精神,更违背了“己所不欲,勿施于人”的道德准则。

打印机事件的重要意义恰在于此。正如斯托曼所言,倘若没有这次的事件,他的人生也许就会落入平常,纠结着,一边开发专有软件,一边痛苦地编写没人会看到的代码。当然也不会有着如今清晰的思路,更不会去解决别人从未想过的各种问题。最重要的,他心中也不会再有那份不平,推动着他去追求他的政治理想和道德信仰。

“从那日起,我决定绝不参与其中”谈起软件保密协议和类似的事情,斯托曼如是说,在他看来,这是一场以个人自由换取便利的交易,“我决定绝不让第二个人为此成为像我一样的受害者。”

注 释

[1].要深入了解“黑客”这个词,参阅附录 B。

附录B 黑客的三层含义

要理解“黑客”一词内在的含义,需要追溯这个词的词源和这么多年来的演化过程。

在《新黑客词典》这本在线的软件程序员专业术语词典中,对“Hack”一词列出了 9种不同的含义,“Hacker”一词也有相对应的多种含义。同时,上面也引用了一段麻省理工学院的黑客费尔·阿格雷(Phil Agre)所撰写的短文,这篇文章提醒读者不要被这个词给人的第一印象所迷惑。“Hack这个词只有一种意思,”阿格雷争辩道,“这个意思非常微妙和有深度,难以用语言来描述。”

不管是讨论这个词的狭义定义还是广义定义,大部分现代的黑客都会把这个词追溯到麻省理工学院,从 20世纪 50年代起,这个词就成为学生们互相交流时的使用的一句黑话。1990年,麻省理工学院博物馆还发表了一篇有关黑客现象的论文。根据这篇论文的描述, 50年代时,这个学校的学生们使用“Hack”这个词的方式与现在的学生使用“Goof(折腾)”一词的含义类似。在宿舍的窗户上挂上一个破飞机的行为就可以算是 Hack。但是,任何残忍的或恶意的行为就不能算是 Hack ,比如怂恿另人去打破宿舍窗户或损坏学院的雕像。“Hack”一词内在含义是在不损害他人的前提下寻找乐趣和创新点的精神。

这种精神赋予了 Hack这个词的动名词形式“Hacking”更多活力。在 20世纪 50年代,如果一个学生花上大半天的时间打电话或拆装收音机,这样行为就可以被称作是“Hacking”。而在现代,人们通常会用“Goof”一词的动词形式“Goofing”或“Goofing Off”来描述这类行为。

经过整个 20 世纪 50年代的演化,“Hack”这个词的含义变得更加尖锐和反叛。20世纪 50年代的麻省理工学院校园里充满了竞争,而且黑客的出现,正是这种竞争文化的产物和延续。Goof 和 Pranks(喜欢恶作剧的人)突然成为学生们发泄多余精力的方式,他们甚至会跑去学校的教务处去做鬼脸,沉溺于各种稀奇古怪的想法和被繁重的研究生课程所遏制的行为。学院众多走廊和地下蒸气管道提供了无畏于紧闭的大门和“禁止进入”标识的学生们足够多探索的机会。学生们开始把这种不被规章制度允许的探索称为“地道黑客”。在地面上,校园的电话系统也提供了类似的探索机会。通过业余的实验和一些专业的研究,学生找到一些恶作剧的办法。学生们从相对古老的“地道黑客”活动中获得了灵感,很快就参与到了这种新型的“电话黑客”活动中。

强调创新游戏和无限制的探索活动,成为后来黑客活动的文化基础。20世纪 60年代出现了一些最早自称为是计算机黑客的人,他们来自麻省理工学院里一个起源于 50年代末期、名为铁路科技模型俱乐部(Tech Model Railroad Club)的学生组织。这个俱乐部中有一个紧密的小团队叫作“信号与电源(S&P)委员会”,是这个俱乐部的电子电路系统的主要负责团队。这个系统是一个由继电器和开关组成的复杂系统,有点像当时学校电话的控制系统。俱乐部的成员只需通过电话拨打一些特定的号码就可以控制火车的运行。

负责建造和维护这套系统的电子工程爱好者们把这样的活动认为是与电话黑客活动一脉相承。他们不但接受了黑客这个概念,而且还把它变得更为完善。从 S&P 黑客的观点来看,如果某一段火车铁轨的控制电路中可以少用一个继电器,就意味着可以节省一个继电器供以后使用。黑客这个词的含义渐渐从“闲玩”的同义词演化成了在闲玩的同时去提高俱乐部的铁路系统的整体性能和效率。不久以后, S&P委员会的成员就自豪地宣布,把改进和重构铁路的底层电路的活动称为“黑客活动”,而参与这样活动的人就是“黑客”。

复杂的电子电路对黑客们有着天然的亲和力,抛开那些无视紧锁的大门和“禁止进入”标识的传统的麻省理工学院的学生,新一代的黑客们很快就在校园中找到了一种新的玩具。这种被称为 TX-0的机器,是最早进入商用市场的计算机之一。到了 20 世纪 50年代末,整个 S&P 的团队都已经把兴趣转移到 TX-0 的控制室里,用他们的创新精神来折腾这个机器。从那时起,计算机程序设计领域开始进入“黑客”一词的词源。“黑客行为”不再是指焊接一些看起来很奇怪的电路板,而是更多的是与软件程序开发联系起来,还包括少许“正式”的软件开发方法或过程。它同样意味着提高效率和改进现有程序让它们运行得更快,因为只有这样才能节省更多的系统资源。从词源上来讲,这个词也指仅仅为了好玩或娱乐而编写一些没有实质性用途的程序。

“太空大战(Spacewar)”游戏是体现这种黑客定义的经典例子,这是世界上第一个在电脑上运行的交互式视频游戏。早在 20世纪 60年代,麻省理工学院的黑客们就开发出了这个游戏,“空间大战”游戏诠释了所有传统黑客的定义:它既无聊又随机,除了可以让一群黑客们通宵达旦的娱乐外,没有什么实质性的用途。从软件的观点来说,它倒也算是程序开发技能上一次伟大的创新。同时,它也是一个完全自由的软件。由于黑客们只是为了好玩而设计了它,因此他们觉得没有什么理由要去刻意保护这样的创作成果。因此,这个游戏可以在程序员之间广为分享。到了 20 世纪 60年代末,“空间大战”已经成为全世界大型机程序员们最爱的一种消遣方式。

20世纪60年代的计算机黑客与50年代的地道黑客和电话黑客的最大区别,就在于这种合作创新与公有的软件所有权。传统的黑客更崇尚个人或小团体的活动。地道黑客和电话黑客活动与校园里的情况紧密相关,他们这种不被规章制度所允许的活动天然地不鼓励通过公开的交流来分享新的发现。计算机黑客则不同,他们在科学领域中工作,这是一个完全基于协作和鼓励创新的氛围。黑客们与“官方”的计算机科学家并不一定是最好的搭档,但是由于计算机技术的高速发展,这两种计算机程序员之间很快就形成了一种或多或少的合作共生关系。

这是早期计算机黑客们惊人技能的一种证明,很多后来的程序员,包括理查德·马修·斯托曼,都渴望能够做到这一点。到了 20世纪 70年代中后期,“黑客”这个词又有了更精确的内涵。在一般人看来,计算机黑客是指那些可以为了写代码而写代码的人。他们觉得这是对于编程技能的一种证明。“黑客”一词跟“艺术家”这个词很像,它的含义超越了它字面上的意思。把一名程序员称为是黑客,是对他的一种尊称,而把自己称为是黑客则表明了极强的自信。不管是哪一种情况,随着计算机的普及,“计算机黑客”这种早年很少见的称谓也变得越来越常见。

对“黑客”的定义越来越精确,“计算机”黑客则还有一层超越了字面的含义。要成为一个黑客,不仅仅需要去编写一些有意义的软件,同时还需要能够融入黑客“文化”并崇尚它的传统,就像一个中世纪的酿酒师需要加入一个酿酒协会一样。黑客社区的结构不像协会那么严格,但是在麻省理工学院、斯坦福和卡耐基梅隆大学这样的精英大学中,黑客们开始公开宣传“黑客道德”:这些不成文的规定影响着黑客们的日常行为。在 1984年出版的《黑客》一书中,作者史蒂芬·李维在经过了很多研究和咨询以后,把黑客道德定义为五种核心的黑客信条。

从很多层面上来说,李维所列出的这些核心信条都进一步定义了计算机黑客文化的核心思想。但是黑客社区给人们留下的协会般的印象,并没有被普通人占据优势地位的软件工业所压制。20世纪 80年代初,计算机开始在各行各业中广为应用,那些原本只在顶级大学或公司才能接触到电脑的程序员,现在可以通过 ARPAnet 与一流的黑客进行交流。通过交流,这些程序员开始渐渐接触到像麻省理工学院那些黑客文化中的无政府主义哲学。然而,那些麻省理工学院原生黑客文化中的禁忌,比如禁止恶意行为,在文化的转移中却渐渐地消失了。一些年轻的程序员开始在一些错误的方向上应用他们的计算机才能,发明和传播计算机病毒、攻击军事计算机网络、故意让类似于ARPAnet 网关的 MIT Oz 这样的计算机死机。“黑客”这个词的含义开始渐渐滑向一个无政府主义的边缘。当警察和工商界开始发现计算机犯罪的来源是少数不守规矩的程序员,而这些程序员又片面地引用一些黑客的信条来为他们的行为辩解,黑客这个词也就更多的在报纸和杂志上以负面形象出现。尽管像《黑客》这样的书用很多的篇幅去介绍黑客精神中的探索本质,并且弘扬黑客文化,但是对于大部分报纸记者和读者仍然把“计算机黑客”当成“电子盗贼”的同义词。

尽管黑客这个词被这样错误地使用了近二十年,这个词叛逆的内涵让人很难分辨一个 15 岁有软件开发经验且绕过了现代加密系统和一个在20世纪60年代破坏门锁或直接损坏房门访问办公室电脑终端的大学生有什么分别。毕竟,一个人想要颠覆权威的创新精神就是让另一个人头疼的安全问题。即使是这样,作为信条的核心禁忌,反对恶意行为这一条仍然有很深远的影响力。因此,大部分黑客都喜欢用“骇客(Cracker)”这个词来描述这类故意破解计算机安全系统去盗取或破坏数据的人,这些所谓的“黑客”使用他们的计算机技能去做一些恶意的事情。

这种忌讳恶意行为的核心原则成为联系21世纪初的黑客与20世纪 50年代的黑客的文化纽带。值得注意的是,在过去的 40年中,计算机黑客的概念演化了很多。最初这个词的意思是指有点恶作剧的行为,比如发现一些隐蔽的地道,这层含义现在依然存在。2000年秋天,麻省理工学院博物馆举行了一个专门向古老的黑客传统致敬的展览,名为“黑客殿堂”。这个展览上展出了很多 20世纪 20年代的老照片,其中有一张是有人愚弄警察巡逻车的照片。1993年,有学生向这种行为致敬,把一模一样的巡逻车、警灯放到了学院主楼的圆顶上。巡逻车的仿制车牌上写着 IHTFP,这是一个在麻省理工学院很流行的缩写词,包含着很多的含义。其中最引人注意的意思是始创于 20世纪 50年代麻省理工学院压力最大的时候的流行语:“我憎恨这个鬼地方(I hate this fucking place)”。然而,在 1990年,博物馆基于这个缩写词创作了一本期刊:《黑客、蠢举与恶作剧学报》(The Journal of the Institute for Hacks,Tomfoolery,and Pranks),这本期刊的主要内容有是关黑客的历史,它精妙地描述了黑客活动的本质。

“在黑客的文化中,优雅、简洁的创新是被高度崇尚的,就像在纯科学的领域,”《波士顿环球报》的记者伦道夫·赖安(Randolph Ryan)在 1993年的一篇警车展览相关的文章中写道,“黑客与一般校园中的那些喜欢恶作剧的人在一些需要细致计划、工程化和使用手段的事件中的表现不太一样,他们本质上更为聪明和具有创造力。”赖安写道:“黑客的本质应该是好的,不能去搞破坏,应该是安全的,这是一条不成文的规则。事实上,黑客们有时也参与破坏他们自己的作品”。

主张把计算机黑客的文化限定在特定的伦理边界中是一个不错的想法,但却是不太可能的。尽管大部分软件黑客们渴望优雅和简单的精神气质,但是软件媒体很少提供回头的机会。摆脱警察的巡逻车要比破碎一个想法更为容易,尤其是一个出现的正是时候的想法。所以“黑帽”与“白帽”之间的差异也越来越明显:“黑帽”黑客把新的想法转变为破坏性的、恶意的行为,而“白帽”黑客把新想法转变为正面的或者至少是有益的方向。

“黑客”这个词曾经只是学生们一个含糊其辞的黑话,现在却成为了一个语言学上的一个台球,服从于政治的束缚和伦理上的差异。这也许就是为什么很多黑客和记者们喜欢使用这个词语的原因。至于这个台球下一步会弹去哪个方向,人们还是只能众说纷纭。

相关图书

ChatGPT与AIGC生产力工具实践 智慧共生
ChatGPT与AIGC生产力工具实践 智慧共生
专利写作:从创意到变现
专利写作:从创意到变现
产品经理方法论——构建完整的产品知识体系(第2版)
产品经理方法论——构建完整的产品知识体系(第2版)
程序员的README
程序员的README
架构思维:从程序员到CTO
架构思维:从程序员到CTO
开发者关系实践指南
开发者关系实践指南

相关文章

相关课程