映月读书网 > 创新者:一群技术狂人和鬼才程序员如何改变世界 > 理查德·斯托尔曼、莱纳斯·托瓦尔兹以及自由和开源软件运动 >

理查德·斯托尔曼、莱纳斯·托瓦尔兹以及自由和开源软件运动

1983年年底,正值乔布斯准备推出麦金塔电脑,盖茨宣布将开发Windows系统之际,另一种软件开发方式出现了。它由麻省理工学院人工智能实验室和铁路模型技术俱乐部的一位“顽固分子”——理查德·斯托尔曼(Richard Stallman)推动。斯托尔曼是一个执着追求真理的黑客,他看起来就像一位《圣经·旧约》中的先知。与复制微软BASIC程序带的家酿计算机俱乐部成员相比,斯托尔曼追求更高的道德标准,他坚信,软件应该协作开发并自由分享。117

乍看上去,这种方式似乎并不能激励人们去开发出色的软件。盖茨、乔布斯和布里克林从事软件开发并不是为了获得自由分享的快乐,但渗透了黑客文化的协作和公有伦理让自由和开源软件运动最终成为一股强大的力量。

理查德·斯托尔曼生于1953年,在曼哈顿长大,自幼对数学有着浓厚的兴趣,孩提时代就靠自学啃下了微积分。他后来说:“数学和诗歌有异曲同工之处。它由真实的关系、真实的步骤和真实的推导构成,因此数学中蕴含着这种美。”与同班同学不同,他非常反感竞争。当他的高中老师把学生分成两队进行智力竞赛时,斯托尔曼拒绝回答任何问题。他解释说:“我对竞争观念很抵触,我认为在竞争中自己是被操纵的,而我的同班同学则成为这种操纵的牺牲品。他们都想打败其他人,而这些所谓的其他人和他们的队友一样,也是他们的朋友。为了求胜,他们会要求我回答问题。但我拒绝了这种要求,因为我对每支队伍都是一视同仁。”118

斯托尔曼大学念的是哈佛,即便是在数学高手如林的哈佛,他也照样成为一名传奇人物。无论是大学时代的暑期还是毕业后,他都在麻省理工学院人工智能实验室工作,这个实验室位于剑桥,距哈佛有两站地铁的车程。在麻省理工,他为铁路模型技术俱乐部的铁道沙盘添加了更多器件,编写了一个可以在PDP–10上运行的PDP–11模拟器,并迷上了协作文化。他回忆说:“我加入了一个很有年头的软件共享社群,每当有其他大学或公司的人提出想移植或者使用什么程序,我们都会欣然应允。你随时可以要求看源代码。”119

和所有优秀的黑客一样,斯托尔曼也喜欢反抗束缚和封闭。他曾和其他学生一同设计出多种方法闯入严禁入内的终端室;他的独门绝技是爬过天花板吊顶,挪开一块瓷砖,放下一长条顶端连着一卷卷牛皮胶布的磁带,以打开门把手。麻省理工学院建立用户数据库和有高强度密码的系统时,斯托尔曼提出了反对意见,他还鼓动同事也一起反对,他说:“我认为那样很恶心,所以我没有填表,而且设了个空密码。”有一回,一位教授警告说校方可能会删除他的文件目录。斯托尔曼回答说,这样做对每个人都不好,因为系统中有部分资源在他的目录中。120

但斯托尔曼失望地看到,麻省理工学院的黑客情谊从20世纪80年代初开始变淡了。他所在的实验室购买了一台新的分时计算机,上面安装了专有软件系统。斯托尔曼叹道:“就连拷贝可执行文件也必须签署保密协议。这就意味着,要想使用一台电脑,第一步得承诺不要帮助你身旁的人。一种协作性的社群遭到了禁止。”121

但他的许多同事不仅没有反抗,而且纷纷加入营利性软件公司,其中包括从麻省理工实验室剥离出的一个名为Symbolics的公司,不再自由分享软件之后,他们赚到了很多钱。而斯托尔曼(他有时会在办公室过夜,一身衣服都像是从二手店买来的)则无法认同这种追求金钱的动机,并把他们视为叛徒。有一回,施乐捐赠了一台新的激光打印机,斯托尔曼想对一个软件做些改动,使其能在网络拥挤时对用户提出警告。他让一位同事把打印机的源代码提供给他,但这位同事拒绝了,说他已经签署了保密协议。这件事成为压倒斯托尔曼的最后一根稻草,他感到义愤填膺。

