Linux简史

 

混沌初开

那是在一九九一年,令人痛苦难耐的冷战渐渐走到了尽头。和平安详的空气开始 升起在地平线。在计算科学领域,随着强大硬件的推出,计算机的极限能力已超 出了我们的想象,一个辉煌的未来似乎已渐露端倪。

但还是缺了点儿什么。在操作系统领域,存在着一片巨大的空白。

一方面,DOS还 统治着庞大的个人电脑王国。比尔$/cdot$盖茨花$50,000从一个西雅图黑客手 中买来DOS。之后,靠着聪明的市场策略,这个简陋的操作系统悄悄渗透到了世 界的每一个角落。PC用户没有其它的选择。苹果机虽好,但它的天价没人能承受 得起。它和大众需求保持着遥不可及的距离。

计算领域的另一个阵营是 UNIX世界。但 UNIX更是贵不可攀。为了追求高额利润,UNIX销售商把价码抬得足以吓跑随便哪 个PC用户。贝尔实验室曾慷慨地提供UNIX的源代码给大学。但现在,这些源代码 被小心地看管起来,不再对外公开。更令全球PC用户心烦的是,软件市场的大玩 家们没能为这一问题提供个有效的解决方案。

MINIX似乎是个选择。它是在荷兰当教授的美国人Andrew S. Tanenbaum从零开始编写出来的。MINIX的初衷是为了向学生讲授操作系统的内部工作原理。MINIX的设计是面向当时最为流行的Intel 8086微处理器。

作为一个操作系统,MINIX算不上一流。但它的好处是你能得到它的源代码。只 要你有Tanenbaum写的《操作系统:设计与实现》这本书,你就能得到那12,000 行用C和汇编写的源码。头一次,程序员或黑客可以有机会读一读操作系统的源 码--这种被软件商严加看管的东西。 Tanenbaum用详尽简洁的笔触探讨了编写 操作系统的艺术。他是个一流的作者,迷住了一批当时计算机领域最聪明的大脑。 全世界学计算机的学生都在钻研这本书,通过读它的源码来了解他们电脑里运行 的MINIX操作系统。

Linus Torvalds就是这些学生中的一个。


呱呱坠地

在1991年,Linus Benedict Torvalds还是个芬兰学生,在 赫尔辛基大学念计算机专业二年 级。同时他也是个自学成才的黑客。这个长着沙滩黄头发、说话软绵绵的二十 一岁芬兰帅哥喜欢折腾他的电脑,把它不断推向能力的极限。但他缺少一个合 适的操作系统来满足他如此专业的需求。MINIX不错,可它只适合学生,是个 教学工具,而不是一个强大的实战系统。

当时,全世界的程序虫们都很看好Richard StallmanGNU项目--一个致力于推出自由、高质量软件 的运动。在计算科学的王国里,Stallman是个倍受尊崇的神话式英雄。他令人 景仰的职业生涯是从大名鼎鼎的MIT人工智能实验室开始的。

七十年代中后期,他在那里开发出了著名的 Emacs编辑器。 八十年代早期,商业软件公司从人工智能实验室吸引走了绝大多数优秀的程序 员,并和他们签署了严格的保密合同。Stallman为此大大不爽。他认为软件和 其它产品不同,在复制和修改方面它不该受到任何限制。只有这样,才能开发 出更好更强的软件。1983年,他在著名的《GNU宣言》中,向世人宣告了GNU项 目的启动,开始了贯彻其哲学的自由软件运动(顺带一句,GNU一词是‘GNU's Not Unix’的递归缩写)。为了最终实现开发出一个自由操作系统的梦想,他 得先制造些工具。于是,在1984年初,Stallman开始创作一个令商业企业程序 员叹服的作品-GNU C编译器(gcc)。他出神入化的技术天才,令所有商业软 件程序员自愧不如。gcc被公认为世界上最高效最强健的编译器之一。

Figure 1: Richard Stallman,GNU项目的创始人
/includegraphics[width=.4/textwidth]{stallman.jpg}

到1991年,GNU项目已经开发出了众多的工具软件。大家期待已久的GNU C编译 器也问世了。但自由操作系统还没有出现。MINIX也是受版权约束的(后来, 在2000年4月,Tanenbaum在BSD许可证下发布了自由的 MINIX)。 GNU 操作系 统内核-HURD-还在开发之中,几年之内还不可能面世。

拖了这么久,终于该说说Linus了。

1991年8月25号,Linus在MINIX新闻组发出了历史性的一贴...

From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI>
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki
 
Hello,各位使用minix的朋友,

我正在写一个基于386(486)AT机器的(自由)操作系统(只是出于爱好, 不会做得象gnu那么大、那么专业)。我从四月份开始酝酿,现在已经做得 差不多了。我现在想知道一些你们对minix的看法,它哪点好?哪点不好? 因为我这个操作系统和minix多少有点儿类似(文件系统采用同样的物理布 局(因现实原因),其它方面也有类似的地方)。我已经把bash(1.08)和 gcc(1.40)移植过来了,而且它们运转正常。这意味着在下面几个月里, 我将给它加上更多实际的功能。所以我想知道大家都希望它有哪些功能。欢 迎多提建议,但我不敢保证能实现你的建议 :-)
Linus (torvalds@kruuna.helsinki.fi)

