1.1.2 Linux操作系统的诞生和版本的变迁
1981年IBM公司推出著名的IBM PC微型计算机。此后十年间,MS-DOS操作系统一直是微型计算机上的主宰。在这一阶段,硬件价格虽然逐年下降,但软件价格仍然居高不下。当时另一个阵营是UNIX世界。为了寻求高利润,UNIX经销商将价格抬得极高。一度受到贝尔实验室许可而可以在大学中用于教学的UNIX源代码也一直被小心地守卫着不许公开。正在此时,出现了MINIX操作系统,并有一本详细描述其工作原理的书可供参考。于是几乎所有计算机爱好者都开始阅读此书。其中也包括Linux系统的创造者Linus Benedict Torvalds。
在1990年,20岁的Linus是芬兰赫尔辛基大学计算机系的二年级学生,也是一个自学的计算机黑客。为了学习计算机知识,Linus用当年圣诞节得到的压岁钱和贷款,购买了一台386兼容计算机,并从美国邮购了MINIX系统软件。在等待MINIX软件期间,Linus认真研究了80386的硬件知识。为了能通过Modem拨号连接到学校的主机上,他使用汇编语言并利用80386 CPU的多任务特性编制出一个终端仿真程序。为了将自己的一台老式计算机上的软件复制到新计算机上,他还为软驱、键盘等一些硬件设备编制出驱动程序。
通过编程实践,并在学习过程中认识到MINIX系统的诸多限制,Linus开始有了编制操作系统的想法。此时GNU计划已经开发出许多工具软件,其中最受期盼的GNU C编译器已经出现,但GNU的操作系统HURD仍在开发中。而MINIX也有了版权,需要购买才能得到源代码。对于Linus来说已经等不及了。从1991年4月份起,他通过修改终端仿真程序和硬件驱动程序,开始编制起自己的操作系统来。根据Linus在comp.os.minix新闻组上发布的消息,我们可以知道他逐步从学习MINIX系统阶段发展到开发自己的Linux系统的过程。
在他回答有关MINIX的一个问题时,所说的第一句话就是“请阅读源代码”。他认为答案就在源程序中。这也说明了对于学习系统软件来说,不仅需要懂得系统的基本工作原理,还需要结合源代码,学习系统的实现方法。因为理论毕竟是理论,其中省略了许多细节,而这些细节问题虽然没有太多的理论含量,但它们是一个系统必要的组成部分,就像麻雀身上的羽毛。
第一个与Linux系统有关的消息是Linus在1991年7月3日在comp.os.minix新闻组上发布的,其中透露了他正在进行Linux系统的开发,并且在最初的Linux内核代码中,Linus就已经为Linux与POSIX标准的兼容性做好了准备。在0.01版内核/include/unistd.h文件中就已经定义了几个POSIX标准要求的常数符号。在相关注释中,Linus写道:“OK,这也许是个玩笑,但我正在着手研究它呢。”到1991年的10月5日,Linus在comp.os.minix新闻组上发布消息,正式向外宣布Linux内核系统的诞生(Free MINIX-like kernel sources for 386-AT)。这段消息可以称为Linux的诞生宣言,并且一直广为流传。
Linux从诞生到1.0版正式出现,发布的主要版本见表1-1。
表1-1 Linux内核的主要版本
(续)
将Linux系统0.13版内核直接改称0.95版,Linus的意思是让大家不要觉得离1.0版还很遥远。同时,从0.95版开始,对内核的许多改进工作(补丁程序的提供)均以其他人为主了,而Linus的主要任务开始变成对内核的维护和决定是否采用某个补丁程序。在本书写作时,最新的内核版本是2003年12月18日公布的2.6.2版。包括约15000个文件,使用gz压缩后大小也有40MB左右!