经历了这一切之后,斯托尔曼变得更像《圣经·旧约》中那位反对偶像崇拜,按照《哀歌》布道的先知耶利米了。他说:“有些人确实把我比作《圣经·旧约》中的先知,原因是这些先知会直言有些社会实践是错误的。他们不会在道德问题上妥协。”122 斯托尔曼也不会妥协。他说,专有软件是“邪恶的”,因为“它要求人们必须同意不与他人分享,从而让社会变得丑陋起来”。他认为,抵制和击败邪恶力量的方法是创造自由软件。

于是,在1982年,对里根时代社会以及软件业中弥漫的自私自利充满厌恶的斯托尔曼展开了一项使命,他要创建一个自由的、完全非专有的操作系统。为防止麻省理工学院对该操作系统主张权利,他辞去了人工智能实验室的工作,不过,宽厚的上司还是允许他保留钥匙并继续使用实验室的资源。斯托尔曼决定开发的操作系统与UNIX(1971年由贝尔实验室开发,后来成为多数大学和黑客奉行的标准)类似并能与之兼容。斯托尔曼以程序员那种不易觉察的幽默将他的新操作系统命名为GNU。GNU是“GNU’s Not UNIX”(GNU不是UNIX)的递归缩写。

在1985年3月号的《多布氏杂志》(Dr. Dobb’s,一份源自家酿计算机俱乐部和《人民计算机公司》的刊物)上,斯托尔曼发布了一项宣言:“我认为,如果我喜欢一款程序,就必须将其分享给喜欢这个程序的其他人,这是我信奉的准则。卖软件的人想分化和征服用户,他们强迫每个用户都同意不与他人分享。但我拒绝让他们以这种方式打破我与其他用户的团结一致……GNU一旦编写出来,每个人都将可以像呼吸空气一样自由地获得出色的系统软件。”123

斯托尔曼的“自由软件运动”这个名称取得并不算完美。[5] 它的目标并不是要坚持所有软件都免费,而是要让软件从束缚中解放出来。斯托尔曼不得不反复解释:“当我们把一种软件称为‘自由软件’时,我们是指它尊重用户的基本自由,即运行、研究和更改软件,以及在更改或不更改的前提下重新传播其复制品的自由。这事关自由,而不是价格,所以请想想‘自由言论’,而不是‘免费啤酒’。”

对斯托尔曼来说,自由软件运动不仅仅是通过集体协作开发软件的方式,而且是一种为创造理想社会而必须履行的道义责任。他表示,自由软件运动所倡导的原则“从本质上说不仅只是为了个人用户,更是为了整个社会,因为它们推进了社会的团结一致,促进了分享与协作。”124

为捍卫和证明自己的信条,斯托尔曼推出了“GNU通用公共授权”,并在一位朋友的建议下提出与“版权”(copyright)相对的“反版权”(copyleft)概念。斯托尔曼说,通用公共授权的本质是赋予“每个人运行程序、复制程序、更改程序和传播更改后版本的权力——但不允许任何人自行为程序设限。”125

斯托尔曼自己动手编写了GNU操作系统最初的一些组成部分,其中包括文本编辑器、编译器,还有许多其他工具。但GNU还缺少一个关键部分,也就是内核。内核是一个操作系统的中央模块,管理来自软件程序的请求,并将它们转换成面向计算机中央处理单元的指令。1986年,《字节》(Byte )杂志在采访中询问斯托尔曼:“内核写得怎么样了?”斯托尔曼回答说:“我准备先完成编译器,再做内核。我还要重新编写文件系统。”126

但出于种种原因,他发现自己很难完成GNU的内核程序。到了1991年,内核程序终于面世了,但写程序的既不是斯托尔曼,也不是他的自由软件基金会,而是一个谁没能料想到的人:一个喜欢露齿而笑,带着几分孩子气的21岁男孩,名叫莱纳斯·托瓦尔兹(Linus Torvalds),他是一个说瑞典语的芬兰人,在赫尔辛基大学读书。

莱纳斯·托瓦尔兹的父亲是共产党员、电视记者,他母亲学生时代曾是激进主义者,后来成了报社记者,但在赫尔辛基长大的托瓦尔兹更感兴趣的却是技术,而不是政治。127 他说自己“擅长数学和物理,完全不善社交,而当时像书呆子一样还不是什么好事情”。128 尤其是在芬兰。