附:没错,它不包含任何minix的代码,而且它有一个多线程文件系统。它 现在不能在其它硬件上转(因为用了386任务切换机制,等等),而且除了 AT硬盘,它基本上不支持任何其它硬件。这就是全部了 :-(。
从这个帖子不难看出,Linus自己并没预料到他的小创造将会改变整个计算科 学领域。1991年9月中旬, Linux 0.01版问世了,并且被放到了网上。它立即 引起了人们的注意。源代码被下载、测试、修改,最终被反馈给Linus。 10  月 5 号,0.02版出来了,同时伴随着Linus著名的声明:

From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: Free minix-like kernel sources for 386-AT
Message-ID: <1991Oct5.054106.4647@klaava.Helsinki.FI>
Date: 5 Oct 91 05:41:06 GMT
Organization: University of Helsinki
 
你在怀念minix-1.1时代的美好时光吗?那时你自己写着驱动,充满了作男人 的感觉。现在没什么好项目可做了,是吗?你在拚命啃一个操作系统,修改 它以满足你的需求,是吗?现在minix已经没什么需要你去改进的了,你为此 怅然若失,是吗?没机会再熬通宵去改进一个小程序了,是吗?如果是这样 的话,那这个帖子就是给你的 :-)

一个月 (?) 前我曾经提到过,我正在一个AT-386机器上 开发一个自由版本 的、类似minix的操作系统。现在它终于出来了(尽管未必能满足你的期待)。 我乐意把源代码公开出来,让它传播得更广。它现在仅仅是0.02版(外加一 个(很小的)补丁)。但是我已经成功地在它上面跑了 bash/gcc/gnu-make/gnu-sed/compress等程序。我这个小宝贝儿的源程序在 nic.funet.fi (128.214.6.100) 下面的 /pub/OS/ Linux 目录中可以找到。 该目录中还有些 README 文件,还有几个在 linux下能工作的可执行文件 (bash,update和gcc,你还要求些什么呢 :-)。完整的内核源代码都公布 在这儿了,因为里面没用到minix的源程序。而函数库的源程序只是部分开 源,所以目前还不能提供出来。拿到源代码后,直接编译就行了。编译完就 能转了。哈哈。可执行程序(bash和gcc)的源代码可以在同一网站的 /pub/gnu目录里找到。

几周以后,Linux 0.03版发布了。12月份,0.10版发布了。这时的Linux还显 得很简陋。它只能支持AT硬盘,而且不用登录(启动就进bash)。0.11版有了 不少改进,可以支持多国语言键盘、软驱、VGA、EGA、Hercules等等。Linux 的版本号从0.12直接上升到了0.95、 0.96...不久,Linux的源代码就通 过在芬兰和其它一些地方的FTP站点传遍了全世界。


谁与争锋

Figure 2: Linus在展示一台 Linux笔记本电脑
/includegraphics[width=.4/textwidth]{laptop.jpg}

不久,Linus开始面对挑战。他面对的不是别人,正是Andrew Tanenbaum,那个 开发出MINIX的伟大教师。在给Linus的一个回贴中,Tanenbaum 写到:

“我还是坚持我的观点,在1991年还设计这样一个整体架构的内核是个根本性的 错误。你该庆幸不是我的学生。这么个设计,在我这儿你得不了高分 :-)”
(Andrew Tanenbaum to Linus Torvalds)

Linus后来承认说,这是关于开发Linux他所得到的最坏评价。Tanenbaum 是当时 的知名教授,他说的话自然很有份量。但这次面对Linux,他的话没能奏效,因 为Linus不是个轻易服输的人。

Tanenbaum还宣称:

Linux过时了。”

现在轮到新的Linux一代开始反击了。以强大的Linux社区为后盾,Linus给了 Tanenbaum一个恰如其分的回复:

你的工作是教授、研究员。这对于minix的大脑损伤是个绝妙的解释。
(Linus Torvalds to Andrew Tanenbaum)

