在这里,让我们讲讲Linux的那些事儿~~
这是讲解Linux相关历史,相关人物的文章,不会涉及太多的技术~~
最近这个穿越剧是大火啊,很多人都穿越回了清廷,当上了格格,贝勒,甚至皇上,看的我是羡慕不已啊,如果让你穿越,你想穿越到哪呢?如果能给我一个穿越的机会,我可能想穿越到1991年的芬兰赫尔辛基,找一个名叫Linus Torvalds的年轻人,问问他是如何灵光一闪发明了Linux。
这里花点时间进行一下人物介绍,Linus Torvalds全名Linus Benedict Torvalds,中文译名:林纳斯·本纳第克特·托瓦兹,作为Linux操作系统内核的缔造者,他是当今世界最著名的电脑程序员、黑客,和苹果创始人史蒂夫·乔布斯,微软创始人比尔·盖茨一样,都是响当当的人物。林纳斯·托瓦兹生于1969年12月28日,是摩羯座,哈哈,这里小小开八一下,史蒂夫·乔布斯生于1955年2月24日,是双鱼座,比尔·盖茨和乔布斯同岁,生于1955年10月28日,是天蝎座,俺也是天蝎座啊,哈哈。还有一点比较有意思的是林纳斯·托瓦兹的父亲尼尔斯·托瓦兹(Nils Torvalds)是一名活跃的共产主义者及电台记者,曾当选芬兰共产党中央委员会委员。不知林纳斯·托瓦兹开源的思想是否受老爹共产主义思想的影响。
![](https://img-my.csdn.net/uploads/201301/25/1359085212_5230.jpg)
林纳斯·托瓦兹
1991年托瓦兹29岁(俺才8岁,还在上小学),是赫尔辛基大学计算机系的学生,那么他是如何想到要写一个Linux的呢,这还要讲一讲计算机及Unix的历史,相信大家在学校的时候都学习了一些计算机的基本知识,知道计算是从大型机->小型机->个人电脑(微机)逐步发展过来的,这3种机型,相信绝大部分人只见过个人电脑。大型机和小型机长啥样,在没有互联网之前我们只能对着空气自己想像,大家要明白一点的是,第一台计算机的发明主要是为了解决日益复杂的弹道计算,计算机的第一任务就是计算,所以计算机被称呼为“计算”机而不是“上网”机或者“看电影”机,而我们普通用户在日常生活中的计算并不多,也很简单,计算器就够用了,所以计算机一开始可不是设计给个人用户用的。
大型机是上世纪六十年代发展起来的计算机系统。IBM(International Business Machines Corporation,国际商业机器公司)就是大型机的主要厂商,经过四十年的不断更新,大型机的稳定性和安全性在所有计算机系统中是首屈一指的。正是因为这方面的优点和强大的数据处理能力,到现在为止还没有其他的系统可以替代。由于成本巨大,一台大型机售价数百万美元,使用大型机系统的一般以政府、银行、保险公司和大型制造企业为主,不要说我们普通用户,就是当时的企业也不是谁都用的起的。
后来出现了性能和价格都低于大型机的小型机,国外小型机对应英文名是minicomputer和midrange computer。midrange computer是相对于大型主机和微型机而言,被国内一些教材误译为中型机。而在众多的小型机中有一款被大部分IT人所熟知,它就是DEC公司出的PDP-7,因为在它之上,肯尼斯·蓝·汤普逊(Kenneth Lane Thompson)写出了著名的UNIX操作系统第一版,肯·汤普逊生于1943年2月4日,水瓶座,也是IT界的泰斗级人物,他与Dernis Ritchie(丹尼斯·里奇,生于1941年9月9日,处女座)设计了B语言、C语言,创建了UNIX和Plan 9操作系统,他也是编程语言 Go的共同作者。
![](https://img-my.csdn.net/uploads/201301/25/1359095534_3233.jpg)
肯·汤普逊
![](https://img-my.csdn.net/uploads/201301/25/1359095561_7737.jpg)
丹尼斯·里奇
Unix源于一个失败的项目也是IT界的一个著名故事,故事发生在60年代,那个年代还是批处理的年代,计算机程序员只能在又慢、又笨,而且效率极低的大型机上工作,急需新系统,于是在1965年,大名鼎鼎的贝尔实验室(Bell Labs)加入一项由通用电气(General Electric)和麻省理工学院(MIT)合作的计划,按照这3家的实力,绝对算是强强联手了,该计划要建立一套多使用者、多任务、多层次(multi-user、multi-processor、multi-level)的MULTICS操作系统。肯·汤普逊1966年加入贝尔实验室并参与了这个计划,但是到了1969年,因为MULTICS计划的工作进度太慢,该计划被停了下来。当时,肯·汤普逊已经有一个称为"星际旅行(star travel)"的游戏在MULTICS上跑,项目组解散后,肯·汤普逊的游戏也没地方玩了,肯·汤普逊玩游戏心切,决定自己开发一个开放式的操作系统。他向老板提出一些建议,但由于有了MULTICS的前车之鉴,老板自然不会同意。肯·汤普逊决定自力更生,他四处寻找,找到了一台废弃的老式电脑——DEC PDP-7。令人兴奋的是,它带有一套特别的图形终端系统,有很快的硬盘和四个终端,一个视频显示器,可以大大强化“太空旅行”的显示效果。于是,汤普生在PDP-7上重写了“太空旅行”,在这过程中他萌生新的念头,准备开发一个全新的文件系统。利用PDP-7的汇编语言,汤普生只用一个月就编写完毕操作系统的内核,他制定了一个时间表,每周开发一个内核、文件系统、编辑器和编译程序。这个阶段结束时,他创建了一个差不多可以运行的系统,组成了最原始的操作系统。这是一个为了单一目的由一个人设计的系统,仅仅是为了使自己软件开发更加简单。后来丹尼斯·里奇也参与了进来。回顾那段过程,里奇说它“很可怕,但是它能用。”因为在机器上什么软件也没有,完全是从零开始。实际建立Unix的是肯·汤普逊,里奇的主要贡献是指出计算机设备可以像同样名字的文件一样出现在文件系统中,这是一个创新。而这部PDP-7就此在整个计算机历史上留下了芳名。当然,后来肯·汤普逊和里奇又将Unix移植到了PDP-11上,毕竟PDP-7是一种快被淘汰的机器,可以说,Unix在贝尔能够受到欢迎,主要受惠于PDP-11。因为当时大部分实验记录和问题报告都由PDP-11完成。“它有许多好的外设,而且性能可靠,体积又小,又便宜。而DEC的软件不方便,大家四处寻找,听说Unix后,自然就采用它。”
![](https://img-my.csdn.net/uploads/201301/25/1359085246_7633.jpg)
肯·汤普逊和丹尼斯·里奇在PDP-7旁
和比尔·盖茨一直在匆忙中推出的MS-DOS和Windows不同,Unix发展得很慢,但是它的每一步都很扎实。贝尔内部专门成立了一个开发小组来支持它。Unix是少数几个并不急于推向市场的产品之一(后来的Linux也是如此),它的酝酿阶段长得不平常,持续了从1969年到1979年的整整10年,但是恰如愈陈愈香的美酒一样,当Unix最终作为产品面对用户时,它已经被充分应用过了,也被充分完善了。贝尔实验室有大量的使用者,并在大部分重要的部门经历考验。1973年前,外面几乎无人知道Unix,知道1973年10月,才在IBM举办的操作系统原理专题研讨会上提及。他们向与会的200来人展示了Unix当时的版本,他们在会上宣读的论文是最成功的论文之一。与会者几乎立即过来索取这种新型的操作系统软件。1974年,肯·汤普逊和里奇在《Communications if the ACM》期刊上发表了一篇论文,因此,人们对Unix产生了更大的兴趣。当年就有40个机构要求购买Unix操作系统软件。
MULTICS其实是"MULTiplexed Information and Computing System"的缩写,在1970年时,那部PDP-7却只能支持两个使用者,当时,Brian Kernighan就开玩笑地称他们的系统其实是:"UNiplexed Information and Computing System",缩写为"UNICS",后来,大家取其谐音,就称其为"UNIX"了。1970年也被记为"UNIX元年"。编程中常用的Unix时间从1970年1月1日0时0分0秒算起也就顺理成章了。
肯·汤普逊和丹尼斯·里奇开发出Unix后,他们并没有积极推销Unix,一开始只是在内部使用,后来免费提供给大学和研究机构使用,并且还提供源代码。直到70年代中期,Unix才被正式推出,凭借这优秀的品质,Unix很快便流行起来,1985年美国大约有27.7万台计算机使用Unix,1990年便增加到210万台,1987年初,适用于Unix的软件包达到2000个,而两年前还只有300个。到80年代中期,Unix已经成为了计算机业的主要标准,尤其是在科学和工程应用方面。1984年9月的《财富》杂志称,世界上750所大学中80%的计算机科学家是Unix客户,因此,几乎任何计算机专业毕业的人都接触过Unix。
在知道了Unix出自与AT&T的贝尔实验室后,我一直有一个疑问,AT&T为何会如此大度的将Unix的源代码开放,难道它的境界就是比微软高吗?后来我才了解到作为美国电话电报业巨头的AT&T垄断了美国长途电话业务,所以美国司法部在1958年与它签了一个和解协议。AT&T同意不进入计算机业,不销售任何与计算机有关的产品,以避免司法部起诉它违反《反垄断法》。Unix是计算机的操作系统,所以AT&T不能销售它,任何要求得到源码的机构,都能免费得到。当时Unix的源代码被提供给了很多研究机构和大学,这其中就有加州大学伯克利分校,加州大学伯克利分校得到源码后,为Unix添加了许多功能,然后在1979年,推出了一个自家的Unix版本,取名为Berkeley Software Distribution(伯克利软件套件),简称BSD。
Unix的成功使其成为后来操作系统的楷模,也是大学操作系统课程的“示范标本”。但是 正当Unix蓬勃发展之际,发生了一件谁也没有想到的事情。1974年,美国司法部再次起诉AT&T违反《反垄断法》。1982年,哥伦比亚地区法庭判决AT&T败诉,必须被拆成8家小公司。但是,这个判决也意味着1958年的和解协议失效,AT&T从此可以进入计算机业。1983年,AT&T发布了Unix最新版system V,这是一个商业化版本,付费才能使用,并且不得传播源码。而且从1979年Unix的版本V7开始,Unix的许可证开始禁止大学使用Unix的源码,包括在授课中学习。
![](https://img-my.csdn.net/uploads/201301/25/1359085502_2884.jpg)
Andrew S. Tanenbaum
所以当时的大学在给学生讲授操作系统的时候就面临这一个问题,拿什么讲呢,Unix已经不可用了,荷兰阿姆斯特丹的Vrije大学计算机科学系的Andrew S. Tanenbaum教授就自己写了一个类Unix操作系统Minix,Minix的名称取自英语Mini UNIX,是一个迷你版本的类Unix操作系统,这个Minux操作系统专门用于学校的教学,后来,这个Minix反响不错,大家都希望将其变成一个实用的操作系统,但是Tanenbaum教授属于一根筋那种家伙,就是坚持Minix是一个教学的东西,拒不接受大家的建议,这里需要说一下从80年代末期开始,Intel的80x86芯片有巨大的发展,性能快速上升,而成本快速下降,个人电脑的年代即将来临,市场迫切需要能够运行在386芯片上的操作系统,但是Unix和BSD正忙于打官司,都没有去做移植操作系统这件事。所谓时势造英雄,在这个风云际会,千载难逢的当口比尔·盖茨瞅准了机会,连大学都不念了,先用DOS后用Windows,占领了个人电脑市场。而林纳斯·托瓦兹似乎是歪打正着,他当时是想学习Unix,但是买不起工作站,Minix功能又有限,于是产生了自己写一个能在386上运行的类Unix操作系统的念头,现在全世界超过一半的网络服务器都在使用这个系统。后来林纳斯·托瓦兹说,如果他早知道BSD没有法律问题,并且可以被移植到386,他就会加入BSD的开发,而不是自己写一个。从这一点也可以看出,比尔·盖茨和林纳斯·托瓦兹一个是伟大的商人,有着高超的商业嗅觉,一个是伟大的黑客,有着高超的技术。当然,比尔·盖茨的技术也很不错,但是他追求的不是技术,对于比尔·盖茨来说,抓住眼前千载难逢的PC操作系统市场是远比读书重要的东西,而对于林纳斯·托瓦兹来说写一个Linux是源于对Unix的浓厚兴趣,是为了挑战自己的编程能力,是为了更好的理解Unix操作系统,两个人的对于操作系统所抱有的态度的不同,也就决定了日后Windows和Linux朝着两个不同的方向发展。 比尔·盖茨是像用屠龙刀一统江湖,而林纳斯·托瓦兹是要打造一把属于自己的屠龙刀。
当然,比尔·盖茨在用Windows一统PC操作系统江湖的过程中遭到了教主乔布斯的大力封杀,这个先略过不讲,先来说说比尔·盖茨,乔布斯和林纳斯·托瓦兹这三个人,如果将这三个人按不同的技能进行排行,在商业上,比尔·盖茨绝对功力最高,在艺术修养上,乔布斯功力最高,在技术上,林纳斯·托瓦兹功力最高,所以,Windows占到了全球桌面操作系统最大的市场份额,但是Windows的界面在Mac OS X面前真的是小小儿科,一直在模仿,从来未超越,而Linux在可靠性、跨平台、高性能上又胜Windows和Mac OS X一筹。在这里,我们可以看到缔造者的基因决定了产品的基因。
每当我读到Unix那段不堪回首的分裂史,我都会想如果AT&T不固执的霸占Unix版权,Unix的今天绝不是这样,但是历史没有假设,即便假设了也不会一直顺着你的假设向前发展。正是有了AT&T的错误,才有了1991年Linux的诞生和今天Linux的强大。
回顾历史,我们也可以看到,当年Unix开放源代码的做法使成千上万的程序员受益,使得他们能够快速的成长,这种开源的思想影响了一批人并最终成为一种潮流。
漫步在历史的长河中,重温那些伟大勇敢的IT弄潮儿的故事总能让我这个小小程序员心潮澎湃,热血沸腾,当年阿基米德说,给我一个支点,我就能撬动地球,而我想说,一个思想就能改变世界。
![](https://img-my.csdn.net/uploads/201301/25/1359103931_2270.png)
Tux是Linux官方的吉祥物,于1996年由Larry Ewing创造出来
在最后,让我们重温一下林纳斯·托瓦兹在1991年8月25日在Usenet新闻组
comp.os.minix
登载帖子,这份著名的帖子标示着Linux计划的正式开始:
Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 386(486) AT clones. This has been brewing
since april, and is starting to get ready. I'd like any feedback on
things people like/dislike in minix,as my OS resembles it somewhat
(same physical layout of the file-system (due to practical reasons)
among other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem towork.
This implies that I'll get something practical within a few months, and
I'd like to know what features most people would want. Any suggestions
are welcome, but I won't promiseI'll implement them :-)
Linus (torvalds@kruuna.helsinki.fi)
PS. Yes - it's free of any minix code, and it has a multi-threaded fs.
It is NOT protable (uses 386 task switching etc), and it probably never
will support anything other than AT-harddisks, as that's all I have:-(.
使用minix操作系统的各位,大家好!
我正在为386(486)AT clones写一个(自由的)操作系统(只是爱好而已,不会和GNU一样成为广泛且专业的操作系统)。这个计划从4月份开始酝酿,现在已做好准备。我希望得到人们关于minix优缺点的任何反馈意见,因为我的操作系统和它有类似的方面(因为可行性方面的原因,两者的文件系统物理布局相同)。 我刚刚把bash(1.08)和gcc(1.40)移植到了系统上,而且看来运行得很好。这意味着我可以在几个月内我就可以把它变得有实用性了。我想知道大家想要些什么特色。欢迎提任何的建议,但是我不保证我会实现你的建议:-)
Linus (torvalds@kruuna.helsinki.fi)
另:是的,它没有包含任何minix的代码;它的文件系统还是一个多线程的。它没有可移植性(它利用了386的任务调度算法等),而且它很可能永远只会支持AT的硬盘(我只有这种硬盘:-(。
请看《大话Linux》第3话:Linux与GNU。
对于那些像我一样喜欢八卦,喜欢了解历史的人,我推荐大家阅读林纳斯·托瓦兹的自传《Just For Fun》,中文译为《乐者为王》。因为聪明的人都很幽默,所以这本小书也写的很幽默。祝你阅读愉快。会上网的同学请找中译本。