Linux 简史
如今 Linux 无处不在,不管你在哪儿,都不太可能不用 Linux。Linux 正在被越来越多的设备和产品所使用,包括遍布世界的公共电话交换网、全球数据网络、手机、无 线基站控制器,以及管理这些无线蜂窝网络的通信基础设施,还有各种消费电子产品、汽车车载设备、打印机、路由器等。那么 Linux 到底是如何创造出来的?
GNU/Linux 起源
1991年,芬兰的赫尔辛基大学的 Linus Torvalds 在 BBS 上面贴了一则消息,宣称他以 bash、gcc 等工具写了一个可以在 Intel 的 386 机器上面运行的内核程序,许多人对此很感兴趣,乘自由软件运动的春风,Linux 开始了它不平凡的旅程。
最初的 Linux 内核是由芬兰人 Linus Torvalds(托瓦兹,1969年出生)所开发的。托瓦兹的外祖父是赫尔辛基大学的统计学家,他的外祖父为了让自己的小孙子能够学点东西,所以从小就将托瓦兹带到身边来管理一些微计算机。正因如此,托瓦兹很小就学会了汇编语言。1988年,托瓦兹顺利进入赫尔辛基大学,并选读了计算机科学系。当时整个赫尔辛基只有一台 UNIX 系统的计算机,并且仅支持 16 个终端机。由于操作麻烦,需要耗费大量时间等待,实在难以满足托瓦兹的需求。为此,他不禁想到 “何不自己搞一部 UNIX 来玩?” 不过由于UNIX不向学生提供源代码,要自己写内核程序,谈何容易?

图. 年轻时的Linus Torvalds
托瓦兹是幸运的,因为当时存在一个类似 UNIX 的系统,并且与 UNIX 完全兼容,还可以在 Intel 386 机器上运行。这个系统就是 Andrew Tanenbaum 教授出于教育目的编写的 Minix 系统。
Minix 系统
Andrew Tanenbaum 出生在美国纽约,但他是荷兰侨民(1914年他的祖辈来到美国)。他在 MIT 上大学、在加洲大学 Berkeley 分校念博士学位。由于读博士后的缘故,他来到了家乡荷兰,从此就与家乡一直有来往。后来就在荷兰 Vrije 大学开始教书、带研究生了。荷兰首都 Amsterdam 是个常年阴雨绵绵的城市,而对于 Tanenbaum 来说,这最好不过了,因为这样他就可以待在家里摆弄他的计算机了。他在 1987 年编制的 MINIX,主要用于学生学习操作系统原理。到 1991 年时版本是 1.5,目前主要有两个版本在使用 —— 1.5 版和 2.0 版,当时该操作系统在大学使用是免费的,但其它用途不是,当然目前都已经是免费的,可以从许多 FTP 上下载。到 2014 年,MINIX 3.3.0 发布,兼容 x86 和 ARM Cortex A8。

图. Andrew S. Tanenbaum
于是,托瓦兹贷款买了一台最新式的 386 计算机,并且购买了 Minix 操作系统进行实验,发现 386 确实能够很好地支持多任务操作。由于 Minix 操作系统是附带源码的,所以托瓦兹可以从中学习到很多有关内核程序设计的概念。
而此时的 Andrew Tanenbaum 教授忙于教学,已经不大搭理 Minix 的更新,于是托瓦兹决定用 GNU 的 Bash shell 和 GCC,参照 Minix 的设计理念和书上的程序代码自己写一个 OS。1991年,托瓦兹将第一个 kernel 放上 FTP 网站的一个名为 Linux 的目录下,编号为 0.02。这项伟大的运动就此诞生!
Linux 操作系统刚开始时并没有被称作 Linux,托瓦兹给他的操作系统取名为 FREAX,其英文含义是怪诞的、怪物、异想天开等意思。在他将新的操作系统上载到 ftp.funet.fi 服务器上时,管理员 Ari Lemke 很不喜欢这个名称。他认为既然是 Linus 的操作系统就取其谐音 Linux 作为该操作系统的目录吧,于是 Linux 这个名称就开始流传下来。
GNU 计划
与此同时,从 1983 年开始的 GNU 计划已经完成了除系统内核外的各种必备软件的开发。在 Linus Torvalds 和其他开发人员的努力下,GNU 组件可以运行于 Linux 内核之上。整个内核是基于 GPL 许可的,但是 Linux 内核并不是 GNU 计划的一部分。因为 GNU 项目有自己的系统内核 —— HURD,它的开发始于1984年,在 Linux 出现之前它有 7~8 年的时间创造出一个可用的内核,然而它的开发进程,不时被频繁的改变中断。Richard Stallman 为了无止境寻找完美内核,而忘记了 HURD 的原本目的 —— 能用的操作系统。Linux 的出现恰恰填补了 GNU 项目在操作系统内核方面的空白。
在1992年2月发布 Linux 0.12 版本时候,托瓦兹采用 GPL 许可证的新版权声明。GPL 规定用户在获取程序的时候有权获得源代码,但 GPL 没有规定转让程序是否必须免费。所以理论上,只要有人愿意购买你的程序,你开价 100 万美元都可以,只不过你必须给他相应的源代码。Linux 系统发布没几年就开始受到关注,但托瓦兹并不准备把这个系统卖掉,也不准备失去对 Linux 的控制权。他坚持开源,希望在 GPL 许可证效力下,人们能加入进来,参与 Linux 系统内核的升级过程。