Linux开发在继续。不久,加入开发的人数就超过了一百,然后是数千,然后 是数十万。Linux不再只是个黑客的玩具,配合上GNU项目开发出的众多软件, Linux已经可以走向市场了。它最终在GNU公共许可证下发布,这保证任何人都可 以自由获得它的源代码,可以自由复制、学习和修改它。学生和程序员们都没错 过这个机会。

不久,软件商们也来了。Linux是自由的操作系统。软件商们需要做的只是把各 种各样的软件在Linux平台上编译,然后把它们组织成一种可以推向市场的形式。 这和其它操作系统在运作模式上没什么区别,只是Linux是自由的。 Redhat、Caldera、和其它一些公 司都获得了相当大的市场,获得了来自世界各地的用户。除了这些商业公司,非 商业的编程专家们也志愿地组织了起来,推出了他们自己的品牌--享誉全球的 Debian。配上崭新的图形界面 (比如X Window SystemKDEGNOME),Linux的各个品牌都 倍受欢迎。

好戏连台,惊喜不断。除了PC机,Linux又被移植到了许多其它平台上(PowerPC、 Sun Sparc、ARM、Alpha...Debian就支持十几种CPU)。它还被人安装到了3com 的手掌计算机上。另外,利用集群技术,许多Linux 单机可以被组织成一个整体, 用于并行计算。1996年4月,Los Alamos国家实验室的研究人员利用68台Linux单机搭建了一个并行计算系 统,用它来模拟原子弹爆炸的冲击波。与其它超级计算机不同的是,用 Linux搭 建的集群计算机非常便宜。这种DIY出来的超级计算机只花费$152,000,连人工 (连接68台PC的线缆)都包括了。这价格只是同级别商业机的十分之一。它的峰 值计算速度可达每秒190亿(19 billion,$19/times10^9$)次。在 世界超级计算机排行榜中它排 在第315位。它也极其稳定可靠,投入运行三个月后,还不必去重启动。

Figure 3: 今天锋芒毕露的Linus
/includegraphics[width=.4/textwidth]{linusnow2.jpg}

今天,Linux最大的优势就是推动它前进的巨大开发热情。一旦有新硬件问世, Linux内核就能快速被改进以适应它。比如,Intel Xeon微处理器才问世几个星 期,Linux新内核就跟上来了。它还被用在了Alpha、MAC、PowerPC 上。甚至在 手掌机这一少人问津的领域都可以运行Linux。正如它在1991年诞生时那样, Linux正以同样的热情阔步走向新世纪。

Figure 4: Linus,2002
/includegraphics[width=.4/textwidth]{Linus_Torvalds.jpg}

至于Linus本人,他保持着简单的生活。不象比尔盖茨,Linus不是亿万富翁。完 成学业之后,他移居美国,在Transmeta公司找了个工作。 Transmeta公司在指 导完成了一个绝密项目的研发之后,推出了自己的Crusoe处理器。Linus 是这个 研发小组中活跃的一员。最近,他和 Tove结了婚,生了个女儿,取名 Patricia Miranda Torvalds 。世界范围内的计算机社区都对Linus推崇备至,到目前为止, 他是我们这个星球上最受欢迎的程序员。

Figure 5: 全家福
/includegraphics[width=.4/textwidth]{family.jpg}


风雨十年

Linux开发已经走过了十个年头。它用十年的蓬勃发展否定了所有持怀疑态度 的警告和预言。今天,Linux是有史以来发展速度最快的操作系统之一。从 91、 92年的几个技术狂热者发展到今天数以百万计的普通用户,这绝对是个不平凡的 历程。大商业公司们“发现”了Linux,将数以百万计的美元倾入到开发中来, 这一事实无情地驳斥了“开源运动反商业”的谬论。IBM曾经视开源社区为洪水 猛兽。而现在,它已经将大量的资金转移到以Linux为平台的开源解决方案中来。

但真正让人感到惊喜的是,Linux开发团队持续不断地壮大,并在世界范围内扩 散开来。这些开发者以旺盛的精力和高涨的热情不断改进着 Linux的功能和性能。 Linux开发工作并没有象“代码封闭论者”所妄言的那样“最终消失在一片混 乱之中”。正相反,Linux开发是有组织有秩序的,它采用的是一种精心设计 并被细心维护的开发模式。在这一高效开发模式下,数以千计的开发者们把各种 各样的应用软件注入到Linux平台中来。