托瓦尔兹11岁时,他当统计学教授的祖父送给他一台二手康懋达Vic 20型电脑,这是最早的个人电脑之一。托瓦尔兹开始自己动手用BASIC语言编写程序,其中一个程序会反复显示“萨拉最棒”,把他妹妹逗得很开心。他说:“我最大的快乐之一是认识到计算机就像数学一样:你得利用其自身的规则构筑你自己的世界。”

托瓦尔兹的父亲让他学打篮球,但他不予理会,而是专心地学习如何用机器语言(可由计算机中央处理单元直接执行的数字指令)编写程序,这让他享受到“与机器亲密接触”的快乐。后来,他庆幸自己曾用一台非常基本的设备学习汇编语言和机器代码,他说:“在计算机还不是那么复杂的时代,它们其实更适合孩子使用,当时,像我这种呆头呆脑的小孩也可以把计算机拆开来摆弄一下。”129 但计算机的拆装最终像汽车引擎一样也变得困难起来。

托瓦尔兹1988年进入赫尔辛基大学读书,接着在芬兰陆军服役一年,之后,他买了一台配有英特尔386处理器的IBM仿制机。托瓦尔兹不喜欢盖茨那帮人开发的MS-DOS系统,他决定安装自己在学校大型计算机上用惯的UNIX系统。但UNIX程序每份售价5 000美元,而且没有适合在家用电脑上运行的版本。于是托瓦尔兹开始动手解决这个问题。

他读过阿姆斯特丹的计算机科学教授安德鲁·塔嫩鲍姆(Andrew Tanenbaum)一本讲操作系统的书,塔嫩鲍姆出于教学目的开发了一款名为MINIX的程序,该程序是UNIX的小型仿制版本。于是托瓦尔兹决定用MINIX来替代他新电脑上的MS-DOS系统,他支付了169美元的许可费——他说:“我认为这简直贵得离谱。”——安装了16张软盘,然后开始对MINIX进行增补和修改,使其更适合他的口味。

托瓦尔兹先添加了一个终端模拟程序,这样就能拨入大学的主机了。他是用汇编语言从零开始,“直接在硬件层次上”编写这个程序的,这样就无须依靠MINIX了。1991年春末,太阳从冬眠中苏醒过来,每个人都出门进行户外活动了,只有他在埋头编写代码。他说:“我多数时间都裹着浴袍,蜷缩在我那台难看的新电脑前,拉着厚厚的黑色遮光帘阻挡阳光。”

做好简单的终端模拟器之后,托瓦尔兹还想让电脑能够下载和上传文件,于是他建了磁盘驱动器和文件系统驱动器。他回忆说:“我做完这些后已经可以很清楚地看出这个项目即将成为一个操作系统。”换句话说,他已经在建一个能够充当类似UNIX操作系统的内核的软件包了。他说:“前一刻我还披着自己那件破浴袍冥思苦想,考虑在一个终端模拟器上添加额外的功能。下一刻我就意识到,它聚集了这么多的功能,已经变为一个逐步成形的新操作系统了。”他在UNIX中找出了数百种让计算机实现打开关闭、读写等基本操作的“系统调用”,随后,他按照自己的设想编写了一些程序来实现这些功能。当时他还住在他母亲的公寓里,经常和妹妹萨拉吵架,因为他妹妹有着正常的社交,而他的调制解调器却把家里的电话线占用了。他妹妹抱怨说:“谁都打不通我们的电话。”130

托瓦尔兹一开始计划把他的新软件命名为“Freax”,该名称同时包含“free”(自由)、“freak”(狂人)和“UNIX”这三重含义。但他使用的FTP站点的管理员不喜欢这个名称,于是托瓦尔兹便改称该软件为“Linux”,这个名称读起来有点像他名字的发音“莱纳斯”。131 他说:“其实我从来都不想用这个名称,因为我觉得它有点太狂妄了。”不过他后来承认,虽然他在书呆子孤僻的躯壳内生活了那么多年,但他的自我中有一部分是很喜欢得到赞扬的,他为自己接纳了这个名称而感到高兴。132

1991年初秋,当赫尔辛基再次进入极夜时,托瓦尔兹已经把系统的壳层做好了,其中包括一万行代码。[6] 他没有试图向市场推广自己编写的程序,而是决定将其公之于众。不久之前,他刚和朋友一起听过斯托尔曼的一场讲座(斯托尔曼当时已经成为一位在全球宣扬自由软件理念的传道者)。托瓦尔兹并没有真正成为斯托尔曼的信徒,也没有接受他的信条,他说:“当时它并没有对我的生活产生重大影响。我感兴趣的是技术,而不是政治——我家里的政治说教已经够多的了。”133 但他的确看到了开源软件在实际中的优势。他觉得应该自由分享Linux,因为他期望该软件的用户能够帮助他改进软件。这项决定是发自他内心的直觉,而不是什么哲学选择。

