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。从一开始,增加 pageto-disk 就使 Linux 在竞争中脱颖而出。 那是 Linux 起飞的开始。 突然间,人们纷纷从 MINIX 转向 Linux。那时 Linux 尚不能胜任 MINIX 的所有工作,但是它还是可以做人们真正需要的大部分重要的工作。而它拥有一项人们特别喜欢的功能:有了page-to-disk,你可以运行超过你内存的巨大程序。这意味着,当超出内存之后,你可以将一块旧的内存存到磁盘上,要记存到了哪儿,仍然使用那块内存来解决你的问题。这在 1992年的第一个星期是一件不寻常的事。 正是那个月,Linux 的用户从我知道名字并与其有邮件往来的五到十个人,增加到了成百上千我不知是谁的人。我并不认识每一个 Linux 的用户,这多有意思。
本书评论