商业企业不再对Linux心怀戒惧,因而大量的软件商开始提供Linux平台上的产品 支持,软件质量有了更可靠的保障,在办公室里用 Linux不必再有“风险自负” 的担心了。说到可靠性,Linux在1999年CIH病毒肆虐和一年后的‘爱虫’病毒流 行时,证明了自己的强健。这些相当简单的小病毒把世界搞得一团糟,而所有的 Linux机器却丝毫不受影响。这充分显示了它出色的免疫力。当Redhat这样的 Linux排头兵走向市场的时候,它们受到了热烈的欢迎。甚至在近几年dot-com网 络泡沫破灭之后,它们还在持续蓬勃地发展壮大。这也大大增强了人们对Linux 的信心,许多大大小小的商业公司开始采用Linux作服务器和工作站平台,把 Linux作为办公室系统的可靠支撑。


Linux桌面应用的崛起

那么,针对Linux人们报怨最多的是什么呢?在过去,也许就数它的字符界面了。 很多对Linux感兴趣的人被传统的字符界面吓着了。“字符界面可以让你无所不 能”,一些执着的黑客会向你这样辩解。但对于数百万的普通用户,这意味着要 花费大量的时间和精力去学习它。现成的X Window图形界面和窗口管理器并不能 满足普通计算机用户的期待。这一直是MS Windows追随者们的攻击把柄。但在过 去的几年间,情况发生了改变。象KDE和GNOME这样非常专业的桌面环境呈现在了 人们的面前。这些桌面环境的较新版本使人们对Linux的“用户友好性”有了更 好的认识。尽管一些铁杆用户在报怨,图形化使黑客文化失去了其原有的纯正品 位。但图形化大大改善了 Linux 在普通用户心目中的形象,促进了 Linux 的流行 与推广。


Linux在第三世界

Linux在发展中国家得到了广泛的传播。这也许是它对世界影响最大的地方。在 Linux出现之前,发展中国家在计算科学领域大大落后于西方。虽然硬件价格不 断下滑,但在第三世界国家,计算机爱好者们饱有热情,却又囊中羞涩。软件的高 昂价格一直是个巨大的经济负担。无奈中,他们只能求助于各种各样的盗版软件。 这直接导致了盗版的泛滥,盗版金额高达数万亿美元。话又说回来,大多数商业软 件的标价都大大超过了发展中国家人民的承受力。举例来说,一个典型的操作系 统软件至少标价$100。在一个年人均收入只有$200-$300的国家,这$100是 个巨额数字。

Linux和其它开源软件的崛起彻底改变了这一切。在适当的裁减之后, Linux 可 以在硬件配置极低的计算机上运行。这使得Linux成为穷人的理想选择。在发达 国家已经成为历史的老旧机器,比如486/Pentium 1计算机,在发展中国家还在 被使用着。Linux使得这些老旧机器继续发挥作用。由于在穷国,高昂的软件价 格是个大问题,所以开源软件得到了广泛的传播。在亚非拉,Linux成了众多计 算机爱好者们的选择。在世界的各个角落,Linux被本地化。这标志着它真正走 向了全球。Linux的相关文件被翻译成了各种语言,包括很多冷门的语言,比如, 越南语。


从桌面系统到超级计算机

Linus Torvalds当初开发Linux,只是出于一个黑客的爱好。自从Linux运行在了 一个破386机器上以后,到现在,它已经走过了一条很长的路。今天,它最令人 瞩目的应用领域是大规模并行计算集群。

2001年8月,BBC报道说,美国政府正在计划一个超大规模计算机。这个超级计算 机将能够进行每秒13万亿次(13 trillion, $13/times10^{12}$)计算(13.6 TeraFLOPS )。这一 项目被命名为“Teragrid”,是一个由四个美国超级计算中心组成的网络。这四 个超级计算中心是:

  1. National Center for Supercomputing Applications at the University of Illinois(NCSA)
  2. San Diego Supercomputer Center (SDSC) at the University of California
  3. Argonne National Laboratory in Chicago
  4. California Institute of Technology in Pasadena
在每个计算中心都有一个 Linux超级计算机集群。在Teragrid网中,总共将会有 超过3000个处理器进行并行运算。

截止至2005年,Linux超级应用再创新高。在2005年超级计 算机500强中,使用Linux的超过了60%。而且前5 名中,有4个用的是Linux


走向未来

Linux从一个黑客的个人项目发展到一个遍布全球的操作系统,这一历程就象一 次生物的进化。八十年代早期,Richard Stallman发起了GNU项目,为开源软件 的发展奠定了基础。Andrew Tanenbaum教授开发的MINIX系统,把操作系统的学 习研究从单纯的理论教学带入到实践阶段。最终,Linus Torvalds用他追求完美 的无尽热情催生了Linux。在过去的几年中,开源社区成千上万的人们不断地呵 护滋养着它,谱写了计算机革命史册的光辉一页。今天,Linux不再是一个学生 黑客的项目,它成了一个世界范围的奇迹。在开源运动的精神感召下,IBM这样 的大公司和千百万热情的人们都加入了进来。在计算科学的历史上,它将是人类 最辉煌的成就之一。


