我们有了一个给发布的内容编号的协议。它其实只有心理意义。如果我认为自己的东西已经完善,我愿意将其定为1.0版本,而在此之前,我
给出的编号就表示出距离1.0版本还有多远的距离。所以,我将上传发布的那个版本的操作系统定为0.01版,让大家知道它离最后完善还有很大
的距离。
对了,我想起了上传那天的日期:1991年9月17日。
我想只有一两个人看了我的作品。因为他们必须先费事地安装一个特殊的编译器,准备一个空间以便导入并汇编我的指令,然后却只能运行
一个外壳程序。
基本上,运行外壳程序就是这个版本所能做的一切。它也可以把源文件打印出来,大概有一万行――如果字体小一点的话,大概不到一百页
纸(而现在大概要有一千万行了)。
我发布这一操作系统的主要原因之一,是要证明我此前并非在说大话,而是我确实有所作为。在互联网上,说话没有太多责任。不管你做什
么,不管是操作系统还是性,太多的人在这个计算机的虚假空间里弄虚作假。所以在告诉了那么多人你在发明一个操作系统之后,能够这样
说真好:
“瞧,我真的做出了点什么。我没有在骗你们。这就是我所做的……”
6、Linux有了用户
哦,阿里?莱姆克,是他为我把这个系统上载到FTP地址上铺平了道路。
他极不喜欢Freax 这个名字。倒喜欢我当时正在使用的另一个名字――Linux,并把我的邮件路径命名为pub OS/Linux。我承认我并没有太坚持。
但这一切都是他搞的。所以我既可以不惭愧地说自己不是那么以个人为中心,也不得不承认自己并非完全没有自我意识。并且我认为,这是
个不错的名字。
如上所述,我的操作系统并非很有用。比如,如果储存太多的东西,或仅仅是因为不小心,系统就会马上崩溃。而哪怕你并非不小心,如果
让它运行时间稍长一点,也会崩溃。但是在那个阶段,它并不是给人运行的,而是让人看的。对了,是让人仰慕的。
所以它只是为给少数几个热衷于开发新的操作系统的人分离的。他们都是非常迷恋技术的人,甚至是技术迷当中的特殊兴趣小组。
他们的反应无一例外是积极的,但是这是一种“它要是能这样或那样就更好了”的肯定态度。或说:“看起来倒是挺酷,但是在我的电脑上
根本就转不起来。”
我记得一个人在邮件中写道,他真的很喜欢我的操作系统,并用了至少一大段文字来描绘它的好处。接着他说我的系统吃掉了他的硬盘,而
我的磁盘驱动程序则是“又娇气又脆弱”之类的。他丢失了他先前所有的文件,但他还是对我的操作系统持积极支持的态度。读这样的邮件
很令人感动。事实上是一个软件“臭虫”毁了他的文件系统。
我的就是这种反应。我修补了几个程序上的瑕疵,包括那个当内存用完时就会死机的漏洞,而且还取得了一个,经GCC编译器装载到操作系
统上,这样我就可以编写小的程序了。这也意味着使用者在运行这个操作系统之前不必先导入我的GCC编译器了。
你是否渴望回到那样的时代,当男人像男子汉并且能自己编写驱动程序?
――Linux0.02版本的上载宣言
十月初我发布了0.02版,包括了几个对瑕疵做的补丁程序和一些增加的新程序。十一月我又发布了0.03版。
我本来可能会在1991年底之前就洗手不干了。我已经做了很多自认为有意思的事。并非一切都绝对圆满,但在软件世界中,一旦你已解决了最
根本的问题,兴趣就容易很快地消失。我也是那样。解决软件中存在的小问题并不是什么吸引人的工作。但接下来发生了两件让我继续下去
的事,第一:由于失误,我破坏了我的MINIX分区;第二,人们不停地传给我反馈的意见。
那时,我在导入Linux时仍要把MINIX作为主要的开发环境。我在Linux系统下做的大部分事只是这我写的终端仿真器从学校的电脑上读邮件和
新闻。
学校的电脑总是很难登录,所以我编了个可以自动拨号的程序。但是在十二月时,我本想自动拨devtty1――这是系列电话线,但却错误地拨成
了devhda1,既硬盘分区,结果是我无意中覆盖了保存的MINIX中最重要东西的空间。是的,这也就意味着我不能再进入MINIX的环境了。
那就是我要做出抉择的一刻。
我可以重新装入MINIX系统,或者也可以将错就错,自认Linux已是足够的好,以至不再需要MINIX了。我将通过在Linux下编程来编译Linux,而
只要我觉得需要MINIX中好的功能,我就把这些MINIX的优点编到Linux中。无疑,这是观念上重要的一步,因为你要摆脱原有的系统环境,使
新的系统真的能够自我包容。这一步十分重大,因此我将十一月底发布的版本命名为0.10版。几个星期之后,就升级到了0.11版。
正是从那时起,开始有人使用这个系统并可以用它来做一些事了。
到那时为止,我已经修补了一系列的漏洞。但没有人向我提出新的建议。我记得为了满足更多存储的需要,我曾出过门,并将机器的内存从4
兆升级到8兆。我还出去买了个浮点协同处理器(floating point co-processor),因为人们开始问我Linux是否能支持他们的浮点协同处理器。这个附
加硬件使我的电脑能执行浮点运算(floating point math)。
我记得是在十二月,德国的一个计算机只有2兆内存却试图汇编Kernel的家伙,他也不能运行GCC,因为那时的GCC需要1兆以上的内存。于
是,他问我Linux是否能用一个无需太多内存的较小的编译器来进行汇编。尽管我并不需要这个特别的功能,但我仍决定要为这个家伙实现这
种功能。接着就出现了那个称为page-to-disk的东西,这就意味着尽管他只有2兆的内存,他也可以通过使用这个存储盘使他的电脑看起来宽敞
一些。那是在1991年圣诞节前后。我记得曾在12月23日那一天加班加点,努力使page-to-disk运行。到了12月24日,它已经可以在某种程度上运行
了,但是每隔一会儿就死机。最后到12月25日,也就是圣诞节那天,它终于成功了。这可以说是我为满足别人而不是为自己的需要而增加的第
一项功能。
而我也为此感到很骄傲。
Linux的用户天天都在增加,我也不断接到来自我曾向往的国度的电子邮件,包括澳大利亚和美国。关于此事,我在祖母家的圣诞聚会上对家
人只字未提。不要问我为什么,我只是觉得没有必要和我的父母、姐妹或任何亲戚讨论这件事。他们不懂计算机。至少,我认为他们不懂计
算机。
就他们而言,我每天干的事就是把电话线连到调制解调器上。当时的赫尔辛基,电话费在夜间可以打很多折,所以我在家的大部分工作都在
深夜进行。但偶尔也会一整天地连在电话线上。我本想另接一条电话线,但是我母亲的公寓所在的大楼十分古老,没有额外的电话线,也不
打算增加新的。那时我妹妹萨拉除了在电话上聊天之外也是无所事事,至少在我看起来是这样。所以我们会偶尔为抢电话线打架。真的会打
起来。她和朋友打电话时,我会强行用“猫”拨号,她就会听到“嘀――嘀――”的声音。这自然会打断她,而她也就知道我确实、确实要
上网收电子邮件了。
我可没说过自己是世界上最好的哥哥。
Page-to-disk是一个相当庞大的程序,因为它是MINIX没有涉及到的东西。该程序出现在0.12版中,于1992年1月的第一个星期发布。人们马上开
始不仅仅把Linux和MINIX相比较,而且开始和Coherent相比。后者是由TK开发的小型UNIXclone。从一开始,增加page-to-disk就使Linux在竞争中
脱颖而出。
那是Linux起飞的开始。
突然间,人们纷纷从MINIX转向Linux。那时Linux尚不能胜任MINIX的所有工作,但是它还是可以做人们真正需要的大部分重要的工作。而它拥
有一项人们特别喜欢的功能:有了page-to-disk,你可以运行超过你内存的巨大程序。这意味着,当超出内存之后,你可以将一块旧的内存存到
磁盘上,要记存到了哪儿,仍然使用那块内存来解决你的问题。这在1992年的第一个星期是一件不寻常的事。
正是那个月,Linux的用户从我知道名字并与其有邮件往来的五到十个人,增加到了成百上千我不知是谁的人。我并不认识每一个Linux的用
户,这多有意思。
7、Linux能换来金钱吗?
那时,互联网上正有一个恶作剧在盛行。
据说有一个叫克雷格的可怜男孩得了癌症,正在死亡线上挣扎,而在网民中则流传着一个连锁邮件,让人们向这个男孩邮寄明信片以表示对
他的支持。实际上这是某人的一个恶作剧,可能根本就没有克雷格这么个人,更别提什么癌症了。但是这一呼吁竟招来了上百万张明信片。
所以我半开玩笑寺要求使用Linux的人给我寄明信片,而不用给钱。这像是一个人们会感叹“哦,上帝,又是一个要明信片的家伙!”的玩笑。
在那时的个人电脑世界中,有一个有关软件共享的牢固传统。你下载了一个程序,就应该给作者寄回十块钱左右的回报。所以我收到了很多
邮件问我是否要人们给我寄三十块钱。就是在这种情况下,我觉得必须说点什么了。
现在回想起来,我觉得那些钱一定会很有用的。我已欠了大约五千美元的学生货款,同时每个月要为我的电脑支付约五十美元。我另外的主
要消费是比萨饼和啤酒。但是由于开发Linux,我那时没有时间外出,最多每周出去一次。我不花钱约女孩子,把钱都花在了为我的电脑增加
硬件上。也许要是换一个人,就会向大家要钱了,哪怕是为了减轻他那日夜辛苦劳动的单身母亲的负担呢?唉,我那时却没有想到这一点。
去告我吧!
那时,我更想知道都有哪儿的人在使用Linux。与收到钱相比,我更喜欢收到明信片。事实上,明信片确实在滚滚而来,从新西兰、从日本、
从荷兰和美国。萨拉曾偶尔象征性地去取取信,突然意识到那总和他争吵的哥哥竟有来自那么遥远的朋友。那是她第一次认识到,在我总是
占用电话线的时间里,我可能是在做一件会很有用的事情。那些明信片加起来足有几千封,但它们现在早已不知去向了,一定是在我某次搬
家时丢掉了。我的朋友艾温坦说,我是他所见过的最不怀旧的人。
实际上,我不要钱还有很多原因。在最初发布Linux的时候,我觉得自己是在沿着几个世纪以来的科学家们和其他学术界人士的脚印在前进,
而他们的成就往往建立在别人所打下的基础上――用牛顿的话来说,我是站在巨人的肩膀上。这样做,我不仅仅是在与别人分离我的成果,
别人也将会觉得我的工作是有用的。我还想听到反响(当然,是想听到赞扬)。朝那些可能会帮助我改进工作的反馈信息要钱是没有 。我想,
如果我不是长在芬兰,我的态度会不完全不同。在芬兰,只是一个人稍微显露出一丝贪心的迹象,人们就会视之为可疑而不会羡嫉(自从诺基
亚电话公司开始赚整个世界的钱并充实了很多芬兰人的钱包之后,这一点已经有了一些变化)。并且,对了,如果我不是在顽固的学究祖父和
共产主义立场的父亲影响下成长起来的话,无疑我会对这件不要钱的事持不同态度。
无论如何,我不想把Linux卖掉,我也不想失去对它的控制权。也就是说,我不想别人把它买掉。早在九月上传每一个版本时,我就在有关复
制的文件中表明了这个版权声明。根据十九世纪的波恩公约,除非你将其出卖,你拥有自己所创造的一切东西的版权。作为版权所有者,我
开始定下了以下关于Linux的规则:
1、 人们可以免费使用该操作系统,2、 但不3、 得将它作为商品。
4、 对其所作的改动和改进,5、 必须以源代码的形式将其公开(而6、 不7、 是二进制,8、 这是不9、 公开的。)
10、 如果不11、 同12、 意以上规定,13、 则无权对它进行复14、 制或从事任何行为。
你不妨自己设想一下。你为这个程序倾注了六个月的心血,你希望它是有用的,并且自己也能从中有所收获,但你肯定不想让它白白被人占
去便宜。我想让大家都能够看到它和使用它,同时也可以随意对其进行改动和改进。但是,我也希望能确保我自己可以及时了解他们做过哪
些改动。我希望自己有权使用源程序,这样,假如别人做了什么改进,我也可以利用它。我认为,要使Linux发展成最完美的技术就必须保持
它的纯洁性。如果有铜臭渗透进来,事情就要变黑暗了。所以,如果不让钱的问题掺和进来,就不会有贪欲的参与。
尽管我没兴趣拿Linux去赚钱,但别的人却不这么认为,他们在给别人一份已经下载到软盘上的拷贝时都要索取回报。到了二月份,参加UNIX
用户会议的人,几乎人人手上都有一张装有Linux系统的软盘。这些人也问我,他们能不能把Linux作为商品出售,比如说,只要五块钱,为的
是收回软盘和时间上的成本。这听起来还有点道理,但问题在于,这样做就会侵犯了我的版权。
显然,我已经到了反思“Linux是非卖品”这一立场的时候了。
那时,Linux已经在网上引发了很多讨论,这使得我很自信,再没有人能够窃取我的劳动成果了――而这曾经是我最大的担忧。至少,假如真
有谁这样做了,他也难逃众人的谴责。如果有人想篡夺Linux并将其变为一个商业项目,必将会在网上掀起黑客的反对潮,会有无数黑客似的
人物大声斥责道:“嘿,那是Linux,住手。”当然,措辞可不会如此文雅。
事情的发展已经势不可挡:世界各地的黑客们每天都在共同分享彼此提出的修改建议。
我们正在集体创造一个最好的操作系统,这种发展轨道已经不可改变。正因为如此――因为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限制人们对其进行修改。从实用的角度来说,这不啻是一个灾
难。使用者哪怕为了得到一个可使用的系统都要经过多个步骤,这真是太不实用了。