1991年10月5日,他在MINIX讨论组以顽皮的口吻发布了一条消息。他在开头写道:“你是否怀念minix-1.1的美好时光?那时男人还是爷们,会自己编写设备驱动。我正在为AT–386电脑做一个酷似MINIX的自由软件,它现在终于达到了可用的阶段(尽管跟你的要求可能还有差距),我愿意把源代码公布出来,让它在更广泛的范围内传播。”134

他回忆说:“发布这个程序对我来说并不是什么艰难抉择。我已经习惯与别人交流程序了。”计算机圈内曾有(现在也依然如此)一种很强的共享软件文化,也就是下载程序的人往往会自发地向程序开发者支付几美元。托瓦尔兹说:“我收到人们发来的电子邮件,询问我是否想让他们给我寄上30美元左右的酬金。”当时他背负了5 000美元的学生贷款,每月还要为他的计算机支付50美元的分期贷款。但他没有去拉捐款,而是让人们给他寄明信片,于是,世界各地Linux用户的明信片开始像潮水一样涌来。托瓦尔兹回忆说:“一般是萨拉去收信,看到整天跟她斗嘴的哥哥竟然能收到那么远的地方的新朋友的来信,她的敬佩之情油然而生。这是她第一次发现,我虽然老是占用电话线路,但还是做了些有用的事情。”

托瓦尔兹后来解释说,他之所以不接受报酬有很多原因,其中之一是他渴望继承自己的家庭传统:

几个世纪以来,科学家和其他学者都是在前人的基础上取得成就的,我觉得自己是在追随他们的脚步……我还想要获得反馈(好吧,还有赞扬)。向能够帮助我完善程序的人收钱是荒唐的。我估计,如果我不是在芬兰长大,恐怕会以不同的方式看待这个问题,而在芬兰,任何人哪怕只是展露出一丁点贪婪的苗头,就算不被厌恶,也会遭到怀疑。还有,没错,如果不是在作为正统学者的祖父和作为正统共产主义者的父亲的影响下长大,我对金钱的态度无疑也会有很大不同。

托瓦尔兹宣称:“贪婪从来都不是好事。”他的处事方式让他成为一位民间英雄,成为适合在会议和杂志封面上树立的反盖茨形象。托瓦尔兹身上很可爱的一点是,他有充分的自知之明,知道自己其实很看重赞扬,而且这些赞扬让现实中的他比仰慕者眼中的他更加自我。他承认:“我从来都不是媒体坚持塑造的那个无私、忘我、热爱技术的孩子。”135

托瓦尔兹之所以决定使用GNU通用公共授权并不是因为他全盘认同斯托尔曼(还有他父母)的自由分享意识,而是因为他认为,如果让世界各地的黑客动手修改源代码,就能够带来一场开放的协作,从而缔造出真正出色的软件。他说:“我公开Linux源代码的动机其实非常自私,我不想费心去完善这个操作系统中我自认为做得很烂的部分。我想让大家来帮助我。”136

他的直觉是正确的。Linux内核程序的公布引发了海啸般的对等志愿协作,这种协作成为推动数字时代创新的协同开发典范。137 到1992年秋季,在Linux发布一年之后,该系统的互联网新闻组已经拥有数万名用户。无私的协作者们对该系统进行了改进,添加了类似Windows的图形界面和计算机联网辅助工具。只要有漏洞出现,就会有来自某处的某个人动手修补。开源软件运动中最具影响力的理论家之一——埃里克·雷蒙德(Eric Raymond)在他的《大教堂和市集》(The Cathedral and the Bazaar )一书中提出了所谓的“莱纳斯定律”:“众目睽睽之下,漏洞将无所遁形。”138

对等共享和协同合作其实并不是什么新鲜事物。整个进化生物学领域都是围绕人类及一些其他物种的成员之间为何能以利他方式合作这一问题展开的。我们在所有社会中都能找到自愿结社的传统,而这种传统在早期美国社会尤为突出,共建粮仓(barn raisings)和拼布缝纫(quilting bees)等协作项目就是鲜活的例证。亚历克西斯·德托克维尔(Alexis de Tocqueville)写道:“世界上没有任何一个国家比美国更成功地运用了结社原则,也没有任何一个国家比美国更慷慨地将其服务于一系列不同的目标。”139 本杰明·富兰克林在《自传》(Autobiography )中提出了一整套以“为公共福祉而奉献是神圣的”为箴言的公民理念,以解释他为何要鼓励人们自愿结社,去创建医院、民兵、街道清扫队、消防队、图书馆、夜间巡逻队和许多其他社群组织。

