OK,现在请您看看您是属于下面哪种类型的人:
1 :根本不知道什么是Linux,但是知道Windows;
2 :可以拼写出Linux 这个单词,知道是一种和Windows 操作系统相关的产品但仅此而已;
3 :知道Linux 是干什么的,有什么用处,而且也准备学习Linux 了;
4 :您是一位准备考取RHCE证书的学生或者工作者,以便提高您的竞争力;
5 :您对于技术总是有一种向往,喜欢研究新的技术,接触新的领域;
如果您是属于上面五种中的任何一种,那么本系列文章适合您的阅读,您能从中得到许多乐趣。我不能保证您看完本系列文章之后,能够成为
一个合格的RHCE (RHCE:Red Hat Certified Engineer.RedHat Linux 应用的一种水平认证,关于RHCE认证将有章节详细描述),但是能够保证您不会被别人对于Linux 的描述而被搞的头昏,呵呵。
下面就开始我们的故事吧!
第 1 场 值得回忆的事情和人
电影《泰塔尼克号》的导演卡梅隆在奥斯卡奖的颁奖大会上接过最佳导演奖时相当狂妄地对着全场观众重复了男主角的一句台词:“我是世界
之王”。狂妄吗?耗资两亿多美元,一举夺得11项奥斯卡大奖,赢得全球最高票房,难怪它的导演这般狂妄。但是卡梅隆其实心中 非常清楚能
够让他狂妄依赖的是银幕后面最先进的计算机技术!银幕后面才是真正的大主角,就是上百台图形工作站上所使用的那一套操作系统。它是谁
?UNIX?还是Windows ?No,no,这个主角的名字远远没有UNIX或者Windows 来到那么响亮,但它却是创造了世界软件史上的一个传奇!它就
是Linux !
Linux ?对!作者接触了很多Linux 的爱好者,聆听他们的学习经验,分享他们的学习的成果,一起和他们欢乐和开心。但是作者也发现一个
有趣的现象:很多朋友把Linux 的发音读成“Lih-nucks ”,而有些朋友却又读成“Lee-nus ”,而更多的朋友却又读成“Lie-nucks ”,呵
呵。是不是有点开始糊涂了呢?或许您还没有发觉吧,我们喜爱的Linux 竟然还有这么的读音。那么究竟哪个是正确的发音呢?其实都对,第
一个是大多数英语国家的朋友念的发音,第二个是LinusTorvalds(关于这位仁兄,我将在下面详细说说他的故事,现在请暂且记住他的名字吧)的芬兰式发音。而第三个则是亚洲地区人群喜 欢的念法,不管他,反正随便您喜欢哪一个都可以,只要你不把Linux 念成“李奥纳多”或者
“基努李维”就可以了。
让我们把时光切换到1991年吧。这一年是我们伟大又可爱的比尔。盖茨先生最得意的一年呢!说盖茨先生可爱是因为他把图形界面操作方式演
绎的如此“卡娃以”,说他伟大当然是指他在60岁以后要把那么多的财产全部捐献给社会!绝非嘲讽,而是发自内心真诚的佩 服和感动。就是
这一刻的感动导致作者将在本系列文章中公平客观的描述Windows 和Linux 的区别,并且也借Windows 来带领读者走进Linux 的世界,很神奇
,不是吗?
如果读者朋友中有考过当初上海举办的计算机中级考试的话,不知道你们还能否回忆起Windows 3.1 呢?对!1990年5 月推出的Windows 3.0
操作系统取得了非常可观的成绩,单是1990年就有400 万份拷贝售出,或许这个数字放在现在可能吸引不了多少眼球,但是在那时的确是一个
非常可怖的数字!所以在1991年,Windows 的销售胜利继续持续着,并且,微软的Visual Basic又即将在5 月份推出。更让盖茨先生的得意的
事是Windows 3.1 也快要面世了!另外,1991年微软的“视窗新技术”,也就是微软想靠这个技术来打败UNIX的Windows NT也即将完工!众所
周知,微软设计开发NT的目的就是要创造一个企业级的操作系统!(题外话:时间过去了十来年了,微软离这个梦想似乎不是越来越近,而是
越来越远了,这到底是什么原因造成的呢?)
1991年绝对是世界软件产业上值得留下记忆的一年!欧洲粒子物理研究所的一位英国物理家蒂姆。伯纳斯。李(Tim John Berners Lee)开发
了第一个真正意义上的web server——httpd ,第一个客户端浏览器——World Wide Web,并且也开通了第一个WWW 网站 http://info.cern.c
h. 随便说一句:这个家伙也曾开发过一个多任务的操作系统呢。
另外还有SUN 公司(太阳微系统公司)正在研究一种新编程语言Java. 关于Java的故事作者我就不多讲了,只要看看现在的情况就可以知道Java有多少火热。
以上这些事情当然逃不过微软的监视,因为这些都是有可能对微软造成直接经济损失的竞争对手!若干年过去了,事情的发展真是这样的。不
过不管微软的触角有多少长,可以肯定的是,在这一年,微软无论如何也不可能怀疑到远在芬兰首都赫尔辛基(Helsinki) 一个计算机专业二年级学生的卧室里,也有一项关键技术在逐渐成型!而且这项技术对于微软来说,构成的挑战绝对要胜过微软的其他战役!
赫尔辛基的季节差异及其显著,冬天黑暗寒冷,只有几个小时的日照时间。夏天则日长的厉害,因为这是由赫尔辛基的地理位置所造成的。靠
近极北地区都是这样。这里再随便聊一下历史,芬兰曾经是瑞典的一个省,并且存在了几个世纪。芬兰只到1971年才独立的。并 且芬兰还有一个雅称:千湖之国。水力资源丰富,有激流和瀑布1962处。海岸线曲折,全长1100公里,近海多岛屿。哦,我知道我该打住了,这不是历史书
,更不是地理书。
许多朋友都认为Linus Torvalds是Linux 之父,是的。全世界的人们都是这样认为的。这也是无可争议的事实。但是作者仍然认为还有一个人
要比Linus 更加来的伟大,因为如果没有这个人的倡议,恐怕我们可爱的小企鹅将胎死腹中呢。他就是理查德。斯托曼(Richard.M.Stallman
)就是这个人在1975年成立了自由软件基金会(Free Software Foundation),建立了GNU 项目,这最终导致了Linux操作系统的诞生!理查德。斯托曼同时也是Emacs editor(UNIX系统下的编辑器),gclearcase/" target="_blank" >cc multi-lingual compiler(UNIX系统下的C 语言编译器)和gbd debugger(程
序调试器)的作者。天才的程序员!自由软件的斗士!大家都知道,自由对于我们来说显得要比金钱更加重要,不是吗?以此类推,软件当然
也需要自由!不过请原谅作者我的冒昧,理查德。斯托曼那种坚定不移的追求崇高理想的精神对于大多数后来 者来说显得太过于理想化而让太多的人畏难而退。不过作者我还是非常赞赏理查德。斯托曼的这种为软件自由奋斗一生的精神!
追忆似水年华
Linus 接触的第一台计算机是Commodore Vic-20. 这种型号的计算机在当时属于很先进的一种型号。中央处理器的速度是1 兆赫(MHz )。Linux 大概使用了五年,而Linus 自己也说过不喜欢Z80 芯片的构架,所以当Linus 准备升级自己机器的时候,他选择了一款特别古怪的芯片:Sinclair QL.这款芯片虽然有着明显的缺点,在很多方面看上去更像是一款玩具,但却是Linus 所喜欢的。因为这款芯片具有一个强大的功能:
可以同时运行几个程序。这对Linus 来说,影响深远,使得Linus 从编写简单的程序开始,最终形成了Linux。
笔者不打算在这里详细阐述Linus 创造Linux 的过程,因为那些内容足可以写成一本大部头的书籍,而且笔者也相信恐怕没有多少人会对Linux
的历史感兴趣。嗯?您说你有兴趣?那好吧,欢迎您给笔者来信,我们共同探讨。
既然笔者上面已经说了,不想详细的阐述那段历史,那么就意味着笔者将要简单的介绍一下:一开始,Linus 使用的是Minix 系统(安德鲁.塔尼鲍默所设计,写Minix 的原因就是因为当时不满于UNIX源码不向学生开放),然而当Linus 熟悉了Minix 的一切构架后,开始渐渐不满于Minix 的错误的地方,比如:Minix 的优化做的不够好,浮点堆栈经常溢出之类的错误。另外,那个时候,Linus 也开始使用C 语言编程,这也让Linus 产生了想要开发一个“比Minix 更好的Minix ”的狂妄想法。
接下去,Linux 真的开始自己动手干了。一星期7 天,每天10个小时的编程。Linus 就这样连续了干了将近5 个月,终于编写出一个非常幼小
的Linux 系统。然后就是众所周知的事件,Linus 在comp.os.minix 新闻组发了那篇著名的帖子。关于这篇帖子实在是非常出名,甚至已经被RedHat写进他们所提供的官方教材中了(如果你得到过RedHat的官方教材的话,一定看过这篇帖子,不是吗?)所以笔者根本不想再在这里重复一遍,只不过请允许笔者带领大家再一次回 忆这篇帖子的标题吧:“您希望Minix中拥有什么功能?”对,没错,就是这个标题,发帖子的时
间是1991年的8 月25日,是个星期天。至于当时天气怎么样,恐怕连Linus 本人也回忆不起来了吧。呵呵。从那个时刻开始,Linux 注定要成
为一只展翅翱翔的雄鹰,因为Linux 的背后有全世界无数的天才黑客的支持!(饶恕笔者吧,前面那句其实是一句谎言,起码也是不准确的话
,因为这里的全世界里面恐怕没有中国人,有吗?但愿是笔者孤陋寡闻!)
另外,还有一个小小的细节,Linus 当初发布Linux 的时候,其版本号是0.02,这并不是说Linux 没有0.01的版本,真实的情况是这样的:0.01版其实也是存在的,并且也进行过发布,只是Linus 并没有把这个0.01版本放到网络上,而只是把它放置于校园的FTP 上面供大家下载。而且也仅仅发布了源代码,以及附带着大约1800个来字的说明文件,发布的目的也是很“黑客”般的单纯,纯粹只是为了让大家读一下代码而已。
看看编写的代码的可读性是否良好。很可惜的是笔者再也无法找到这份源代码了,据说这份源代码的可读 性非常好,并且还附带着详尽的注释,而且有许多注释还非常俏皮。
这里随便插一句,Linus 本人曾经说过,他非常讨厌撰写程序手册,也就是我们认为的Readme文件。这倒让笔者想起“网络蚂蚁”的作者在刚
开始提供的版本中也没有很好的软件说明手册。呵呵,也许技术型家伙总是讨厌文字表达方式,而更喜欢用代码来说明一切。或许更是这些天
才的技术 型选手没有笔者这样有闲情逸致来撰写大量文字符号吧!
尘封的往事虽然已经离我们很遥远了,但是笔者不希望中国的Linux 用户把这段往事变成传说中故事。所以笔者在这里写下这段Linux 的发展
简史的初衷就是希望广大的中国Linux 用户能够知道这段精彩的历史,尽管夹带着少许传奇的色彩。
传奇的故事仍将继续
大家有否知道理查德。斯托曼一句标志性的告别语是什么吗?这句告别语实在太有名了,连Linus 也在其Linux 内核0.01版本发布说明的结尾
签名处引用了一下,那就是“黑客快乐”。而Linus 自己快乐的黑客工作很快就促成了Linux的0.02版本。这一次,Linus 没有像发布0.01版那
样只放置在校园网络内,而是毫不迟疑的向全世界宣布了Linux 的到来!
1991年10月5 日星期六,一个值得回忆的日子。Linus 在comp.os.minix 新闻组上发言宣布了Linux 的真正诞生!
当然,那时的Linux 还很粗糙,但是它可以运行,这正意味着他可以继续进步!更重要的,Linus 和塔尼鲍默截然不同,Linus 正在向大家寻
求改进程序的想法,并且欢迎大家朝着这个方向努力!
随着Linux 的0.12版本在1992年1 月5 日问世,几乎已经意味着让Linus 处于某个伟大时刻来临的边缘了。因为在0.12版之前发布的版本基本
上都是属于给黑客使用的,没有详细的安装手册,也没有太多的程序指南之类的文档手册,但是随着0.12版本的发布,其面临的用户组群渐渐
的在扩大。让我们看一下最古老的Linux 安装说明文件里面的一段吧:重新启动Linux ,使用fdisk 来检查是否已经有了新的分区,使用mkfs
在fdisk 报告的一个分区上建立一个文件系统。输入“mkfs -c /dev/hdX nnn”,其中X 代表Linux 的fdisk 报告的设备号,nnn表示fdisk 报
告的大小;nnn 的单位是blocks,即千字节。这时,你就可以根据这个大小信息来确定哪一个设备名表示那一个分区了。
笔者想来每一个Linux 的用户都应该使用过mkfs这个程序吧?也或多或少从各个渠道得知这条命令的用法,但是上面这段却是最原汁原味的使
用说明。读者您的心情笔者我无法揣测,但是当笔者看到上面这段话的时候,心中还是涌起一股回忆的念头,笔者遥想起当笔者初次使用这条
命令的场 景,那是在一个教室里面,外面阳光灿烂,真让人怀念啊……
这里也随便插一句:当时比Linux 更有名的Windows
3.1 操作系统也在随后的1992年3 月18日发布了,也让我们看一下这个操作系统的特色吧:这个系统既包含了对用户界面的重要改善也包含了
对80286 和80386 对内存管理技术的改进。为命令行式操作系统编写的MS-DOS下的程序可以在窗口中运行,使得程序可以在多任务基础上可以
使用使用,虽然这个版本只是为家庭用户设计的,很多游戏和娱乐程序仍然要求DOS 存取。
如果您使用计算机时间够长,一定也使用过这个操作系统吧?的确,从DOS到Windows ,微软的确经历了一次飞跃!让我们产生了“桌面”这样
的概念,大家可以对比一下,当时的Linux 和Windows 比起来,是多么的渺小和微不足道,但是十来个年头过去了,Windows 的确是越来越来
完善,使用Windows 的用户也是铺天盖地,但是比起Linux 前进的步伐,是不是显得稍微缓慢点了呢?只是Linux发展虽然迅猛,但是似乎没有一个统一的标准,虽然百花齐放,春色满园,但是让我们用户却又难以抉择,毕竟这个市场要受需求和利益所支配的。微软之所以能够筑就目
前的软件霸业地位,正是其很早就知道制定 标准的好处,Linux 的发展到了如今似乎也到了一个瓶颈的阶段,SuSE被人收买了,RedHat也沾惹上了铜臭味道,Mandrake归根到底还只是个人用户的一个玩具, Debian太单纯了……哦,笔者我好像又把思路散了出去,还是让我们把思路拉
回来吧^_^
0.12版本的发布可能是Linux 发展的一个转折点。在此之前,Linux 只是一个“有点意思,但是即不特别有用,又没有明显的重要性”的玩意
儿。而对于0.12版,越来越多的人开始重视了。尤其是comp.os.minix 新闻组上的变化,几乎有一半以上的文章都是在讨论Linux ,而以前全
部是讨论Minix. Linux的如此热闹,当然也引起了部分Minix 用户的不满,有人这样写道:我实在不愿意发火,但是当这个新闻组上50% 的文
章都和Linux 相关时,我真的忍受不了了。
而最终让Linus 彻底甩掉Minix 独立发展的念头并不是这样的一篇帖子,而是另外一件事情:Linus 本来是想和学校的计算机联网的,没有想
到阴错阳差的让他的终端仿真器向硬盘拨号了。这时为什么呢?大家可曾还能记得学习linux最初的时候,一定有人(我保证)向您灌输过对于UNIX来说任何东西都是文件。对于Linux 来说也是一样,那么这件事情就好理解了。往一台调制解调器送数据和往一块硬盘送数据并没有什么
本质上的区别。
就是因为这次小差错,让Linus下了抛开Minix这根拐棍独自行走的决心,Minix曾经为Linux的开发起到了不可或缺的脚手架的作用,而现在Linux终于要独立去寻找新的出路!也许生命总会找到新的出路的寓意也就在于此吧。
与此同时,Linux 和Minix 终于决裂,两大阵营也爆发了一场笔斗!
先是Minix 的创造者塔尼鲍默在copm.os.minix 上发表了一篇文章,也许这可能算是Usenet历史上最著名的文章之一了。其文章标题极具挑战
色彩:Linux已经过时!
文章里面对于Linux 百般挑剔,塔尼鲍默毕竟是专家学者,其经验,学识,技术都胜于当时还是初出茅庐的Linus.他精炼的语言和雄辩的口吻
展示了他深厚的学术功底!塔尼鲍默集中讨论了两个地方:一是微内核与单片式内核之争,二是可移植性。
Linus 当然不会漠视塔尼鲍默的评论,何况Linus 的自尊心很强,在过去的9 个月里,Linus 已经把自己大部分时间和精力都投入到Linux 中
,而快速增长的Linux 用户和编程人员群体无疑也让Linus 有理由为Linux 而感到自豪和骄傲。但是,现在却有一个老学究跑过来把Linux 说
的一文不值。诸位可以想象一下Linus的感受吧?
虽然现在的Linus 已经被称呼于“最优雅的黑客”或者“黑客王子”,但是那个时候却不是。Linus 当然进行了反击!而且还是狠狠地。反击
是快速的,在塔尼鲍默那篇帖子发表仅仅过去了11个小时(让笔者想起了著名的《惊魂11小时》这个游戏,笔者可是不靠攻略就通关的哦),L
inus 就开始了其滔滔不绝的反击宣言!开篇就是:“好了,对于这样的文章,我恐怕不得不回复……认真的反击,现在是时候了”。这篇反击
的文章,把Minix 批驳的体无完肤,而且还捎带着对塔尼鲍默进行人身上的攻击。称塔尼鲍默是“造成脑损伤的”。
赫赫,看来不管是中国人还是外国人,在年轻的时候总是显得非常鲁莽和冲动,要知道,Linus 攻击的对象塔尼鲍默可是一位在操作系统领域
倍受尊重的教授,并且还是《操作系统:设计与实现》一书的作者。这本书,Linus 可不要忘记也曾仔细拜读过呢。
当然,在第二天,Linus 就已经感到了后悔,马上又发布了一篇帖子,很诚恳的向塔尼鲍默道歉。并且说到“我第一次,但愿也是最后一次发
火”。呵呵,Linus 以后是不是还发过这样的火,笔者并不知道。笔者只知道Linus 后来和塔尼鲍默进行技术上的讨论的时候,语气显得缓和
了许多。当然,他们这一次争论,虽然Linux 和Minix 两阵营的用户都各自洋洋洒洒的发表了很多互相批驳的文章,但是毕竟还是有一些中肯
的用户发表他们中肯客观的看法,下面就是一封中肯而简洁的评述:
如果按照最新的设计标准来衡量,我们使用的许多(如果不是大多数)软件可能都已经过时。大多数用户可能并不那么关心他们使用的操作系
统是否过时。他们当然对软件的性能和用户级别的功能更感兴趣。
总的来说,我支持微内核是未来发展潮流的说法。但是,我也觉得实现一个单片式内核的难度要小一些。当然,单片式内核很容易因为修修改
改而弄的一团糟。
祝好!
签名是“肯”。肯就是肯.汤姆森(Ken Thompson),UNIX的创始人。
在那篇“Linux 已经过时”的帖子之后,Linus 几乎很少再在comp.os.minix这个新闻组上发帖子了。这倒不是因为塔尼鲍默得罪了他,主要是
因为Linus 已经拥有了自己的新闻组:alt.os.linux. 就像所有的年轻雄狮一样,和老狮子发生反叛冲突之后,linus 离开了去寻找自己的归
宿。
当然,Linus 仍然对Minix 和comp.os.minix 保持着一种亲切感,直到1999年,Linus 还在comp.os.minix 上回答了一个问题,要知道,他回
答的这个问题是在1991年就已经存在的帖子了。看来,Linus 仍然无法抵御这来自过去的带有魔力的召唤!我们也能领略Linus 对于往事的怀
旧之情:那时的一个莽撞青年,单枪匹马,白手起家,一点一点地建造了那用自己的名字命名的操作系统。那时他播下了一粒种子,如今已经
成长为千万用户使用的一个完整的操作系统的内核,并且同时掀起了一场绵延不绝的运动!
时至今日,大家也看到了Linux 精彩传奇的故事仍然再轰轰烈烈的进行下去!