1.2 Linux发展简史
1.2.1 Linux和Linus Torvalds
也许很多人会不屑地说,Linux不就是个操作系统么?错!Linux不是一个操作系统,严格来讲,Linux只是一个操作系统中的内核。内核是什么?内核建立了计算机软件与硬件之间通信平台,内核提供系统服务,比如文件管理、虚拟内存、设备I/O等。Linux内核是由Linus Torvalds(见图1-3)于1991年10月在芬兰赫尔辛基大学发布的。
图1-3 Linux内核编写者:Linus Torvalds
Linus Torvalds于1969年12月28日出生在芬兰的赫尔辛基。当Linus十岁时,他的祖父,赫尔辛基大学的一位统计教授,购买了一台Commodore VIC-20计算机。Linus帮助他祖父把数据输入到他的可编程计算器里,做这些仅仅是为了好玩,他还通过阅读计算机里的指令集来自学一些简单的BASIC程序。当他成为赫尔辛基大学计算机科学系学生的时候,Linus Torvalds早已经是一位成功的程序员了。
1991年,在学习了一套UNIX和C的课程之后,Torvalds购买了他自己的PC。出于对操作系统MS-DOS很不满,他开始对Minix(一个名为Andrew S. Tanenbaum的荷兰教授所开发的以教学目的的类似UNIX的操作系统)感兴趣起来。Minix是为在英特尔8086微处理器上运行而设计的,并且有可以用于研究的源代码。此后,Torvalds决定开发一个优于Minix的操作系统,后来被人们称为Linux(Linus’ Minix的缩写)。
随后,Linus Torvalds不但没有保留这个程序的版权,反而在因特网上公开了它的源代码,并且邀请comp.os.minix新闻组的成员帮助他建立操作系统。1991年8月25日,Linus Torvalds宣布了一则著名的消息:“使用minix的朋友大家好,我正在做一个386(486)AT兼容机的(免费的)操作系统(仅仅是出于个人的爱好,不会像GNU那样做大做专业)。”
1994年,Linux发布了1.0版本,从此开始大范围流行起来。这里有必要解释一下内核版本号,其写法是“主版本号.次版本号.修正次数”,例如“2.6.5”、“2.7.2”。那么用户在下载内核时,是否应选用更高的版本号呢?不一定!次版本号为偶数代表稳定版,普通用户可以下载使用;若是奇数则代表开发版本,建议仅内核程序员可以尝试下载最新的奇数版本来开发内核,而普通用户最好不要使用。
Linus Torvalds把他的操作系统的成功归功于互联网和Richard Stallman的GNU项目。和Windows及其他有专利权的操作系统不同,Linux仍然公开地开放源代码并得到不断的扩展。任何人可以免费使用它,只要他们做的任何改进都不是受著作权保护并且可以免费地保留利用。据估计,目前只有2%的Linux代码是由Linus Torvalds自己写的,虽然他仍然拥有Linux内核并且保留了选择新代码和需要合并的新方法的最终裁定权。
1.2.2 GUN/Linux的诞生
既然Linux只是一个内核。那么我们通常所说的Linux操作系统又是什么?我们通常所说的Linux,指GNU/Linux,即采用Linux内核的GNU操作系统。
1971年,Richard Stallman刚开始他在MIT的职业生涯,他工作于一个专门使用自由软件的工作组,在那里,程序员们可以自由地相互合作。直至20世纪80年代,几乎所有的软件都是私有的,并且软件的所有者不允许抵制与他人合作。在此背景下,Richard Stallman提出了伟大的GNU计划。
自由软件议事日程的第一项就是自由的操作系统。如果没有自由的操作系统,在不求助于私有软件的前提下,可想而知,人们甚至无法使用计算机。当然,一个完整的操作系统不仅仅是一个内核,它还包括编译器、编辑器、文本排版程序、电子邮件软件,等等。因此,创作一个完整的操作系统是一项十分庞杂的工作,它需要耗费太多的时间和精力。
由于当时UNIX优秀的全局设计已经得到认证并且广泛流传,因此,GNU计划决定让自己的操作系统与UNIX兼容,并且UNIX的用户可以容易地转移到GNU上来。
渐渐地,GNU计划已经发现或者完成了除内核之外的所有主要成分,而这个最为关键的内核的缺失使得GNU计划一度遭遇了发展的瓶颈。直到20世纪90年代初,一个自由的内核——Linux由Linux Torvalds开发出来了。于是人们把Linux和几乎完成的GNU系统结合起来,就构成了一个完整的操作系统——一个基于Linux的GNU系统。目前使用该系统的人数众多,包括Slackware、Debian、Red Hat以及其他。