围绕GNU和Linux发展起来的黑客队伍告诉我们,超越金钱回报的精神鼓励能够为志愿协作提供动力。托瓦尔兹说:“金钱并不是最强大的动力。人们在激情的驱动下,在享受快乐时所做的工作是最出色的。这个道理既适用于编剧、雕塑家和创业者,也适用于软件工程师。”此外,黑客的动机中还有意无意地包含着一些自利因素。他说:“激励黑客们无私奉献的重要原因还有一点,这就是,他们做出的切实贡献能够赢得同行的尊重……每个人都想给同行留下深刻的印象,提高自己的声望和社会地位。开源软件开发让程序员们拥有了这个机会。”

盖茨在《致发烧友的公开信》中谴责了未经授权分享微软BASIC的行为,他质问道:“谁能分文不取地从事专业工作呢?”托瓦尔兹则认为这是一种奇怪的观点。他和盖茨来自两种不同的文化,一个来自赫尔辛基带有共产主义色彩的激进学术圈,另一个则来自西雅图的企业精英阶层。盖茨最终也许拥有了大房子,而托瓦尔兹则受到反政府主义者的热捧。他以自嘲的口吻说:“记者似乎很爱报道这种事情:盖茨住的是滨湖高科技豪宅,而我却住在无趣的圣克拉拉,我家是一座管道设施很差的三居室矮平房,我经常会被女儿的玩具绊倒。此外,我开着一辆普普通通的庞蒂克,还要自己接电话。谁不喜欢我呢?”

托瓦尔兹能够把握一种数字时代的艺术,即在大规模、分散化和无等级协作中担任具有威信的领袖。与托瓦尔兹同时代的领袖还有维基百科的创始人吉米·威尔士(Jimmy Wales)。这种领导艺术的第一大原则是,要像工程师那样根据技术优点而非个人因素来做决策。托瓦尔兹解释说:“这种方式能让我取得人们的信任。当人们信任你时,他们会采纳你的意见。”他还意识到,志愿协作组织中的领导者必须鼓励其他人跟着自己的激情走,而不能对他们颐指气使。他说:“最佳、最有效的领导方式是让人们去做自己想做的事情,而不是把领导者的意愿强加给他们。”这样的领导者懂得如何赋予群体自我组织的权力。只要方法得当,一种基于共识的治理结构就会自然而然地形成,Linux和维基百科都是这方面的例证。托瓦尔兹说:“许许多多的人都惊喜地看到,开源模式确实能够发挥作用。大家知道哪些人比较活跃,哪些人值得信赖,于是开源模式就自然而然地发挥作用了。无须投票,无须命令,也无须重新计票。”140

GNU与Linux的结合至少在概念上象征着理查德·斯托尔曼自由软件运动的胜利。但道德先知很少会陶醉于胜利的喜悦。斯托尔曼是一个清教徒,而托瓦尔兹则不是。他最终公之于众的Linux内核中包含一些带有专有特性的二进制数据类型。这个问题是可以纠正的;斯托尔曼的自由软件基金会就创建出了一个完全自由和非专有的版本。但斯托尔曼还面临一个更深刻、更感情化的问题。他抱怨称,虽然几乎所有人都把这个操作系统称为“Linux”,但这种说法有误导性,Linux只是内核的名称。他坚称(有时甚至会动怒),这个系统作为整体应该叫GNU/Linux。有一位曾和斯托尔曼一同参加软件博览会的人记得,当一个14岁男孩战战兢兢地向斯托尔曼请教关于Linux的问题时,斯托尔曼是如何回答的。这位旁观者后来痛斥斯托尔曼:“你把那个男孩大骂了一通,我看他的脸色暗淡了下去,他对你以及我们事业的信心都彻底崩溃了。”141

斯托尔曼还坚称,应该把创建他所说的自由软件作为目标,“自由软件”一词反映出一种与他人共享的道义责任。他反对托瓦尔兹和埃里克·雷蒙德首创的“开源软件”(open-source software)一词,“开源软件”强调的是让人们通过协作来提高软件开发效率这一实用目标。在实践中,多数自由软件也是开源软件,反之亦然;它们通常都被归入“自由和开源软件”一类。但在斯托尔曼看来,开发软件的方式和动机同等重要。否则,自由软件运动就很容易出现妥协和腐化。

