LINUX和MINIX的论战
我在网站上看到了这篇文章,感到非常有趣.论战的一方是现在是我们心目中英雄---Linus.另一方也非等闲之辈,他就是MINIX的开发者--Andy Tanenbaum(Linus在最初开发linux时,参考的就是minix),对于他,大家可能并不熟悉.实际上他是操作系统理论界的权威,他写过<操作系统的设计和实现><现代操作系统><分布式操作系统>等专著.他目前领导着一个有着先进思想的操作系统项目--AMEGO.
他们争论的是有关操作系统的结构问题,这些问题在今天仍很有意义.因此我们文档小组打算翻译这篇争论.愿意加入翻译小组的朋友,请给我email.我们把翻译任务分配一下.
以下是我下载的别人的观点(不是我的观点)
Linux与Minix论战的故事
>最近,我收到一位专家对我的一封批评信,告诉我在本文中提到的“Linus Torvald为一个学校项目编写了
>微型Unix,即Minix,后通过他自己对系统的努力改进,微型Unix成长为Linux,”是错误的,并且告诉我
>minix是一个叫做Andy Taonenbaum 的荷兰教授写的,而且minix是microkernel(微内核)结构,linux不
>是!早年间该教授对linux很不以为然,在newsgroup中将linux骂得一无是处,一钱不值。”并附给我一份
>资料供我参考:
>ftp://freesoft.cei.go.cn/pub/Linux/doc/Linux_is_obsolete.Z
>如果这位专家是正确的,我很抱歉我的错误及我的无知,因为我当时是从一本英文书上得到这一消息的,这
>本书现在也有中文版,而且没对这句话加以考证,所以,如果错了的话,请大家包涵!
各位朋友好:
我核对了一下,发现上贴中指出的URL好象有问题。正确的URL应该是:
ftp://freesoft.cei.gov.cn/pub/Linux/doc/news/Linux_is_obsolete.Z
这是new thread(谁能告诉我中文怎么说,新闻语丝?头绪?好象都不太对)的档案。我从此91年底就参与Linux的活动那段历史是经历过的。最早协助将Linux放在网上的Ari Lemke就是我的朋友。
美国人经常是信口开河的,不足为凭。让我们一起来看看这个档案重温这场舌战以助于了解事情的真相。
Andy Tanenbaum教授首先发难,在comp.os.minix新闻组发表题为《Linux是过时的》的文章。 From: ast@cs.vu.nl (Andy Tanenbaum) Newsgroups: comp.os.minix Subject: LINUX is obsolete Date: 29 Jan 92 12:12:50 GMT Organization: Fac. Wiskunde & Informatica, Vrije Universiteit,Amsterdam
文中提到:
As most of you know, for me MINIX is a hobby, something that I do in the evening when I get bored writing books and there are no major wars, revolutions, or senate hearings being televised live on CNN. My real job is a professor and researcher in the area of operating systems. 他是研究操作系统的教授,搞minix只是他的爱好……,(当时大家都知道他在卖minix!不是自由的!)As a result of my occupation, I think I know a bit about where operating are going in the next decade or so. Two aspects stand out: 作为一个研究操作系统的教授,他认为九十年代操作系统的发展方向:
1. MICROKERNEL VS MONOLITHIC SYSTEM
1,微内核还是单系统
.........略
他列举了一些单一内核系统如 UNIX, MS-DOS, VMS, MVS, OS/360, MULTICS, 等.接着列举了一些微内核,如 Amoeba, Chorus, Mach, and the not-yet-released Windows/NT.
然后他说:
MINIX is a microkernel-based system. The file system and memory management are separate processes, running outside the kernel. The I/O drivers are also separate processes (in the kernel, but only because the brain-dead nature of the Intel CPUs makes that difficult to do otherwise). LINUX is a monolithic style system. This is a giant step back into the 1970s. That is like taking an existing, working C program and rewriting it in BASIC. To me, writing a monolithic system in 1991 is a truly poor idea.
MINIX是基于微内核的系统……blah, blah...Linux是单一内核风格的系统。这是一个向七十年代的大倒退。就好象将一个已经存在并且工作的C程序用BASIC重写一样(荒唐)。在他看来,于 1991年写一个单一内核系统实在是一个坏主意。(你看,厉害吧)
2. PORTABILITY
2,可移植性
.........略去一大段
MINIX was designed to be reasonably portable, and has been ported from the Intel line to the 680x0 (Atari, Amiga, Macintosh), SPARC, and NS32016. LINUX is tied fairly closely to the 80x86. Not the way to go.
他说MINIX的设计具有合理的可移植行……而LINUX是相当紧的系在80x86上了。不是会事儿。(今天怎么样?DEC/alpha, SUN/Sparc, MOTOROLA/680x0, MIPS/x000,INTEL/80x86 都跑LINUX)
Don`t get me wrong, I am not unhappy with LINUX. It will get all the people who want to turn MINIX in BSD UNIX off my back. But in all honesty, I would suggest that people who want a **MODERN** "free" OS look around for a microkernel-based, portable OS, like maybe GNU or something like that.
他说别误解他,他没有对LINUX不高兴……,但是他建议大家用基于微内核的可移植的系统,例如 GNU (他建议人用的那东西不存在!)
自从教授先生的公开信发表后舌战就开始了。针对指责Linus反驳道:
- From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
- Newsgroups: comp.os.minix
- Subject: Re: LINUX is obsolete
- Date: 29 Jan 92 23:14:26 GMT
- Organization: University of Helsinki
You use this as an excuse for the limitations of minix? Sorry, but you loose: I've got more excuses than you have, and linux still beats the pants of minix in almost all areas. Not to mention the fact that most of the good code for PC minix seems to have been written by Bruce Evans.
唉!太长了自己慢慢看吧,反正档案就在我们这里。或者谁有工夫给翻译翻译?宫敏
--------------------------------------------------------------------------------
哈哈,争论的结果大致是两者各有各的好处,重要的是各自的目标不同,一个是很好的教学
工具,另一个是真正的Unix!所以不要诋毁Minix和那个教授。自从那场争论之后就有了Linux
自己的新闻组。在chinese.comp.linux上的讨论如下:
引子:
嘿嘿,不要和我急,这是从一篇国外的BBS上看到的,挑起论战的人是一个(据说)研究OS的
教授,指出现在从技术上讲应该是microkernel的天下了,比如NT(他写的时候Linux才到1.0,
NT还没出来 :-) ),后面很多人掺和,挺有意思的。可惜我不是计算机科班出身,想翻译出
来又怕不妥。
注:真是孤陋寡闻,前面宫敏的文章都没看就乱发文,不过引来下面的好文。
XuYifeng 写到:
放他妈的狗屁OS教授,NT要是micro kernel我怎么也不信,要不这么玩8个CPU就那么累! 都定做
的, 你买4个CPU的kernel,就不能变成8CPU的版本, 他妈的一个参数而已,4变8你就个掏钱! 驴!
你最好去读读linux的kernel源码, 比你写过的DOS程序还小.想比之下VMS是头猪, 其性能咱领交
过,猪的后代WindozeNT得到乃父遗传,加上营养更加充沛,只会肥不会瘦,这个狗屁教授又没见过
NT的kernel源码(天下有几个人看过NT的源码, BillGates看过没有?)就在那里胡说八道!
NT == 螺丝壳里做道场,永远都是瘪脚来兮, 小玩意儿.
姚飞写到:
虽然措词不太雅, 但是语粗理不粗. 从纯理论上讲, 微内核的OS有很多很多优点, 然而,
按照我的粗陋寡闻所见, 很多号称micro的东西都大的可怕, Digital UNIX 4.0D, 就是
原来的OSF/1 , 基于Mach 3.0 核心, 算得上最正宗的micro kernel based, 然而, 它
的核心映象文件(/vmlinux, 去掉了ATM在内的冗余部分) 就有9M ! Linux 2.1.126不压
缩时也才1.2M, 就是把编译成模块的东西加进去也小得多, 谁知道为什么?
NT也一直叫嚣自己是micro kernel based,而且据说Mach 2.5的作者也被挖到了M$,结果大
家都知道的, NT 3.51 的核心在内存里要占据12M,不可以swap出去, 这是哪门子的micro?
Next Step 也是mach based, 不过不知道有多大.
我国的COSIX V2 据说也是Mach 2.5 based,从来也没见它公开露过面,天知道是什么,是不
是也和我们造的卫星一样, "吓吓外国人, 骗骗中国人",还没上天先在厂房里爆炸? 说实话,
我很希望中国能有自己的OS, 想见识一下这个宝贝.
那个教授就是Minix的作者, 作为一个教授, 说那些话也是可以理解的, 只不过Minix和其它
的micro都不给他长脸罢了.
Lu Juhe 问到:
能否请姚兄讲讲微内核的基本知识?好在哪里?
如果没有图形界面,NT和LINUX速度哪个快?姚飞答到:
据我所知, 当初开发Mach这类系统的出发点是鉴于UNIX的核心越做越大, 功能越来越多,
而典型的UNIX核心结构是一个单一的大可执行文件, 内部调用关系越来越复杂, 从而导
致系统难于剪裁, 修改.
微内核就是大大缩减传统意义上的核心的功能, 只保留最最重要, 不得不在处理机最高
运行级别上执行的功能, 比如进程切换, 内存管理, I/O, 中断等等, 也就是说,核心成
了一个服务器. 其它的功能, 比如文件系统, 网络都从核心中分离出去, 作为单独的核
外进程运行. 至少我所知道的大体就是这些.
这种思想是很不错的, 乍看上去对提高核心的模块性, 可剪裁性, 可扩充性, 可移植性
都有好处, 应该说是今后操作系统发展的方向, 至少是理论研究的方向.
目前x86, Alpha, SPARC, Ultra SPARC, PowerPC, ARM , 68K, MIPS上使用的Linux核心
不属于微内核系统之列, 结构大体上还是跟70年代的UNIX差不多, 当然也有许多重大的
改进, 比如动态加载的核心模块. 当年那位可爱的教授也是抓住这一点大说特说不应该
在90年代重复70年代的工作, 从理论上讲他的说是有一定道理的, 但在实际中是另一回事.
我说过的, 很多号称micro的东西都大得可怕.
大家可能不知道, 有一个很特殊的Linux版本 MkLinux, 运行在Power Machintosh上,是由
Apple直接资助开发的, 它是利用了Mach 2.5的核心, 在外围实现了Linux的系统调用, 据
说运行得不错, 可惜我无缘相见.
大家可能注意到上面列出的一大堆CPU里没有HP PA/RISC, 据我所知好象还没有移植, 但
是曾在Linux Joural 上看到HP内部有一个小的部门正在作这方面的工作, 他们是把MkLinux
移植到PA/RISC上,
没有图形界面的NT啥也不是, 或者说是DOS + VMS, 因为根本不存在这种东西,所以无从比较.
不过有脑子的人都想得出来
YanTing 写到:
我曾经在Power Macintosh 7500-9500上面安装过Mklinux,当时的版本是 Redhat 4.2,感觉
速度非常快,PowerPC的计算能力在计算RC5的时候表现地很出色.它是基于微内核的,但是那
个kernel还是大得可怕,有1M左右!
系统升级的时候也比现在大家所使用的Linux要麻烦地多,传统上的编译核心在Mklinux上就
不是一回事情了,它需要一个一个update才可能完成升级.
不过总体说来,使用Mklinux的感觉是很好的,可惜它不能体现MAC出色的多媒体性能,而且单
键鼠标在X下面实在有点可怜.
现在最新的版本是Redhat 5.1了,但是已经没有机会再使用PowerMac了.
zombie <hahu@cs.rmit.edu.au> 写到:
>Is Debian based on micro kernel? I mean the future GNU OS.
>Sorry, I've forgoten the name.
是叫HURD,基于MACH4,现行版本是0.2。离实用还有一定距离,据说已经比较稳定(鬼才知道),
作了个linux的server. 在gnu的ftp里就有,全部大约70m.如果ms把linux毁了,hurd是gnu的
下一个os.其实微内核的概念内涵还是比较丰富的,而且理论上讲可以使系统的稳定性提高.
尤其是在系统发展较快时,但现在linux的发展方式比较特殊.所以采用微内核不一定合适.
对于相对比较小的开发队伍,有一个相对稳定的内核可以减少很多困难.
而linux的开发队伍太大了,没有必要采用微内核技术.采用两个并行版本的办法已经基本解决
稳定性问题.而微内核的开销相对较大,性能上大概要打折扣.至于nt是否是微内核的系统就难
说了.ms的书上曾经宣称时,但我们没见过code.也不知道是基于哪一种,或者是那一类的微内核.
从用户表现上看,微内核系统应该在界面上可以使各种各样的(例如mach上就有NextStep,也有hurd),
但正如大家所说,我们还没有看见除了gui-win以外的任何系统是基于nt内核的.
> 再: 如果你要比时间,VMS比LINUX还早, 你该拎的清.
Be fare to the user who post this news. I believe as a Linux user we
should specially notice this point. Don't be damn yourself, we need
people understand that it is good optional choice beside NT. Not to tell
them "You are stupid".
In the Linux society, treat every one in right attitude. That's the
spirit of an open mind society.
If user don't like consle, tell them there is a KDE which is better than
Win95's GUI. If they feel it is hard to compile kernel, tell them to use
Red Hat distribution. That's the way it ought to be.
I just feel that I should say something about the attitude in this group.
Zombie
*pls clear me using waitpid()
Trident 写到:
那个教授是死脑筋, 要是都以技术论英雄, DOS和Windo$ NT早就完啦!
HAHA...用户就是在PII 上转DOS, 你有什么办法?
-----------------
窗外的世界很精彩!