穿黑色燕尾服的小家伙:Linux吉祥物

/includegraphics[width=.4/textwidth]{logo.jpg}

Linux的标志是一只小企鹅。不象其它商业操作系统,Linux没有采用一个令人肃 然起敬的徽标。这个穿着黑色燕尾服的小家伙充分表达了自由软件运动无忧、无 虑、无畏的态度。这个可爱的徽标诞生于一个有趣的小故事。据Linus说,Linux 最初并没有徽标。一次,Linus去南半球某地度假,碰到了一只企鹅。它长得并 不象现在的Linux徽标。Linus想去亲近这小家伙。结果,小企鹅在他手掌上重重 地拍了一翅膀。这次有趣的经历导致了后来 Linux 徽标的诞生。


轶闻趣事

下面是一些Linus的名言。

Dijkstra八成讨厌我。
(Linus Torvalds, in kernel/sched.c)

“我怎么知道它转不转?这是beta测试该做的事情。我只管编码。”
(Linus Torvalds的个性写照。摘自某个帖子)

“我真白痴...至少这个bug花了我五分钟才找到...”
(Linus Torvalds 给一个bug报告的回应)

“如果你想周游世界,想被邀请去到处演讲,那就写个Unix操作系统吧。”
(By Linus Torvalds)

$»$ Linux除了有一个酷名字以外,谁能说说为什么我该用  Linux 而不是BSD?

$>$ 不,这就够了,有个酷名字就够了。在取名方面,我们花 了老大的力气,希望它的名字能引起大家的兴趣。这招挺有效,数以千计的 人们选择了 Linux,就是为了说:“OS/2?哈。我有 Linux。多酷的名字。” 386BSD的名字里有太多数目字和奇怪的缩写,太失败了。听起来太技术化, 把人都吓跑了。
(摘自Linus Torvald的一个关于 Linux的跟贴)

$>$ 有朝一日,大家觉得有人能把 Linux搞得更好的时候(自由软件基金会就是个选 择),我就“退位”。我觉得这还不是我们现在该操心的事情,至少在可见的将 来还不会发生。我喜欢搞 Linux,尽管工作量不小。而且我还没听到有人报怨我 (也就听到些很小声的提醒,都是关于我忘了或者忽略了某个小补丁。至今也没 有什么真正的负面反映)。

$>$ 别误会,我上面这些话并不是说一旦有人报怨我,我就撂挑子不干了。我皮很厚 (Lasu正在我背后偷看我写这些东西,他说“更确切地说该是‘脸皮’很厚”), 厚得足以接受些难听的话。如果不是这样,早在听到ast(译注:Andrew S. Tanenbaum)嘲笑我模仿、复制minix的时候,我就停止 开发了。我只是想说, Linux到现在一直是我的宝贝儿,如果有人想把它搞得更好,我不会死抱不放、 舍不得撒手的。
Linus

$>$ 嘿,也许我该到教皇那儿申请个圣徒的头衔。谁知道教皇的email?很高兴我 让你恶心了。
(摘自Linus给某位为 Linux未来表示担忧的人的回复)

当你向人炫耀“我写了个能搞死Windows的程序”的时候,大家会木然地盯着你 说“呵,我 Linux系统里有得是这类程序,而且这系统不花钱”。
(By Linus Torvalds)


似水流年

日期事件
1984年1月Richard Stallman从MIT辞职,开始了他的GNU项目。
1985年某月Richard Stallman成立了自由软件基金会。
1985年3月Richard Stallman在Dr. Dobb's杂志上发表了《GNU宣言》。在 宣言中,他陈述了自由软件运动的起因。
1991年8月25号Linus在Usenet新闻组上公开了关于Linux的构想。
1991年9月Linux 0.01版在网上发布。
1992年1月第一个Linux新闻组诞生:alt.os.linux
1992年4月Ari Lemmke在Usenet上创立了广受欢迎的comp.os.linux新闻组。
1992年11月Adam Richter宣布他的公司推出了第一个Linux发行版: Yggdrasil。
1993年6月Peter Volkerding推出了著名的Linux发行版:Slackware。
1993年8月Matt Walsh推出《Linux安装与入门:第一版》。
1994年3月Linux内核1.0版问世。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值