刘娜
提起Linux和Linus这两个名字,在开源世界谁也不会觉得陌生:一个是这些年迅速成长的、开放源码的网络操作系统;一个是此系统的创始人——Linus Torvalds,一名芬兰的计算机天才。很多人都知道Linux是Linus在大学时代就尝试着编写出来的一个OS,但他们是怎样相伴着成长起来的呢?
用外公的计算机走进编程世界
Linus于1970年12月28日出生于芬兰的首都赫尔辛基。Linus说:“我孩提时代最幸福的记忆就是玩我外公的一台老式电子计算器。”他的外公Leo Waldemar Tornqvist是赫尔辛基大学的一位统计学教授,可以说正是他外公的电子计算机器奠定了他将来的计算机之路。
大概是在1981年,Linus的外公抱回来一台崭新的Commodore VIC-20计算机。由于他已经在那台老计算器上玩过好长一段时间,所以见到新的计算机时特别兴奋,并且迫不及待地想试一试。VIC-20是最早的家用计算机之一,它不需要自己组装,只须把它和电视连接上,打开便可开始工作,电视屏幕的上方会显示出“已准备好”的字样,然后是一个一闪一闪的光标,等着操作员开始操作。
当时在个人计算机上没什么可做的事情,尤其是开发商业程序的条件并不具备,能做的惟一的事情就是在它上面用BASIC语言编程序。
当赫尔辛基的孩子们都在和他们的父母在树林子里玩曲棍球和滑雪时,Linus却在琢磨在电脑上怎样工作。当时已经有一些程序能把人们可读的数码转换成电脑看得懂的0和1,但他并不晓得有这样的程序,于是他就开始用数字形式编写程序,然后再用手工进行转换。这就是用机器语言编程序。当对一切细节都能够加以控制时,他就开始思索,如何能在更小的空间里让事情做得更快一些。就这样,12岁、13岁、14岁过去了。其他孩子在外面踢足球的时候,Linus却觉得外公的电脑越来越有意思。
当Linus对VIC-20玩得已经很精通后,便开始攒钱想买一台下一代的电脑。他利用积攒的一些圣诞节和生日的压岁钱、打工赚来的钱、奖学金及从爸爸那里借来的钱,一共2000美元买了他的第二台计算机——Sinclair QL。
Linus使用了三年Sinclair QL计算机:从高中到赫尔辛基大学,再到芬兰部队服役。这三年中,他尽情地遨游在别的孩子都不了解的计算机世界中,编写了一些可以提高计算机能力的小程序,如能够快速显示内容的编辑器等,还翻版了一些小游戏。
“探究计算机工作原理的过程,是吸引我走进编程世界的最初原因。在这其中获得的最大的乐趣在于我认识到了计算机科学与数学的类似,你必须从该体系自身的规则出发,推演出整个世界。在物理科学中,你被客观规律所束缚。但是在数学和编程中,只要能合乎逻辑地推演就可以成立,思考数学问题不会受到客观世界的逻辑的限制。数学只是逻辑自洽的符号体系。”Linus这样说道。正是深入地研究计算机,才使他与计算机世界如此有缘。
Linux操作系统闪亮登场
Linus在赫尔辛基大学学习了一年之后,就到部队服兵役。当Linus从军队服役归来后,继续在赫尔辛基大学学习。当时,大学刚刚为微型VAX电脑购买了16个客户执照,并运行Unix系统。Linus对Unix产生了浓厚的兴趣。1991年1月2日,他手里攥着在圣诞节和生日得到的钱,做出了一个重大的财政决定:准备购买一台价格18000芬兰马克的计算机。这差不多等于3500美元。但他没有这么多钱,所以打算首付三分之一,剩下的用赊账方式来付。其实那种电脑的价格是15000芬兰马克,其余的3000马克税款可在三年之内付清。 他订了一台具有4MB内存和33MHz CPU的机器。商店老板让他三天后去提货。Linus后来回忆说说:“那三天就像过了一个礼拜”。这台电脑有一个DOS操作系统,他想使用Unix的变体Minix,所以订了货。然而这个操作系统需要等一个多月的时间才能到达芬兰,它的价格是169美元,还要加上税和其它费用。
此后,他就如获至宝一样研究Minix。那时Linus还认识了Richard Stallman,了解到了GNU、GPL等概念。他还读了Andrew S. Tanenbaum写的《操作系统:设计和执行》。Linus使用了一段Minix后发现,这个系统的仿真终端做得不是很好,于是就自己动手编写终端仿真程序。这也是他深入分析此类OS,以致后来能够写出Linux的重要一个因素。实际上,这也就是Linus创造Linux的开始。
操作系统是计算机的所有功能的基础,创造一个操作系统则是最终的挑战。 创造操作系统,就是去创造一个所有应用程序赖以运行的基础环境。从根本上来说,就是在制定规则:什么可以接受,什么可以做,什么不可以做。事实上,所有的程序都是在制定规则,只不过操作系统是在制定最根本的规则。
Linus用他的终端仿真器(Terminal Emulator)经常登录到大学的计算机上,查阅电子邮件和参加Minix讨论组。但是,他还想下载和上传东西,也就是必须能向磁盘里保存东西。为此,他又开始编写磁盘驱动和文件系统驱动。Linus没日没夜地伏在计算机前工作。芬兰4月到8月是一年中最美好的时光,人们爱到布满小岛的海上航船,去海滩上晒日光浴,到夏日小木屋中消闲。而Linus却不知哪一天是周末,哪一天是工作日。外壳程序成功之后,他又开始检验其中的内装程序。接着编了足够的新程序,用了Minix中所有有用的东西。当Linus把外壳程序移到一个新的操作系统所建的特别区域中时,他开始把这个操作系统称为“Linux”。
对于Linux这个名字的由来,Linus坦率地说:“我一开始并不想把它以Linux的名称发布出去,因为那显得我太自我为中心了。那么我为最终发布起的名字是什么呢?Freax(Freaks的变形,该词为“异想天开”之意)。 事实上,在一些早期完成的文件中,即那些说明如何汇编源代码的文件中,有将近半年的时间我一直使用Freax这个名称来指代这个操作系统。”。
1991年9月17日,他将Linux系统上传到了网上。版本号为0.01,意思是离1.0版本还远着呢,还有许多地方需要完善。突然间,人们纷纷从Minix转向Linux。那时Linux尚不能胜任Minix的所有工作,但是它可以做人们需要的大部分的重要工作,并且它拥有一项人们特别喜欢的功能:有了page-to-disk就可以运行超过内存的巨大程序。当时,Linus并没有向使用他的系统的人收费,因为他觉得与收到的钱相比,更喜欢收到明信片。“我不仅仅是在与别人分离我的成果,别人也将会觉得我的工作是有用的”。这就是Linus开放源代码的初衷,他并不想别人买下Linux。
作为版权所有者,他定下了以下关于Linux的规则:
1.人们可以免费使用该操作系统,但不得将它作为商品。
2.对其所作的改动和改进,必须以源代码的形式将其公开(而不是二进制,这是不公开的)。
3.如果不同意以上规定,则无权对它进行复制或从事任何行为。
变化发生在1992年春天。当第一个X-Window系统在Linux条件下运行时,Linus开始着手进行终端仿真。它意味着这个操作系统将有能力支持一个图形用户的界面,而用户也可以在多视窗条件下工作。这个工作应该归功于麻省理工学院的X视窗项目(X Windowing Project),它的完成将带来一个很大的改变。
到1993年末,Linus和他的开发小组有了一个网络工作能力的解决方案,尽管部分人还很难让它正常地工作。Linus乐观地将新版本定名为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推动开放软件运动
1995年出现了各种各样的Linux的版本,并且商业性的Linux软件公司吸引了更多的追随者。此时,一个波士顿的投机分子将Linux登记为注册商标了。不仅如此,他还向《Linux杂志》和其它一些Linux商业软件公司发出了电子邮件,要求这些机构将他们收入的5%作为提成支付给他。 当Linus听到这个消息时,感到一阵刺痛。Linux社区的所有人都想要将注册商标夺回来。于是Linus成了Linux注册商标的所有人。
作为Linux商标的持有人和Linux系统的核心支持者,Linus体会到一种与日俱增的责任感。“我深感与日俱增的责任来自于这样一个事实:成千上万的人如今正依赖着Linux,并且,巨大的压力使得尽可能令人依赖的工作变得确定无疑。对我来说,重要的是协助公司来理解开放源代码究竟意味着什么。”
开放源代码在1998年吸引了全世界的目光,最大的争议之一就在于其名字本身。在此之前,已有了诸如GPL所许可的“自由软件”。这一用法源于“自由软件基金会”(Free Software Foundation),该基金会由Richard Stallman于1985年为促进自由软件工程而创立,比如GUN和由他发起的自由Uinx(Free Unix)。最终Linus和他的小组达成了一致意见:“比起‘free’来,我们更愿意使用‘open’(开放)一词。”从此,自由软件运动变成了开放软件运动。
很多人对Linux为什么使用企鹅作为风靡全球的形象标识很感兴趣。Linus要找出一个优雅的、有亲和力的东西来做标识。他的妻子塔芙说:“我就想到了企鹅。Linus在澳大利亚的时候曾被一只动物园里的漂亮企鹅咬了一口。他喜欢逗弄小动物,总是爱把手探出去。那些企鹅大概有一英尺高,他刚好能把手探到笼子那儿摸着它们。他晃动着手指,扮成鱼的样子。企鹅被招了过来,咬了他一口:咳,这口感可不像是鱼。他虽然挨了企鹅的咬,可还是喜欢它们。我觉得他这辈子跟企鹅是没完了,只要一有机会,他就非去看企鹅不可。所以,当他在为找个标识而大伤脑筋的时候,我就提醒他,‘你这么喜欢企鹅,为什么不用企鹅来做标识呢?’”然后,Linus开始在网上征集企鹅的图片。他选中的是德克萨斯A&M大学科学与计算机系里的一位画家的图片。
Linux给大众带来了巨大的好处。年轻一代中许多聪明、卓越的年轻人在使用Linux产品,正是Linux才激起了这一代人的狂热。有一个很明显的现象是,无论是开放源代码的理念还是Linux操作系统都在各大学里赢得了最广泛的支持,其原因之一就是,青年学子们大多都抱有对主流与权威的逆反心理。
Linux正在世界各地茁壮成长,全世界的各个角落里有无数为Linux的发展而战的人,Linus只是其中的一个。他们在为Linux而战,在为开放软件而战。