*** EOOH *** 来自Newsgroup的论争
From: ast@cs.vu.nl (Andy Tanenbaum)
Newsgroups: comp.os.minix
Subject: LINUX is obsolete Linux的技术过时了
Date: 29 Jan 92 12:12:50 GMT
Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam
I was in the U.S. for a couple of weeks, so I haven't commented much on
LINUX (not that I would have said much had I been around), but for what
it is worth, I have a couple of comments now.
(我来美国已有几周了,是的,我还没有就Linux发表评论,并不是时间问题,
而是Linux值不值得一评,现在,我想谈谈我对它的看法)
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对我而言只是一个业余爱好,每当我在夜里厌倦
了写作,而且CNN上没有什么可值得一看的新闻节目时,我就会继续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:
(凭我专业的感觉,我觉得就未来10年或20年里操作系统的发展方向而言,
有两点值得我们关注)
1. MICROKERNEL VS MONOLITHIC SYSTEM
Most older operating systems are monolithic, that is, the whole operating
system is a single a.out file that runs in 'kernel mode.' This binary
contains the process management, memory management, file system and the
rest. Examples of such systems are UNIX, MS-DOS, VMS, MVS, OS/360,
MULTICS, and many more.
(1.微内核模式 VS 单组件模式
许多比较老的操作系统是基于单组件模式的,即整个操作系统实际上只是一个运行在
核心模式的单一a.out文件,它包括了进程管理,内存管理,文件系统等等。
例如UNIX,MS-DOS, VMS, MVS, OS/360, MULTICS,还有许多。
The alternative is a microkernel-based system, in which most of the OS
runs as separate processes, mostly outside the kernel. They communicate
by message passing. The kernel's job is to handle the message passing,
interrupt handling, low-level process management, and possibly the I/O.
Examples of this design are the RC4000, Amoeba, Chorus, Mach, and the
not-yet-released Windows/NT.
(另一个选择是基于微内核的操作系统,它提供的许多系统服务都是独立
且在内核之外的进程。进程之间通过消息传递进行通信,内核的任务就是
管理这些通信,中断处理,低层进程管理,也许还有I/O.
这种系统的例子如RC4000, Amoeba, Chorus, Mach及还未发布的WINNT.
While I could go into a long story here about the relative merits of the
two designs, suffice it to say that among the people who actually design
operating systems, the debate is essentially over. Microkernels have won.
The only real argument for monolithic systems was performance, and there
is now enough evidence showing that microkernel systems can be just as
fast as monolithic systems (e.g., Rick Rashid has published papers comparing
Mach 3.0 to monolithic systems) that it is now all over but the shoutin`.
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.
(尽管在此我可以就两者的优缺点来一番长篇累牍的叙述,但对于
实际从事操作系统设计的人们来说,辩论已经结束,微内核系统胜利了!
唯一的争论是单组件模式系统的性能是否更佳,但是现在已有足够的证据
表明微内核模式系统能与单组件模式系统运行得一样快(例如Rick Rashid
已经发表了几篇Mach3.0与单组件模式系统对比的文章)。
Minix是基于微内核的操作系统。文件系统与内存管理分属于内核之外
的各组进程。I/O管理也是不同的进程 (在内核里,但是这只是因为
Intel处理器设计上的缺陷)
Linux是基于单组件模式的操作系统,这实际上是倒退到70年代技术,
就像将已有的可工作的C语言程序再用BASIC语言重写一样!
对我而言,在1991年去写这样的一个操作系统的主意实在不怎么样。
2. PORTABILITY
Once upon a time there was the 4004 CPU. When it grew up it became an
8008. Then it underwent plastic surgery and became the 8080. It begat
the 8086, which begat the 8088, which begat the 80286, which begat the
80386, which begat the 80486, and so on unto the N-th generation. In
the meantime, RISC chips happened, and some of them are running at over
100 MIPS. Speeds of 200 MIPS and more are likely in the coming years.
These things are not going to suddenly vanish. What is going to happen
is that they will gradually take over from the 80x86 line. They will
run old MS-DOS programs by interpreting the 80386 in software. (I even
wrote my own IBM PC simulator in C, which you can get by FTP from
ftp.cs.vu.nl = 192.31.231.42 in dir minix/simulator.) I think it is a
gross error to design an OS for any specific architecture, since that is
not going to be around all that long.
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.
(Intel的4004CPU是开端,然后它发展为8008,再有8080—>8088--->8086
---->80286--->80386--->80486,直到第N代。在这段时期里RISC 技术也得到
了很快的发展,有些RISC 处理器速度达到了100MIPS,200MIPS或更高速度的RISC
处理器也快出现。这些RISC处理器不会马上消失,而是会慢慢取代Intel处理器
的地位。在RISC上能以软件模拟80386的方式运行老的MS-DOS程序(我用C写
了一个IBM PC机的模拟程序,可以到ftp.cs.vu.nl下载)。
我认为为某种特定的计算机系统设计操作系统是一个大错误,何况Intel早已
风光不再)
(Minix的设计具有相当的可移植性,现在支持Intel系列及680x0 (Atari, Amiga, Macintosh)
,SPARC, and NS32016,而Linux却于80x86紧密相连)(译注:这里的
翻译应该说明,今天的Linux支持的系统比Minix要多)
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,Linux的确会将BSD Unix用户的注意力
从Minix这里引开,我只想建议那些想要一个“新潮”,“免费”的操作系统
的人们去用基于微内核,可移植的操作系统,例如GNU..)
Andy Tanenbaum (ast@cs.vu.nl)