事情的发展已经势不可挡:世界各地的黑客们每天都在共同分享彼此提出的修改建议。
我们正在集体创造一个最好的操作系统,这种发展轨道已经不可改变。正因为如此――因为 Linux 已广为人知,我才觉得把它作为商品也是可以接受的。
但是,在使我自己看起来像个慈善先生之前,还有另一个关键的因素使我做出了这一决定。事实是,为了使 Linux 有用,我曾依赖过很多在网上免费下载的工具――我把自己放到了巨人的肩膀上。这些免费软件中最重要的是 GCC 编译器,它是理查德 ? 斯多曼的杰作,并且已经在公共执照协会 (GPL) 上注册了版权。在 GPL 条款之下,钱不是问题,只要有人愿意买,你可以卖一百万美元。但是,你必须提供软件来源。而得到或买到你的来源的人,将拥有和你一样多的对于该程序的。这实在是很高明的一招。我认可 GPL 的原则,但是和那些认为所有的软件创新都应该在 GPL 下向全世界公开的顽固的 GPL 信仰者不同,我认为发明者本人有决定如何处置自己的发明的权利。
于是,我抛弃了自己旧有的版权声明,采纳了 GPL 的内容,一个斯多曼也曾经和他的律师一道签署过的文件 ( 因为有律师的参与,该文件被搞得洋洋洒洒有好几页 ) 。
新的版权声明被放进了 0.12 版本中。但是,我记得在发布当晚我从睡梦中醒来,想到商业利益将可能有点古怪,因为当时所涉及的商业利益真是不多。但不知怎的,我觉得自己应该小心。我的担心之一是――现在仍然是――有人将丝毫不尊重我的版权地将 Linux 掳去。我担心,在现实中,如果有个美国人侵犯了我的版权,我无法对其提起诉讼。现在这仍是我的担心。状告某人侵权很容易,而我的担心是,有的人会即使被起诉也继续从事这种违法行为,除非加诸某种强制执行的法律行动他们才会停止。同时我也不断地担心,在像中国这样的地方,企业并不承认 GPL 的效力,从而也不会尊重我的版权。
事实上,这些地方的法律体系对侵犯版权的制止在当时并不得力 ( 中国已经签署了一系列的国际公约,李纳斯在这里谈的是 1991 年的情况――译注 ) ,而且,为防止违法行为的投入在这些地方被认为是不划算的。大软件公司和唱片公司曾作过努力,但是成效不大。
不过,事实减轻了我的担忧。有的人确实会暂时侵犯我的版权,但是他们往往也是那些尊重版权、反馈改进意见、使系统功能得以提高的人。他们将是系统升级过程中的一分子。相反,那些不尊重版权的人们则不会利用这些升级,他们的顾客也会离他们而去――我希望。
总的来说,我从两个方面看版权。比如一个每月挣五十美元的人,他可能会为一个软件花费二百五十美元吗?如果花一点钱买非法拷贝软件,而把五个月的工资用于吃饱肚子,我一点不觉得他不道德。这种侵权是道义上可以接受的。去追捕这种“侵权者”是不道德的,更不要说简直就是愚蠢的。就 Linux 而言,谁在乎如果只将其用于个人目的时,一个人是否真正遵循了 GPL 呢?那些想藉此赚大钱的人们,才是真正不道德的,不管他们是在美国还是非洲,也不管程度如何。
贪欲从来就不是善的。
8 、 MINIX 对 Linux
引人注目并非全是好事。
我从不擅长处理对抗,但也被迫站出来为 Linux 和我的尊严辩护,因为安德鲁 ? 塔南鲍姆不断攻击我的 Linux 取代了他的 MINIX 操作系统。我们都是网虫,所以论战是通过电子信件进行的。
他只穿着件 T 恤就浑身冒火,能怪谁呢?
在还没有 Linux 讨论组之前,我一般都是在 MINIX 讨论组上宣布有关 Linux 的信息和寻找对这个操作系统感兴趣的人。对此,安德鲁怎么会高兴呢?
所以,开始的时候,他对我入侵他的讨论组有些不快。很显然,他也很不高兴自己的操作系统正在被一个来自芬兰雪原的新发明夺去光彩,而且看来有众多的软件设计者正在加入进去。同时,他对应该如何创建操作系统持与我对立的观点。那时,安德鲁属于主张以微内核的方法建立操作系统的计算机科学家阵营。他把 MINIX 做成适用于微内核和 Amoeba ( 一种他当时正在创建的也适用于微内核的系统 ) 的形式。
适用于微内核的系统在八十年代晚期和九十年代早期十分盛行,而 Linux 的成功威胁到了这一运动。所以他不断地在网上帖一些难听的带攻击性的帖子。
微内核的理论依据是,操作系统是非常复杂的,所以要通过模式化来减少复杂性。微内核方法的原则,即核心的核心,是昼减少功能。它的主要功能是传播。电脑所提供的一系列不同的服务都是通过微内核的传播渠道实现的。因此,应尽量分割问题的空间,使其不再复杂。
我认为这种做法很愚蠢。
是的,每一个单独的部分是简单的,但是相互作用的多种功能如果放在一起就要复杂得多,而 Linux 就是后者的情况。想一想自己的大脑。每一个单独的部分都很简单,但是各部分的相互作用构成了一个复杂的系统。这是一个整体比个别更大的问题。拿一个问题来说,如果你简单地将问题一分为二,说半个问题要容易一半,那么你就忽略了一个事实,即:你必须要考虑到两个半个之间的联系所带来的复杂性。微内核的理论是,如果把核分为五十份,那么每一份都只有五十分之一的复杂性。但是每个人都忽视了一个事实,即各部分之间的联系事实上比源系统更加复杂,而且那些个别部分也不是那么简单。
这是我对微内核最重要的反驳:你想实现的简单化是错误的简单化。
开始时, Linux 是一个较小的软件,而且简单得多,没有必要进行模式化。所以用 Linux 可以比 MINIX 更直截了当地做很多事。我最初发现 MINIX 的缺陷是,如果你同时运行五个软件,五个软件都要读不同的文件,那么五项任务要一个一个地先后进行。换句话说,你要向系统发出五次请求:“我可以读文件 X 吗?”文件系统主管读取的后台驻留程序先接受一个请求,对其进行回应,然后再接受一个,再进行回应……
Linux 系统只有一个核,在这个系统之下,五个不同的过程都对核进行系统呼叫。核必须要十分小心,不会将其混淆,但是它会很自然地让各个过程各行其是。因此 Linux 更快捷高效。
MINIX 的另一个毛病是:尽管你有源代码,但是许可证并不允许你做很多事情。拿布鲁斯 ? 伊文斯来说,他对 MINIX 做了重大改进,使其更易在 386 上使用,但是他却无法将其所做的改进纳入原系统之中,因为 MINIX 限制人们对其进行修改。从实用的角度来说,这不啻是一个灾难。使用者哪怕为了得到一个可使用的系统都要经过多个步骤,这真是太不实用了。
就这样,我与安德鲁 ? 塔南鲍姆结束了交战,那是在 1992 年年初。想象一下,在一个暴风雪过后的早晨,你看见这样一条信息:
来自:安德鲁塔南鲍姆 ast@cs.vu.ni ( 安德鲁 ? 塔南鲍姆 ) 新闻组: comp.os.MINIX
题目: Linux 过时了。
日期: 1992 年 1 月 29 日 ,格林威治时间 12 : 12 : 50
我在美国待了几个星期,所以没来得及对 Linux 做多少评论 ( 不是说如果我在,我就会说什么 ) 。但是, Linux 确实值得一评。我现在就有话要说。
正如你们所知, MINIX 只是我的爱好,每当晚上我写烦了书,如果当时没有什么战争、革命、 CNN 直播的参议院听政会,我就会摆弄 MINIX 。
我的真正职业是大学教授和操作系统领域中的研究人员。由于我的职业,我想我知道在今后的十年左右时间里操作系统会向何处发展。
有两个方面引人注意:
1) 微内核对 Monolithic system 大多数操作系统是独立一体的,也就是说,整个操作系统是一个单独的 a.out 文件,一个“核形式”运行。这种二进制中有管理过程、存储管理、文件系统及其他。这类操作系统目前有 UNIX,MS-DOS,VMS,MVS,OS/360,MULTIC 以及其他很多。
另一种则是基于微内核的系统,在这种系统中大部分 OS 都作为单独过程进行,还有许多通过沟通在核外运行。核的任务是管理信息仁慈,控制中断的情况,低层次的过程管理,还可能有 I/O 。这种形式的操作系统有 RC400,Amoeba,Chorus,Mach, 以及尚未发行的 WindowsNT 。
在我详尽论述两者的利弊之前,可以说那些设计了这两个操作系统的人们之间的急诊已基本结束。微内核胜出。 Monolithic system 唯一的优点在于运行上,而现在有足够的证据证明,微内核系统也能和 Monolithic system 一样快。
MINIX 是一个基于微内核的系统。文件系统和存储管理相分离,在核外运行。 I/O 驱动也是分离的 ( 在核中,只是因为英特尔中央处理器中的大脑是死的这一原因,才很难寻求其他的做法 ) 。
Linux 是 Monolithic 风格的系统。这一做法是回到七十年代的一大退步,就像对一个令人激动的 C 程序以 BASIC 语言重新编写。对我来说,在 1991 年还写一个 Monolithic system 的系统是一个不折不扣的坏主意。
2) 不分界域性 (Portability) 很久很久以前有一种 4004CPU ,它成熟后变成了 8008 ,接着它接受了整形手术,就成了 8080 。由 8080 诞生了 8086 ,接下来是 8088 ,再后来是 80286 、 80386 、 80486 ,一直到了第 n 代。同时还出现了 RISC 芯片,有些能以 100MIPS 运行。 200MIPS 的速度以及更高能在近几年中出现。这些都不会马上消失,而是会很快从 80*86 发展开去。它们会通过在软件中解析 80386 来运行旧式的 MS-DOS 程序。我认为任何一个架构设计 OS 都是极大的错误,因为它会很快消失。
MINIX 的设计就是不分界域性,并已从英特尔 ported 到 680*0 (Atari,Amiga ,苹果 ) , SPAC ,以及 NS32016 。 Linux 紧紧地与 80*86 联系在一起,方向错了。
别误解我,我并非不喜欢 Linux ,主要是 Linux 会使所有那些想在 BSD UNIX 上运转 MINIX 的人弃我而去。坦诚地说,对那些想获得一个“现代的”免费 OS 的人们,我想建议他们找一个基于微内核的、 portable 的操作系统,如 GNU 之类。
安德鲁 ? 塔南鲍姆 (ast@cs.vu.nl) 附:顺便说一下, Amoeba 有一个 UNIX 仿真器 ( 在用户的空间中运行 ) ,但是还远未完成。若有人有志在此方面努力的话,请告诉我。运行 Amoeba 需要几个 386 ,其中一个要有 16M ,所有的都必须具备 WD 以太网卡。
于是,我知道有必要维护自己的荣誉了,所以就有了下面的反击:
来自:李纳斯本尼迪克特托沃兹 torvalds@klaava.Helsinki.Fi ( 李纳斯 ? 本尼迪克特 ? 托沃兹 ) 题目:回复“ Linux 是过时的”
日期: 1992 年 1 月 29 日 ,格林威治时间 23 : 14 : 26
组织:赫尔辛基大学
看到这种言论,我想我得有所回应了。先向那些已经听够了对 Linux 系统进行的议论的 MINIX 用户们说声抱歉。我很想能“对诱饵视而不见”,但是……该是我好好地自我辩护的时候了。
安德鲁塔南鲍姆写道 12595@star,cs,vu,niast@cs.vu.nl ( 安德鲁 ? 塔南鲍姆 ) 写道:
> 我在美国待了几个星期,所以没来得及对 Linux 做多少评论 ( 不是说如果我在,我就会说什么 ) 。但是, Linux 确实值得一评。我现在就有话要说。
> 正如你们所知, MINIX 只是我的爱好,每当晚上我写烦了书,如果当时没有什么战争、革命、直播的参议院听政会,我就会摆弄 MINIX 。我的真正职业是大学教授和操作系统领域中的研究人员。
你用这个作为 MINIX 局限性的借口?对不起,但是你输了。我的借口比你的还多,而 Linux 在很多领域还是胜 MINIX 一筹。更别说 MINIX 的大部分似乎是由布鲁斯 ? 伊文斯编写的了。
反驳一:你说你把 MINIX 当作爱好来玩――那么,请问是谁在拿 MINIX 挣钱呢?又是谁在免费发送 Linux 呢?再来谈谈爱好。让 MINIX 能免费获得,我对 MINIX 的最大抱怨就会消失。 Linux 在很大程度上对我是一个爱好 ( 但是一个很严肃的爱好,最棒的一种爱好 ) 。我没有从我的爱好中赚一分钱,它也不是我在大学要修的课程之一。我是纯粹用我自己的时间,在自己的机器上做出来的。
反驳二:你是教授和研究人员。这真是一个 MINIX 出现核心缺陷的好借口。我只能希望 Amoeba 不会像 MINIX 那样垮掉。
>1. 微内核对 Monolithic system 没错, Linux 是 Monolithic 的,我同意微内核是好一点儿。如果不是你的话题有争议性,我可能会同意你的大中分意见。从理论角度 ( 及审美角度 ) 而言, Linux 输了。如果 GNU 的 kernel 在去年春天就已完善的话,我可能就不会开始这个工程。而事实是, GNU 还没有完善,也远非如此。如果现在就已实现的这一点而论, Linux 才大获全胜。
>MINIX 是一个基于微内核的系统。 Linux 是 Monolithic 的系统。
如果这是判断一个 kernel 好坏的唯一标准,你的观点就对了。但你没提到的是, MINIX 在微内核方面的表现并不出色,而且对核内多元任务的操作仍存在着问题。如果我做的是一个在多线文件系统上有问题的 OS 的话,我就不会这么快来责备别人。而事实上,我竭尽所能来使人们忘记软件设计者在此问题上的惨败。 ( 是的,我知道 MINIX 拥有众多黑客支持者,但他们只是黑客。而布鲁斯 ? 伊文斯告诉我有很多可以竞争的机会。 ) >2. 不分界域性
“不会界域性是给那些写不出新程序的人们准备的。”
――我,现在刚说的,口出狂言
事实上, Linux 比 MINIX 更具有分界域性。“你说什么?”我听见你说。是真的――但却不是在你所说的意义上。我使 Linux 尽量符合标准 ( 我当时手边并没有 POSIX 标准 ) 。把程序移植到 Linux 上比到 MINIX 上要容易得多。
我同意,不分界域性是个好东西,但是只有在它确实有意义的地方才是个令人向往的特性。没有必要专门使一个操作系统太具有不分界域性:能粘到可移植的 API 上就行了。操作系统的实质就是利用硬件的特点,并将其隐藏在一层高级的呼叫后面。而 Linux 就是如此,它比任何 kernel 都更多地利用了 386 的特性。当然这便利真正意义上的 kernel 变得不可移植,但是这也使设计大为简化,是一个可以接受的权宜之计,因为这首先保证了 Linux 的诞生。
我也同意, Linux 又太不具有不分界域性了。去年一月我拥有了自己的 386 ,而 Linux 系统的创建在一定程度上成为了一个让我认识 386 的项目。如果要成为一个真正的项目,必须能够在不分界域性方面做一些事情。但是,我最初的设计思想就是没有考虑到不分界域性,如果我这样说并不是太过分地为自己辩护。去年四月我开始这个项目时,认为不会有什么人会真的使用它。我很高兴我的这个想法错了。随着我对源代码的发布,每个人都可以免费来装截 Linux ,哪怕还不是很方便。
李纳斯
附:很抱歉我有时言辞过激。如果你没有其他的操作系统可供选择的话, MINIX 已经挺好的了。如果你有五到十个 386 机器闲着没用,那么 Amoeba 也会不错,只是我确定无疑是没有的。我一般不会勃然大怒,但是在涉及到 Linux 的问题时,我是有点容易感情用事。
在这件事上还有一些口舌,那是我唯一一次发火。但是我要说明的问题是:的确有反对的声音出现,哪怕在早先的日子里 ( 或者我还证明了这一点:当你参加网上论坛时,一定要小心从事,打字错误和语法错误会永远纠缠着你 ) 。
我和李纳斯把家人和朋友留在露营地,开始沿着一条清流的小溪做一次午后散步。我们的露营地是在东西亚拉 (Eastern Sierra) 一个叫格鲁夫尔温泉 (Grover Hot Springs) 的地方。此时是七月四日 国庆日的周末,这里的风光秀美得好像是把《国家地理杂志》上的照片原封不动搬下来似的。“现在是柯达一刻,”李纳斯一边背诵着广告词,一边停下来欣赏着突兀的峭壁背景下铺满野花的草地。随后,我们在溪边坐下。我让他描述一下他的生活,尤其是自从 Linux 越出了其发源地――即由他认识的那些参加新闻讨论组的狂热爱好者组成的小圈子――而广泛地传播开来之后,他的生活有何变化。
“这种感觉一定很棒,”我说道,“那些年你一直跳不出户,除了你的电脑之外只和这个世界保持着仅有的一点点联系。突然间,这个星上的每一个角落都有人认识到你正在进行的伟大工作,你成了这个对你寄予厚望的发展中的 Linux 世界的中心……”
“我从不认为这对我来说是什么大事情,”他回答道,“我真的不认为是这样。对我来说, Linux 确实是那种我随时都在思考的东西,但这主要是因为总有问题需要我去解决。我确实为它投入了很多,但主要是因为它是一个智力的挑战,而不是因为任何感情的因素。
“我喜欢有这么多的人给我从事这个事业的动力,我曾认为自己已接受于完成它了,但我一直没有真正做到这一点。人们始终给我更多继续的理由,以及更多困扰的棘手难是,这使得继续完善 Linux 变得更为有趣。否则,我可能早就干其他事情去了。但我没有,因为这是我喜欢的工作。做这件事充满乐趣。我怀疑,我对自己的大鼻子或其他这方面的事情的提成,显然比在 Linux 上花费的精力还要多。”
几个星期后,在斯坦福购物中心,李纳斯为怎样挑选一双慢跑鞋而犯愁。“你一般每星期跑多少里地?”售货员问李纳斯。李纳斯不由得笑了起来:在过去十年里他还从未 ? 上过一里地。锻炼不是过去的首选功课。但在他感到疲惫的时候,李纳斯承认他愿意走出过度的自我监禁式生活。
“塔芙一定求过你,要你帮我去掉大肚子。”他开着开玩笑,一边拍着自己的肚子。
“告诉她,她的要求你本周内绝不可能达到。”我回答道。
接下来的一个半小时,我们开始在斯坦福校园里兜圈,以便找到一个可以合法停车的地方。然后,在伸展了一下胳膊腿之后,我们开始跑了起来。我们越过干涸的湖里狭窄的泥土小道来到林中,向着我们的目标――山顶巨大的卫星接收天线――前进。当然,我们根本没有跑到那儿。我一边迈着不寻常的轻快步伐奔跑,一边很惊讶李纳斯能够仅仅以一里的距离落在我后面而不被甩开。接着他终于不行了,几分钟后,我们在边的草上上舒展地躺了下来。
“你的家里人对因 Linux 而发生的一切事情的反应是怎样的?”我问道,“他们对此一定感到非常的激动。”
“我不认为有谁真的对此很在意,”他回答道,“我不是说没有人真的关心这件事。但我一直花费我最多的时间在编程序上,这一次也与以前没什么不同,他们不至于为此而有什么更多的关切。”
“那么,你一定曾对你的亲属们说过些什么。比如当你和你爸爸一同出动时,你是否曾对他说:‘嘿,你可能不会相信我一天到晚在计算机上鼓捣的那个玩艺儿现在怎么样了,现在已经有好几百人在用它了……”
“没有,”他回答道,“我只是觉得没有必要与家人和朋友分享这些,我从来也没有想过要把它推荐给更多的人。我想起了在我写 Linux 程序时,拉素曾经决定要买 Xenix , UNIX 的 SCO 系统版 ( 微软开发的用于 PC 机的 UNIX 版本 ) 。我记得他曾经试着劝说我‘不要在这上面犯错误了。’他的意思是叫我不要再继续写下去了。但我不在意他的话,最终,在这个问题上他也有所转变。但对我来说, Linux 仍然不是什么大事情。在我看来,人们使用它固然是好事情,能够从中获得反馈意见也很棒,同时这些却并不是那么重要。我不想传播什么福音。我为人们使用我的代码而感到骄傲,但我从来也没有过要与所有人共同分享它的念头。我从来没有认为这是世界上最重要的事情。我也不认为有几百人用我的软件有任何的重要性可言,以至要告诉我爸爸。不是的,它对我来说更多的是一种乐趣。直到今天我也还是这么认为。”
“那么,你甚至都没有想过告诉你的父母、家人和朋友这些事吗?你自己真的不为这些事情而激动吗?”我问道,没有掩饰我的怀疑。
他沉吟了几秒钟,然后回答道:“我不记得我当时是否感到过激动。”
李纳斯买了一部新车,一部按他的定义很有“乐趣”的宝马 Z3 双座敞篷车,车身是金属蓝,完善的男孩子的汽车颜色。他选中这款颜色是因为没有他所中意的亮黄色。这黄色的宝马,他解释道,“看起来就像尿。”几年来,他去位于圣克拉拉的 Transmeta 公司总部上班时,总是将他的庞蒂亚克车尽可能停在离大门口近的地方。但现在,他却将心爱的宝马车停在他办公室外的窗前,按他的廉洁这样可以停在阴影中避免暴晒。于是,现在李纳斯在电脑前工作时就可以不时地欣赏一下他的新车了。
大约在一年多以前,我们曾经首次在一起外出旅行――开着我特意租来的白色野马敞篷车翻山去圣克塔克鲁兹。在我们这次旅行期间,李纳斯曾停下来观察我们所参观的桑拿浴场和酿酒厂外停着的运动型轿车。现在,我们是在他自己的运动轿车里翻山越岭。当他在十七号公路上驶过弯路时,他脸上浮起微笑。
“你应该得到这些。”我说。
我从车内的储物箱里拿出一摞 CD 。
“听什么?平克 ? 弗洛伊德?”我问道,“或者詹妮斯 ? 乔普林?”
“这是我小时候听的音乐。我小时候从来没有在音乐上花过钱,但我在我家的房间里捡到过它,我猜是我妈妈听过的,尽管我记得她是艾尔维斯 ? 卡斯蒂罗 (Elvis Costello) 的歌迷。”
这是一个周五的下午,一个欢快而美好的加利福尼亚周五的下午,各种令人愉悦的感觉围绕着我们:蓝色的天空映入眼帘,火辣辣的阳光照在身上,鼻子里是山中桉树的芳香和清新空气的甜甜味道,耳中传来的是平克 ? 弗洛伊德的歌声。在外人的眼里,我们看起来一定很像那种后青春期的陈腐过客,涂着防晒霜,放着经典的摇滚曲调。不过,并没有多少车超过了李纳斯的新宝马 Z3 。
我们把车停在圣塔克鲁兹以北一点儿的一号高速公路旁。路旁早停了些普通的车子,我们来到几乎没有什么人的空旷海滩上,舒舒服服地躺了下来。几分钟后, 我从背包里掏出录音机。再一次的,我请他讲一讲 Linux 早期的事情。
李纳斯用手指在沙滩上画了个四方形,表示是他的卧室,然后又指出了他的床和计算机的位置。“我起床的第一件事就是检查有新的电子邮件,”他说道,一边用手指比划着,“有些时候我一整天都呆在屋子里。我看邮件不仅仅是为了看有谁在和我联系,而更多的是为了看是否附带为我准备了些特殊的问题,比如是否出现了新的状况和问题,或者是一些我们已有解决方案的老问题又遇上了新情况。”
李纳斯告诉我,那个时候他的社会生活是“可怜”的。接着他认为这样说听起来有点过分,所以他修正道,“可能比可怜稍微好一点。”
“我并没有成为一个完全的隐士,”他说道,“但是即使在 Linux 出现之后,我一如既往地不善交际。我的大多数朋友都很善于与人相处,但我不行。你可以想象一下,如果从来没有给女人打过电话,那约会的情况会是怎样的呢?所以在那段时间里,我只有几个常到我那里敲窗子、想和我喝杯茶的朋友。我不认为有人会到处传说我正在做一项伟大的事业、我将改变世界之类的话。我不认为有人曾经这么想过。”
李纳斯唯一有规律的社交活动是每周的学生聚会,在这儿他可以和其他主修科学的学生混在一起,这个聚会由一些对技术的热爱胜过一切的人组成。
“什么是我担心的?正是一般的社交活动,也许提成不是一个准确的词汇,但这确实给我带来了很多情绪上的影响。在那个时候,只要一想到姑娘, Linux 系统就变得不再重要了。在某种程度上,今天也还是这样,我仍然可以不把 Linux 当回事。
“在大学的头些年,社会交际对我来说变得非常重要。这倒不是因为担心别人会嘲笑我驼背什么的,这种渴望社会活动的感觉来自于对朋友和别的什么东西的向往。我喜欢去学生聚会的原因之一就是,这是一种无须过分社会化的社交活动。在这样的晚上我融入了社会,而在其他时间我与计算机在一起。在学生聚会里玩远比 Linux 更为感性,我从未为 Linux 感到心烦意乱,也从未因为 Linux 而睡不着觉。
“过去和现在,能够使我心烦意乱的,从本 ? 上讲并不是技术,而是与之相关的社会因素。我为安德鲁 ? 塔南鲍姆的帖子如此心烦的原因,主要不是因为他所提出的技术观点。
“使 Linux 越来越完善和有活力的原因之一是,我不断地收到回馈的信息。这意味着 Linux 被人所注意,同时这也是一个正在形成的社会团体,而我是这个社会团体的领袖。这是一个明确的信号。这一毫无疑问是重要的,甚至比告诉爸爸妈妈我曾做了些什么更重要。我越来越关注那些使用 Linux 的人,至于我创造了一个社会圈子并获得了他们的尊重之类,却始终不是我关心的重点,甚至现在也仍然不是。不过,这确实是一个最重要的事实,也是我对塔南鲍姆的指责如此反应过度的原因。”
太阳已经没入了太平洋,到了该离开海滩的时候了。李纳斯坚持要我驾驶他的车返回――以体验一下这车究竟有多棒。我们要经过一段又长路又多的九号路返回硅谷。
李纳斯告诉我,他与 MINIX 创造者之间的争执,因为变得越来越富于攻击性而不再适于在公众面前进行,最后不得不通过私人电子邮件进行。接下来是几个月的平静。一天,塔南鲍姆给李纳斯来了一个电子邮件,指出在《 Byte 》杂志的背面有一条五行字的广告在推销商业性的 Linux 版本。
“在我最后一次收到的来自安德鲁的电子邮件中,他问我是否真的在授意别人出售我的系统。我回信告诉他是的。然后我就再也没有收到过来自他的讯息了。”
大约一年后,当李纳斯到荷兰去作他的首次公开演讲时,有机会来自塔南鲍姆任教的大学,并希望获得那本改变了他一生的书籍――《操作系统:设计与执行》――的作者在该书上的亲笔签名。李纳斯在门口等了许久,但塔南鲍姆并没有出现,因为那时他恰好外出了。就这样,他们至今仍没有见过面。
在我首次公开演讲的头天晚上,我颤抖着躺在床上。房间里很冷,温度也就刚好在零度以上一点。荷兰的房间不像芬兰那样冬天有暖气,而我这间漏网的大屋子甚至还有一扇大玻璃窗,就好像荷兰永远只有夏天似的。但是,在 1993 年 11 月 4 日 的这个夜晚,寒冷不是使我睡不着的唯一原因。我睡不着,因为我是如此的紧张。
在公开场合讲话一直是我的短项。中学时,他们让我说明一些我们曾吃力地研究过的东西,比如老鼠或其他什么的,而我总是讲不好。我站在那里,说不出话来,然后开始傻笑。说真的,我并不喜欢这样。当我很不情愿地被老师叫到黑板前,当着全班同学解答习题时,甚至比这还要难受。
在阿姆斯特丹附近的埃德市 (Eide) ,我接受了在这里举行的荷兰 UNIX 用户第十五届年会的邀请,将在会上做主题发言。我很想通过这次机会证明一下自己在公开场合的说话能力。在此之前一年,我也曾收到过来自西班牙的类似邀请,但我拒绝了。其实在那个时候,我是非常希望出国旅行的,但我想前往一游的愿望被害怕公开演讲的心理抵消了 ( 我现在仍然喜欢旅行,不过在今天,这已经不像当年那样新鲜了。在那之前,我几乎从未离开过芬兰。那以前我唯一到过的地方就是瑞典,我们在那儿露营过几次,或许还可以算上到莫斯科去看我爸爸那次,那时我才六岁 ) 。
拒绝到西班牙庄旅游一番的机会让我有些懊恼。所以我告诉自己,如果还有第二次这样的机会,我绝不放过。我躺在床上,另外一些思绪渐渐取代了我的回想:我能克服恐惧站在人前吗?我还会像过去一样嗫嚅吗?或者比这更糟,我会在将近四百名来宾面前舔着嘴唇傻笑吗?
要真是那样,我就真是一个不折不扣的傻瓜。
我对自己说些惯常的废话以劝慰自己。来宾都希望我成功,如果不喜欢我的话他们根本就不会来,并且我也很熟悉演讲的主题:在 Linux 的核心产品中采用那些不同的技术决定的理由,以及开放源代码的理由。然而,尽管如此,我还是不能让自己确信演讲会取得成功。我的脑子里像是有一台停不下来的火车引擎一样轧轧作响。
演讲到底怎样?噢,来宾们看到我明显地带着惊慌站在他们面前,把通过 Power Point ――感谢上帝安排微软发明了这种软件――放映幻灯作为敷衍场面的救生工具,并在回答他们的问题时羞涩迟疑,但他们富有同情心地接受了我的表现。
事实上,我的答疑是演讲中最棒的一部分。在我演讲完之后,马歇尔 ? 克尔克 ? 迈克库斯克 (Marshall Kirk McKusik) ――他现在在太阳微系统公司工作――走到我跟前,说他认为演讲很有趣。对这个表示我是如此感谢,我觉得我都想跪下来吻他的脚以示谢意了。在计算机领域里很少有让我尊敬的人,克尔克却是其中之一。正是因为在我第一次演讲后,他对我是如此的友善。
我的第一次演讲就像是在进行休克疗法。接下来我还要遭遇许多类似的状况,但这些经历开始让我变得更自信了。
大卫一直在问我,伴随着 Linux 的不断成长壮大,我的大学生活尤其是精神状况有怎样的变化。但我不记得有任何教授和我谈到甚至是提到过它,我也不记得有谁指着我的背景对他的朋友说:“瞧,这就是那个李纳斯。”没有这样的事情。大学里我周围的人都知道 Linux 这回事,但大多数与其有密切关系的黑客都不是芬兰人。
9 、最后的冲刺
1992 年秋天我成了一名用瑞典语讲授计算机基础课的助教 ( 这事的起因是,系里需要人用瑞典语上基础课,但在这之前的几年里,本系只有两名能讲瑞典语的主修生,拉尔斯和我,他们没有更多的选择,所以找上了我 ) 。真实,我甚至对 ? 上讲台和演算习题都感到担心,但这种情况持续得并不长,靠把注意力集中在讲课内容上并尽力不去自寻烦恼,我战胜了自己的担心。就这样,三年后我晋升为研究班的助教,从此,我的工作不再是在讲台上讲课 主要是在实验室里继续 Linux 的发展完善研究。这可能也预示着一种趋势:有人愿意付酬让我从事 Linux 的研究。这也是我和 Transmeta 之间关系的基础。
大卫:“那么, Linux 是在什么时候开始成为一件大事情的?”
我:“它到现在为止也还不是。”
也许我说得太绝对了?好的,我可以作一点修正,在有许多人毋庸置疑地依赖着 Linux ( 作为他们计算机的操作系统 ) 而不是把它当作玩具式的操作系统的情况下,它确实变得更像那么一回事了。当他们开始不再只是把它作为修修补补的玩意之后,我就认识到,如果出了什么问题的话,我就要对此负责任。或者说,我至少在精神上感到了某种责任感 ( 至今还是如此 ) 。在 1992 年, Linux 从一个更像是游戏的玩意变成了一些人生活中不可或缺的一部分,成为他们的生计和生意。
变化发生在 1992 年春天。过了大约一年半后,当第一个 X 视窗系统在 Linux 条件下运行时,我开始着手进行终端仿真。它意味着这个操作系统将有能力支持一个图形用户的界面,而用户也可以在多视窗条件下工作。这个工作应该归功于麻省理工学院的 X 视窗项目 (X Windowing Project) 。这个工作的完成将带来一个很大的改变。我还记得在此之前的大约一年半,我还和拉尔斯开玩笑,说总有一天我们会完成一个在 Linux 下运行的 X 系统。但我绝没想到这一天这么快地来到。一个名叫奥瑞斯特 ? 扎布罗斯基 (Orest Zborowski) 的黑客能够把 X 视窗装载到 Linux 上去。
对于我们有了图形用户界面的事实,我有一个短暂的适应过程。在最初的一年里我甚至都没有把它作为通常的运行环境,但是现在我简直不能没有它了,在我工作时总是同时开着许多窗口。
奥瑞斯特的贡献不仅使我们有了窗口,同时它还打开了通向未来的大门。 Domain Socket 可以用于能够支持 X 视窗系统运行的本地网络,但我们可以指望这些同样的套接字 (Socket) 能让 Linux 有能力跳出本地网络,而可以异地连接计算机。没有网络化的功能, Linux 只能对那些从不上网或只是在家拨号上网的人还有点用。
靠着极大的乐观主义精神,我们开始在这些新颖的套接字上开发 Linux 的网络工作功能,哪怕这些套接字本来完全不是为网络工作而设计的。
我相信这很容易做到。我们有一个关于版本发表的编号进度表,原计划是在 1992 年 5 月发表 0.13 版,由于有了恰当的图形用户界面,我感到我们对一个完整、可靠并且支持网络工作的操作系统这一既定目标有了 95% 的把握,所以我把将要发表的新版重新命名为 0.95 版。
嘿,我是不是很天真?请不要提到这个让我难堪的话题。
网络功能的开发让人很厌烦,我们花了差不多整整两年的时间去完成它,以形成一个可以发表的东西。当要加入网络功能时,突然之间所有的新问题都冒了出来,全都与安全问题有关。你不知道谁在旁边,也不知道他想要干些什么,你不得不足够小心地防备恶意的垃圾邮件对你的系统的攻击;同时,也再也不能完全控制有人想和你的系统连接的企图了。此外,许多人使用着不同的网络设备,依靠 TCP/IP 网络通讯协议这样的网络工作标准,很难让所有的超时 (time-outs) 正确。这些问题看起来好像要一直久拖不决下去。
到 1993 年末,我们大致上有了一个网络工作能力的解决方案,尽管部分人还很难让它正常地工作。我们还不能在没有 8-bit boundaries 的情况下解决网络问题。
我过分乐观地将新版本定名为 0.95 版,而不甚乐观的实际情况却将这种乐观变成了一种束缚。又花了我们将近两年的时间, 1.0 版才得以问世。在此期间,我们仍然需要不停地发布各种有关瑕疵修和添加功能的新版本。但在 0.95 和 1.0 之间,却没有那么多的数字可以作为序号,这让我们着实有些疯狂。等到 0.99 也用过之后,我们只好在它后面加上数字以简要表示附加的序列,接着又开始依靠字母来表示,比如 0.99 版第 15A 次后面紧接着 0.99 版第 15B 次, 0.99 第 15Z 次是最后一个以此方式命名的版本,因为,原本应该命名为 0.99 版第 16A 次的版本正是我们已经完成了的 Linux 1.0 版。
1994 年 5 月,新版本终于在赫尔辛基大学计算机科学系的礼堂里闪亮登场。现在回过头去看,完成这一版本的过程完全可以说混乱不堪的。
但是,没有任何东西可以阻挡 Linux 的普及。我们有了自己的讨论组,取名为 comp.os.linux ,这是一个从我和安德鲁 ? 塔南鲍姆激烈战斗的劫后灰烬中诞生出来的小团体,一个极具吸引力的游牧部落。当时,还或多或少地主导着互联网的 Internet Cabal ,每月都会针对每个讨论组吸引了多少读者发布一个非官方的统计报告,尽管这不是一个可以完全依赖的统计报告,但却是你可以找到的有关你的站点――在这里是指有多少人对 Linux 感兴趣――的普及程度的最好的参考信息。 Alt.sex ( 一个著名的性问题网站,以另类性爱为其诉求――译注 ) 站点那时是最受欢迎的 ( 不过我对它并不热衷,我确实上过它一两次,不过是为了看看它吸引人的究竟是些什么玩意罢了。我更像是你那种类型的清心寡欲者。我宁愿和我的浮点处理器呆在一起,也不愿参与到 alt.sex 上那些热门话题中去――什么最新的做爱姿势啦,以及什么关于深度爱抚者们的报告之类 ) 。
通过 Cabal 的月度统计,我可以很方便地追踪我们两个讨论组 (comp.os.linux.) 在网上的声望。而事实上我也确实做了这样的跟踪 ( 虽然我可能是一些人心目中民于向强势挑战的英雄,但我却从来也不像那些糊弄人的新闻所表达的那样,是一个只知道科技的无私和利他主义的孩子 ) 。到 1992 年秋天,我们的讨论组成员估计已经超过万人,这里面有些人只是加入到讨论组来自自到底发生了些什么,而并不是 Linux 的使用者。每个月的统计结果出来的时候,首先提供的是一个普及率排名前四十名的讨论组的简要报告,如果你的讨论组没有挤进前四十名的话,你可以从另一个地方取得在这四十名之外的其他讨论组的完整报告,而我当时就不得不经常这样做。