这些争议不仅限于物质层面,而且在某种程度上涉及意识形态层面。斯托尔曼一心坚持道德的清白和决不妥协的精神,他哀叹:“如今,任何倡导理想主义的人都面临着一个巨大障碍,就是一种鼓励人们把理想主义视为‘不实际’的盛行意识形态。”142 而托瓦尔兹则像工程师一样非常讲求实际。他说:“我是实用主义者的代表,我一直都认为理想主义者很有意思,但有点令人生厌,还有点可怕。”143

托瓦尔兹承认自己“其实并不是斯托尔曼的超级粉丝”,他解释说:“我不喜欢一根筋的人,我也不认为把世界变得非黑即白的人有多善良或者最终能发挥多大作用。事实上,任何事物都并非只有两面,应对一件事情的方式几乎永远都有许多种,而‘视情况而定’也几乎始终都是一切重大问题的正确答案。”144 他还认为,应该允许人们通过开源软件来盈利。他说:“开源是要让所有人参与进来。既然是这样,为什么要把在社会科技进步中发挥巨大作用的商界排除在外呢?”145 软件也许向往自由,但编写软件的人或许想要养活自己的孩子并回馈他们的投资者。

但我们不能因为这些争议而抹杀斯托尔曼和托瓦尔兹以及他们数千名合作者的惊人成就。GNU和Linux的结合创造出一种可接入更多硬件平台(从世界上10款最大的超级计算机到手机的内置系统)的操作系统,其兼容性比其他任何一种操作系统都要好。埃里克·雷蒙德写道:“Linux是颠覆性的。谁都不会想到,分散在世界各地的数千名开发者利用业余时间,仅依靠互联网的脆弱联系,竟能奇迹般地创造出一种世界级操作系统。”146 它不仅成为一种伟大的操作系统,而且成为其他领域共同对等开发的范例,Mozilla的火狐浏览器和维基百科的内容都是以类似方式创建的。

到20世纪90年代,世界上已经出现了许多种软件开发模式。这其中有硬件与操作系统软件牢牢捆绑的苹果模式(麦金塔电脑、iPhone手机和所有i系列产品都是以这种方式开发出来的,其目的是创造无缝用户体验);有操作系统不捆绑软件,能让用户拥有更多选择的微软模式;此外还有软件完全不受束缚,任何用户都能动手修改的自由和开源模式。每一种模式都有其优势,都能够刺激创新,并且都有一批先知和信徒。但最理想的方式是让这三种模式共存,让开放和封闭、捆绑和不捆绑、专有和自由随意组合。Windows和Mac、UNIX和Linux、iOS和安卓:在几十年的时间里,各种不同的方式相互竞争,相互激励——并相互制约,有效防止了其中任何一种模式占据统治地位,进而妨碍创新。

拉里·布里连特(1944— )和斯图尔特·布兰德2010年在布兰德的船屋上会面

威廉·冯·迈斯特(1942——1995)

史蒂夫·凯斯(1958— )

[1] 盖茨和艾伦成为成功的企业家之后,他们为湖滨中学捐资修建了一幢新的科学楼,并以肯特·埃文斯的名字来命名其礼堂。

[2] 由于史蒂夫·沃兹尼亚克为苹果II编写BASIC时不愿去处理这一枯燥的任务,后来苹果不得不向艾伦和盖茨购买BASIC使用许可。

[3] 史蒂夫·沃兹尼亚克在网上阅读了本书草稿后说,丹·索科尔其实只复制了8份,因为复制难度很大而且很耗时。但在《睡鼠说了什么》一书中记述这件事的约翰·马尔科夫与我(以及沃兹和费尔森施泰因)分享了一份他对丹·索科尔的采访手稿。索科尔说,他用的是一台配有高速读带机和打孔器的PDP–11计算机,他每天晚上都会复制,估计总共制作了75份。

[4] 律师的担忧不无道理。因美国司法部指控微软不当利用其在操作系统市场的统治地位来谋取在浏览器和其他产品方面的优势,该公司后来卷入了一场旷日持久的反垄断官司。此案最终在微软同意调整部分商业实践后和解。

[5] “free software movement”中“free”一词既指自由,也有免费的意思。——译者注

[6] 到2009年,GNU/Linux的Debian 5.0版已经拥有3.24亿行源代码,一项研究估计,如果用传统方式开发,该软件的研发费用可能已经达到80亿美元左右。