本附录是社团内熟知的Tanenbaum与Linus之间关于“Linux已过时”的辨论。这份文件详细地记载了Linux诞生之前,开源软件社团内部两种流派之间关于操作系统设计思想的争论,它对读者开阔思路大有裨益。

Andrew Tanenbaum是一个受人景仰的研究员,他曾对操作系统和OS设计进行了栩栩如生的讲述。在1992年初,他注意到关于Linux的讨论已经充斥了整个comp.os.minix新闻讨论组,于是他决定对Linuxi说两句。

尽管AndrewTanenbaum曾因其粗暴干涉和对Linux内核的歧视而遭到嘲笑,但这样对待Tanenbaum是不公正的。当Linus本人得知我们加入了这些内容后,他强调要确保所有人都认识到他对Tanenbaum并没有什么深仇大恨,而且事实上,当我们说服他。这场争论体现了当时所有人所想象的OS设计方让时,他才同意加入这篇附录的。

我们觉得,加入这篇附录将使读者对当时的情况有一个更加准确的认识,当时Linus面临很大的压力、因为他放弃了学术界推崇的微内核思想。Linus的文章中用了三分之一的篇幅对此进行了详细介绍。

在万维网(Web)上,通过任一搜索服务部可以很容易找到这场争论的电子版。阅读这篇争论是件很有趣的事。你会注意到都有谁参加了讨论:你可以看到黑客Ken Thompson(Unix的创始人之一)和David Miller(他现在是Linux内模的主要黑客之一),以及其他很多人。

现在回想这场争论发生的年代,当时是1992年,386是主流芯片,而486尚未上市。做软还是一家销售DOS和DOS版Word的小公司。Lotus 123统治了整个电子表格市场,WordPerfect则统治了字处理市场。dBASE是数据库的主要厂商,而今天许多家喻户晓的公司——Netscape、Yahoo、Excite——尚不存在。

From: astics.vu.nl(Andy Tanenbaum)

Newsgroups: comp.os.minix

Subject: LINUXisobsolete

Date: 29 Jan 92 12:12:50 GMT

这几周我身在美国。所以没对LINUX作评论(我要在这的话绝不至于这样),但对于它,我现在很有些看法。

众所周知,MINIX对我未说只是个业余爱好,我是在晚上写书之余完成的,而且新闻里没有什么大战,谁也不革谁的命,也没有参议院的听证会可供CNN现场转播。我的本职工作就是个教授,一个操作系统领域的研究者。

作为操作系统领域的研究者,我自信我对操作系统未来十年作用的走势还略知一二,有两个趋势很突出:

1. 微内核vs整体内核系统

绝大多数老的操作系统是整体内核系统。就是说,整个操作系统就是一个运行在内核态的一个a.out格式的可执行文件。这个二进制文件包括了进程调度、内存管理、文件系统和其他种种功能。这类系统的例子有UNIX、MS-DOS、VMS、MVS、OS/360、MULTICS等。

与之对应的另一种系统则是基于微内核,绝大多数操作系统的功能由不同的进程完成。这些进程绝大多数在内核外运行。它们通过消息传递进行通讯。内核只负责传递消息、中断处理、底层的进程管理,或许还有I/O处理。这类系统的例子有RC4000、Amoeba、Chorus、Mach及总尚术发布的Windows/NT。

尽管我能详细列举出两种操作系统设计的相对优缺点。但我认为这样说就足够了:在真正设计操作系统的人们当中,争论已经结束。微内核已经赢了。整体内核唯一站得住脚的论据就是性能,但现在有足够的证据表明。微内核系统能和整体内核一样快(可参见Rick Rashid比较Machine3.0和整体内核的论文),经体内核过时了。

MINIX是基于微内核的。文件系统和内存管理是互相独立的进程,在内核之外运行。I/O设备驱动程序也是独立的进程(在内核运行,但这是死脑筋的Intel CPU的要求,我们也没办法)。LINUX是个整体内核系统。这是向70年代的大倒退。就像将工作得好好的C程序用BASIC重写一边。在我看来,到1991年还设计整体内核系统实在太愚蠢。

2. 可移植性

先是4004 CPU诞生了,长大后成了8008,整整形后又是8080,而是又来了8086,来了8088,来了80286,来了80386,来了80486,直到第N代。与此同时,RISC(精简指令集计算机)出现了,其中一些可以工作到100MIPS(译者注:每秒钟执行1亿次指令)。200 MIPS及200 MIPS以上的RISC机器明年可能就会出来了。它们不会突然消失。更可能的是,它们将渐渐取代80x86系列。它们可以通过软件模拟80386的方式运行老的MS-DOS程序。(我甚至自己用C写了IBM PC的模拟器,你能用FTP(译者注:File Transfer protocol——文件传输协议)到ftp.cs.vu.nl=192.31.231.42的minix/simulator目录下下载。)我认为为特定的体系结构设计操作系统是个大错误。因为也许不久这种体系结构就过时了。

MINIX被设计成是易于移植的。并且已经从Intel系列移植到了680x0(Atari, Amiga, Macintosh), SPARC和NS32016。LINUX和80x86系列靠的太近了。这不对路。

不要误解我了,我不是讨厌LINUX。它的确使那些想把MINIX换成BSD UNIX的人放弃了MINIX。但坦白地说,我建议那些寻求**现代**的“自由’的操作系统的人使用基于微内核的可移植的操作系统,比如GNU的(译者注:GNU/Hurd,已发布)或与之类似的东西。

Andy Tanenbaum([email protected]

附:

顺便通知,Amoeba现在有个UNIX下的模拟器(在用户空间运行),但还很不完善。如果谁想跑它,告诉我一声。跑Amoeba要有几台386,其中-台至少要有16M内存,所有机器都用WD以太网卡。

Tanenbaum与Torvalds之争:关于“Linux已过时”的辨论

From: [email protected](Linus Benedict Torvalds)

Subject: Re:LINUX is obsolete

Date: 29 Jan 92 23:14:26 GMT

Organization: University of Helsinki

面对这样的标题,我恐怕不得不做出答复了。首先向那在各已经听够了Linux的Minix用户道歉。虽然我很愿意能够对这样的侮辱视而不见。但……此时此刻我特别恼火!

In article<12595fistar.cs.vu.nl>astics.vu.nl(Andy Tanenbaum)writes:

>这几周我身在美国。所以没对LINUX作评论(我要在这的话绝不至于这样),但对于它,

>我现在很有些看法。

>众所周知,MINIX对我未说只是个业余爱好,我是在晚上写书之余完成的,而且新闻里没有

>什么大战,谁也不革谁的命,也没有参议院的听证会可供CNN现场转播。我的本职工作就是

>个教授,一个操作系统领域的研究者。

您拿这些来为Minix的不足开脱吗?对不起,您错了:要说这样的理由,我可以提供的比您还多。但即使这样Linux仍可以在几乎各方面都打败Minix。更不要说这样的事实,PC Minix的大部分好代码似乎都是由Bruce Evans写的。

回复1:您将Minix作为此余爱好——那看看是谁在拿Minix赚钱。又是谁提供自由的Linux,既然谈到业余爱好,那就让我们来说说业余爱好了。如果能够自由提供Minix,我对它最痛心疾首的原因之一也就不存在了。Linux对我而言更像是一个业余爱好(但是一个很正式的爱好:最佳类型的):我没有拿它来赚一分钱,它甚至根本不是我大学学业的一部分。我完全用自己的时间,自己的机器完成成了Linux。

回复2:您的工作是一名教授和研究员:见鬼,那就是为什么Minix中会有那么多心智不全的地方。我只能希望(假定)Amoeba不像Minix那么糟糕。

>1. 微内核:整体内核系统

没错,Linux是整体的,而且我也同意微内核更完美。对于这个没有什么可以讨论的话趣,我能同意的也只是您的大部分言论。从理论(以及审美)角度来看,Linux确实不怎么样。如果GNU的内核在去年春天就可以使用的话。我就不会自找麻烦开始Linux计划了:可事实是不仅那时没有,而且现在仍然没有出现GNU内核。就目前所有的系统可用性而言,Linux大获全胜。

>MINIX是基于微内核的。[deleted,but not so that you miss the

>point] LINUX是个整体内核系统。

如果这是评判一个内核是否优秀的唯一标准的话,您就对了。可您怎么没说Minix在微内核方面做得不怎么好。而且对于真正的多任务(内核中的)还存在问题呢?如果我编写了一个OS,存在多线程文件系统的毛病,我才不会迫不及待地先去谴责别人的问题:事实上,我得先费脑筋让大家忘了我自己犯的大错误。

[没错,据我所知,有人正在为Minix编写多线程支持,但那只是拆东墙补西墙,Bruce Evans告诉我,Minix里有许多的竞争条件]

>2.可移植性

“可移植位是为那些不能写新程序的人预备的”

——我,现在(with tongue in cheek???)

事实是Linux比Minix更容易移植。什么?我知道您要说什么。没错,我就是这么做的——但感觉不象是ast本意。我依照我知道的标准编写Linux(我手头没有任何POSIX标难)。把程序移植到Linux上总的来说要比移植到Minix上要容易的多。

我同意可移植性是一件好事:但只有把它用在该用的地方才有意义。没人愿意编写可移植性过了头的操作系统:保持一个可移植的API已经非常好了。操作系统的另一个受重要的方面是充分使用硬件特性,并利用一层高级调用隐蔽这些特性。这就是Linux所做的:它和其他系统一样使用了386功能的子集,但比它们要多一些。当然。从严格意义上讲这会造成内核的不可移植性,但同时这会使设计简单的多。这是一个可接受的权衡,正因为这样Linux才得以出现。

我同意Linux在不可移植性问题上走了极端:我去年1月才拿到我的386,而且部分说来,Linux也是我学习386的一个计划。如果它能成为一个真正的计划,那么许多程序都应该以更易移植的方式编写。我对此并不想再做过多的解释,因为:这是一个设计决定,而且去年4月当我开始编程的时候,我没想过有什么人会真的需要Linux。我很高兴能够宣布我错了,而且由于任何人都可以免费获得我的源代码,所以即使移植起来不那么容易。也可以试一试。

Linus

附:

我很抱歉有时说话很刺耳:当你没什么操作系统可选的时候,Minix还差不多。如果你能有5到10台Spare和386,Ameoba可能会不错,可惜我没有那么多机器。我并不总是会发火,但如果是针对Linux的,就另当别论了。:)

Tanenbaum与Torvalds之争:关于“Linux已过时”的辨论

From: [email protected](Andy Tanenbaum)

Subject: Re: LINUX is obsolete

Date: 30 Jan 92 13:44:34 GMT

In article <[email protected]> [email protected](Linus Benedict Torvalds)writes:

>您拿这些来为Minix的不足开脱吗?

MINIX的局限性部分可归咎于我的教授行当:它的一个显著的设计目标就是使它能在学生负担得起的便宜硬件上运行。特别是,多年来。它一直运行在一些普普通通的没有硬盘的4.77 MHZ主频的PC上。但你已经可以在上面修改和重编译系统了。我报告一下,大概1年前,MINIX有两种版本,一种是PC上的(一张360K磁盘),一种是286/386上的(一张1.2M磁盘)。

PC版本的售量是286/386版本的2倍。我没有精确的数字,但我猜测目前6千万台PC中386/486机器所占份额少于8088/286/680x0等机器。在学生中比例就更小。软件自由,但只对买得起一流硬件的人们自由,也不失为一种好办法。

5年后当然会不同,但5年后人人都将在他的200MIPS、64M的SPARCstation-5上跑GNU的自由软件。

>回复2:您的工作是一名教授和研究员:见鬼,那就是为什么Minix中会有那么多心智不全的地方。我只能希望(假定)Amoeba不像Minix那么糟糕。

Amoeba是为没有硬盘的8088机器设计的。

>如果这是评判一个内核是否优秀的唯一标准的话,您就对了。可您怎么没说Minix在微内核方面做得不怎么好。而且对于真正的多任务(内核中的)还存在问题呢?如果我编写了一个OS,存在多线程文件系统的毛病,我才不会迫不及待地先去谴责别人的问题:事实上,我得先费脑筋让大家忘了我自己犯的大错误。

多线程文件系统只是个提高性能的黑客行为。但是如果系统中就只有一个活动任务,这也是在低档PC上的通常情形,它没有什么好处而且使代码复杂了。在足够快的机器上,能支持多用户的,你可以有充足的缓冲区来保证高的命中率,这样多线程又没什么好处了。只是当多个进程实际上都真在做磁盘I/O操作有些好处。但此时是否值得把系统搞复杂至少值得讨论。

我还是坚持我的观点:在1991年还设计一个整体内核系统是个根本性的错误。你得庆幸你不是我的学生。你这种设计是得不到高分的。:-)

>事实是Linux比Minix更容易移植。什么?我知道您要说什么。没错,我就是这么做的——但感觉不象是ast本意。我依照我知道的标准编写Linux(我手头没有任何POSIX标准)。把程序移植到Linux上总的来说要比移植到Minix上要容易的多。

MINIX是在POSIX标准出台前设计的,现在正在(渐渐地)被POSIX标准化,每个追踪新闻组的人都知道的。大家都承认用户级的标准是个好主意。顺便提一句,我恭喜你在POSIX标准出台前能写出一个兼容POSIX构造的系统。学习完POSIX冗长的标准后我发现这的确不是件容易的事。

我的观点是:设计过分依赖于特定硬件体系的操作系统,特别是为古怪的Intel系列做设计,根本是个错误。操作系统本身应该是易于被移植到新的硬件平台上的。25年前为IBM/360设计的操作系统OS/360是用汇编语言写的,这尚可原谅。但十年前还只为8088设计MS-DOS操作系统,就不够明智了,IBM和Microsoft现在正痛苦地认识到这一点。到1991年还设计只在386上跑的新的操作系统,看来这学期你要得到你的第二个‘F’分数了。但是如果你在期末考试表现出色的话,你还是能过这门课的。

Prof. Andrew S. Tanenbaum([email protected]

From: [email protected](David Feustel)

Subject: Re: LINUX is obsolete

Date: 30 Jan 9218:57:28 GMT

Organization: DAFCO-AnOS/2Oasis

[email protected](Andy Tanenbaum)writes:

>我还是坚持我的观点:在1991年还设计一个整体内核系统是个根本性的错误。你得庆幸

>你不是我的学生。你这种设计是得不到高分的。:-)

可不是吗。爱因斯坦的数理化就是一团稽。

From: pete@ohm.york.ac.uk(-Pete French.)

Subject: Re: LINUX is obsolete

Date: 31 Jan 92 09:49:37 GMT

Organization:Electronics Department, University of York,UK

In article <[email protected]>, [email protected](David Megginson)says:

>

>In article <[email protected]> [email protected]

>(David Feustel)writes:

>>

可不是吗。爱因斯坦的数理化就是一团糟。

>

>而且Dan Quayle的政治学学分不高。我想世上爱因斯坦只有一个,但像Dan

>Quayle这样的人有一大把.....;-)

多可怕的想法啊!

但从微内核对整体内核的角度来看,部分而言,这难道不是由于我们目前使用的语言造成的吗?我们本来可以把Minix设计成很好的微内核系统。但最终你还得把一大堆二进制数据组成一个大数据块,并做为OS整体装载进来。我们没有把Minix写成独立的程序,这难道不是因为C语言的限制吗?C语言不支持在单独一个代码中编写多个进程。用若干C程序写成的微内核和用象OCCAM这类语言写成的整体内核有什么本质的区别吗?我情愿认为在这种情况下,整体内核设计要比用微内核技术设计的内核美好,因为充分利用语言本身的并发性,可以把内核写得比Minix更模块化。

有人支持Minix吗,:-)

-bat.

From: [email protected](Ken Thompson)

Subject: Re: LINUX is obsolete

Date: 3 Feb 92 23:07:54 GMT

Organization: Georgia Institute of Technology

观点可能和Linux的实用性不太相关。如果按照最新的设计准则来衡量,那么我们今天所使用的软件,即使不是大多数,也有很多都是过时的。大部分用户恐怕并不会关心他们使用的操作系统内部结构是否过时。他们更关心系统用户级的性能和功能。

我基本上同意微内核可能是未来的趋势。但是。我自认为实现整体内核更容易一些。而且在做了修改之后,整体内核也更容易马上形成一个系统。

致意,

Ken

Tanenbaum与Torvalds之争:关于“Linux已过时”的辨论

From: [email protected](Kevin Brown)

Subject: Re: LINUX is obsolete

Date: 4 Feb 92 08:08:42 GMT

Organization: University of Houston

In article <[email protected]>[email protected](Ken Thompson)writes:

>观点可能和Linux的实用性不太相关。如果按照最新的设计准则来衡量,那么我们今天所使

>用的软件,即使不是大多数,也有很多都是过时的。大部分用户恐怕并不会关心他们使

>用的操作系统内部结构是否过时。他们更关心系统用户级的性能和功能。

>

>我基本上同意微内核可能是未来的趋势。但是。我自认为实现整体内核更容易一些。而且

>在做了修改之后,整体内核也更容易马上形成一个系统。

如果不想因为修改而对源代码造成很大的负面影响,构造整体内核的源代码树有多难?你在做这方面努力时都遇到哪些困难。你对这些问题又有哪些建议呢?

我想我的问题是:即使内核是整体的,如果想使对内核的修改尽可能局限在小的范围内,这样组织源代码有多困难?

我估计你已有多年的整体内核开发经验:-),所以我想你可能有这方面比较好的解决方案。

Kevin Brown

From: [email protected](Randy Burns)

Subject: Re: LINUX is obsolete

Date: 30 Jan 92 20:33:07 GMT

Organization: Sun Microsystems, Mt.View,Ca.

In article <[email protected]>[email protected](Andy Tanenbaum)writes:

>In article <[email protected]> [email protected].

>FI(Linus Benedict Torvalds)writes:

>5年后当然会不同,但5年后人人都在他的200MIPS、64M的SPARCStation-5上运行自

>由软件GNU。

好啊,不管谁愿意看到这样,我都支持他。

>事实是Linux比Minix更容易移植。什么?我知道您要说什么。没错,我就是这么做的

>——但感觉不象是ast本意。我依照我知道的标准编写Linux(我手头没有任何POSIX

>标准)。把程序移植到Linux上总的来说要比移植到Minix上要容易的多。

……

>我的观点是:设计过分依赖于特定硬件体系的操作系统,特别是为古怪的Intel系列做设计,根本是个错误。

首先,依据80x86进行精细调整的部分仅限于内核和设备驱动程序。我个人认为,即使Linux仅仅是让我们运行GNU软件的权宜之计,仍然值得依据当前存在的种类繁多的体系结构调整内核。

>操作系统本身应该是易于移植到新的硬件平台上的。

没错,Linux里唯一未具备可移植性的仅仅是内核和设备驱动程序。与编译器、实用工具、窗口系统等其他系统比较起来,这仅仅是一个非常小的部分。由于Linux在很大程度上与可移植OS有很好的调用级兼容性,我不会对Linux抱怨什么。我个人认为如果有一个OS能够让我们某些人充分利用来自伯克利、FSF、卡耐基梅隆大学的软件的话,那它真是非常棒。有可能两三年后BSD变体变的非常便宜,Hurd广泛流行。到那时可能Linux就过时了。不过,现在Linux极大地减少了使用诸如gcc.bison、bash等工具的花费,而这些工具对于开发OS来说是非常有帮助的。

From: [email protected](Linus Benedict Torvalds)

Subject: Re: LINUX is obsolete

Date: 31 Jan 92 10:33:23 GMT

Organization: University of Helsinki

In article <[email protected]>[email protected](Andy Tanenbaum)writes:

>MINIX的局限性部分可归咎于我的教授行当:它的一个显著的设计目标就是使它能在学生负

>担得起的便宜硬件上运行。

好吧:真正的技术角度,这让我的某些话都成了废话。但同时您也搬起石头砸了自己的脚:现在您也承认了,Minix中的部分错误就是它太可移植了;甚至涵盖了那些根本不是为运转UNIX而设计的机器。这个假设导致了这样的事实,很难对Minix进行扩展,增加像换页这类机制,甚至在支持换页的系统上也很难实现。是的,Minix具备可移植性。但您也可以这么说,“它不使用任何机器特性”,这同样正确。

>多线程文件系统只是个提高性能的黑客行为。

错。对于微内核系统它是性能上的修补,但写整体内核时它就是很自然的功能——是微内核不能很好处理的地方(我已在给ast的信中指出了这一点)。当用“过时”的方法写UNIX时。你会很自然地得到一个多线程系统:每一个进程完成自己的作业,你不必为了让系统更高效地工作而完成诸如消息队列之类的糟糕技术。

此外。还有人认为“仅仅是性能上的修补”是非常重要的:如果你没有一台Cray-3的话,我想每个人都肯定会厌倦在计算机旁等上大半天的。我知道,在我使用Minix时就是这样的(我用Linux时也差不多会这样,但要好的多)。

>我还是坚持我的观点:在1991年还设计一个整体内核系统是个根本性的错误。你得庆幸

>你不是我的学生。你这种设计是得不到高分的。:-)

没错,即便不是你教我的成绩也好不了哪去:我曾和这的一位在大学里教授OS的人讨论过(完全跑题了——并不适合于OS)。我想知道成什么时候才能学习,:-)

>我的观点是:设计过分依赖于特定硬件体系的操作系统,特别是为古怪的Intel系列做设计,

>根本是个错误。

但我的观点是,操作系统不是专为某个处理系列设计的:UNIX可以运行在现有的大部分处理器上。没错,实现确实是针对硬件设计的,但那有很大的区别。您提到了OS/360和MS-DOS,您认为这两个系统设计很糟糕,它们过分依赖硬件了,这点我同意。但Linux和它们截然不同:Linux的API是可移植的(这倒不是我的设计有多精明,而是我决定要跟随UNIX,一个倍受好评而且经过了很多测试的OS。)

今天,如果你为Linux编写程序,而当21世纪到来时,你在Hurd上重新编译你的程序且顺利通过,你不应该有什么大惊小怪的。正如前面已经提到的(不仅仅是我一个人提到了),Linux的内核只是一个完整系统里的一个非常小的部分:目前仅仅让Linux运转起来的全部源代码压缩起来才占大约200KB——而一个完整的开发系统的全部源代码压缩起来至少占10MB(而且很容易会变得更大)。所有这些源代码几乎都是可以移植的,只有这个非常小的内核是不可移植的(可以证实,这是我干的),即使事先没有这方面的知识。你大概也要不了一年时间,就可以从头重写这一小部分的内核了(可以证实,我就是这么做的)。

事实上。整个Linux内核比起Mach中的386相关部分要小得多:最新的Mach版本中的i386.tar.Z压缩起来就足有800KB之多(从站点nic.funet.fi可知该文件共823391字节)。不可否认,Mach确实稍微大而且有更多的功能,但这个事实足以让你悟出点什么了。

Linus

From: [email protected](Michael L. Kaufman)

Subject: Re: LINUX is obsolete

Date: 3 Feb 92 22:27:48 GMT

Organization: EECS Department, Northwestern University

我曾经发过这两封信,但我猜测它们都丢了。如果您已经看过了,我深表歉意。

Andy Tanenbaum写了一篇很有意思的文章(而且更有趣的是你还会发现他确实在浏览这个新闻组),但我想他并没有注意到一个很重要的方面。

He Wrote:

>众所周知,MINIX对我来说只是个业余爱好……

这一点对所有参加Linux计划的人而言都是如此,如来不是所有人至少也是太多数。我们并不想开发一个什么系统来占领OS市场,我们只是想过得更快活写。

>更可能的是。它们将渐渐取代80x86系列,它们可以通过软件模拟80386的方式运行

>老的MS-DOS程序。

如果这一切发生了,而且我还是想玩一玩Linux,那我在386的模拟器上运行Linux好了。

>MINIX就设计成是易于移植的,并且已经从Intel系列移植到了680x0(Atari,

>Amiga,Macintosh),SPARC和NS32016。LINUX和80x86系列靠得太近

>了。这不对路。

这对有这些机器的人来说确实不错。但天下没有免费的午餐。这种可移植性确牺牲了性能和386上的某些功能。在你决定Linux不是什么未来趋势之前,你应该考虑一下你用它做什么。我要用它在我的486上运行图形程序,这些程序会消耗很多的内存和计算资源。对我来说,速度、内存要比未来的发展潮流和可移植性更重要。

>但坦白地说,我建议那些寻求**现代**的“自由’的操作系统的人使用基于微内核的可

>移植的操作系统,比如GNU的(译者注:GNU/Hurd,已发布)或与之类似的东西。

我不知道有什么免费的基于微内核的、可移植的OS。GNU仍是水中月、雾中花。而且很可能在最近一段时期仍然是这样。你到底有没有可以推荐的微内核系统呢。还是仅仅要戏弄我?;-)

In article <126150star.cs.vu.nl>[email protected](Andy Tanenbaum)writes:

>我的观点是:设计过分依赖于特定硬件体系的操作系统,特别是为古怪的Intel系列做设计,

>根本是个错误。操作系统本身应该是易于移植到新的硬件平台上的。

我猜,现在我知道那些地方我与你有分岐了。你仅仅看到了OS设计本身。Minix好,是因为它是可移植的/微内核的/等等。Linux不好,是因为它是整体的/与Intel体系联系很紧密/等等。对于学术界来说,这不算是一个怎么奇怪的态度,但你不却能期望这是大家都用这一套。Linux不是用来做教学工具的,或者是个什么概念练习。目前。它是用来让人们可以运行GNU软件的。5年内不可能成为事实的事情并没有今天的事实(嗯,大概截止到4月份)重要。这个事实就是我现在可以运行所有我想运行的软件。你坚持说Minix更好,但如果它不能运行我所需要的软件,那我只能认为,对在来说,它不怎么样。

>25年前为IBM/360设计的操作系统OS/360是用汇编语言写的,这尚可原谅。但十年前还

>只为8088设计MS-DOS操作系统,就不够明智了,IBM和Microsoft现在正痛苦地认识

>到这一点。

同样的道理。微软推出DOS操作系统不是为了“探索OS研究的前沿”。他们没有别的目的,就是赚钱。考虑这样一个事实吧,MS-DOS的销售量比其他OS销售量的总和还要多。我不认为他们真的像你所说的,他们没有达到“他们的目的”。这并不是说MS-DOS不是某种意义上最好的OS,而仅仅是因为它满足了他们的需要。

Michael

Tanenbaum与Torvalds之争:关于“Linux已过时”的辨论

From: [email protected](Julien Maisonneuve)

Subject: Re: LINUX is obsolete

Date: 3 Feb 92 17:10:14 GMT

对于Kevin Brown的大部分言论,我赞成其他的很大一部分。

我想再加一些用户的观点:

-当ast说多线程的文件系统一点用没有时,这倒提醒了我一个事实,我曾多次试图让一个任务在后台运行(比如,当从软盘读取文档时),每次都不行,甚至连外壳操作符也没实现。

-由于ATK编译器异乎寻常的局限性,大多数有用的实用程序都无法在Minix上编译通过。对于基本PC来说,这简直难以理解,而对于386则更是谬可笑。连最笨的DOS编译器都有大模式(当然,代价更高)。我不喜欢13位!

-由于缺少对虚存的支持,无法做实验来学习虚存系统,也无法运行大程序。因为MM的蹩脚设计,修改虚存系统也相当困难。

问题是在Minix下进行一些探索性的工作也是非常痛苦的。如果你需要完成的什么事(或仅仅是玩玩),DOS可能都是你更好的选择(如果有DJ GPP这类的软件)。

从其最基本的形式来看,Minix不过就是一个OS教程的示例而已,一个很好的玩具,但仅仅是个玩具。获得补丁和打补丁都是很烦人的事情,更何况还不能加入更多的更新。

太多的能够使Minix成为真正有用的东西都疏漏了,Minix糟透了。向Andy的工作表示由衷的谢意。但Linux不是您满意的答案。对于普通人来说,Linux比Minix更好使。

Julien Maisonneuve

这不是什么一时冲动,仅是我的一点经验而已。

From: [email protected](Richard Tobin)

Subject: Re: LINUX is obsolete

Date: 4 Feb 92 14:46:49 GMT

Reply-To: [email protected](Richard Tobin)

Organization: AIAI,University of Edinburgh,Scotland

In article<[email protected]>[email protected](Andy Tanenbaum)writes:

>多线程文件系统只是个提高性能的黑客行为。但是如果系统中就只有一个活动任务,这也

>是在低档PC上的通常情形,它没有什么好处而且使代码复杂了。

我发现在使用Minix时,单线程的文件系统确实让人感到头疼。我经常需要在从软盘读取文件时(让人痛苦的缓慢)做点别的事。在编译较大的C或Lisp程序时,我可不愿游手好闲。在编译程序时,我愿意在编辑器里编辑其他文件。

(如果使用文件系统处理文件请求,去掉与终然间的I/O交互,问题可能会在一定程度上得到缓解。)

当然,基本的Minix里没有虚拟控制台,也就不可能运行Emacs,这倒不是什么大问题。但对大多数人来说,这是个败笔,没什么优点可言。这不是一台单用户的机器上不使用多于1个活动进程的情况:由于很多都习惯了糟糕的OS和糟糕的机器,这个说法才显的似乎有点道理。至于可移植性,Minix能够胜出一筹仅仅因为对它的设想十分有限。如果你想要一个功能很完全、带换页、作业控制、窗口系统等等的UNIX,是从基本的Minix开始,逐渐加入新功能,还是从Linux开始,修改一些386相关的代码,哪一个更好呢?我不认为批评Linux是公允的,因为Linux的目标和Minix的相差很多。如果你想要系统用于教学,Minix是你的选择。但如果你所需要在你的家用电脑上拥有一个像SUN工作站一样的环绕,Minix就无能为力了。

——Richard

From: [email protected](Andy Tanenbaum)

Subject: Re:LINUX is obsolete

Date: 5 Feb 92 14:48:48 GMT

Organization: Fae. Wiskunde & Informatica, Vrije Universiteit, Amsterdam

In article <[email protected]>[email protected](RichardT。bin)writes:

>如果你想要一个功能很完全、带换页、作业控制、窗口系统等等的UNIX,是从基本的

>Minix开始,逐渐加入新功能,还是从Linux开始,修改一些386相关的代码,哪一个更

>好呢?

这里遗漏了购买UNIX系统和其他类UNIX系统的可能。如果你只是想使用操作系统,而不是“黑”它的内核,你并没必要得到源代码。Coherent只卖99美元,多花些钱你还可以得到各种拥有更多功能的UNIX操作系统。对真正的黑客来说,得不到源代码是致命的,但对只是想使用UNIX系统的人,可以有很多的选择(包括不是自由的)。

Andy Tanenbaum([email protected]

From:[email protected](Tony Travis)

Subject: Re: LINUX is obsolete

Date: 6 Feb 92 02:17:13 GMT

Organization: Department of Computing, Imperial College, University of London,UK.

[email protected](Andy Tanenbaum)writes:

>这里遗漏了购买UNIX系统和其他类UNIX系统的可能。如果你只是想使用操作系统,而不

>是“黑”它的内核,你并没必要得到源代码。Coherent只卖99美元,多花些钱你还可以

>得到各种拥有更多功能的UNIX操作系统。对真正的黑客来说,得不到源代码是致命的,但

>对只是想使用UNIX系统的人,可以有很多的选择(包括不是自由的)。

Andy,自从这个新闻组有第一篇文章以来我就一直在跟踪Minix的发展,我现在运行1.50版,并且打乐Bruce Evan为386做的补丁。我只是在我的PC上装UNIX,对于探索其他的奥秘我并不感兴趣,但是我需要源代码!

UNIX能够成功和普遍流行的一个很重要的原则就是,在其他人的工作基础上继续工作的思想。

但这一思想有一个基础,那就是必须有源代码,这样才能在新软件中进行借鉴、修改和再利用。

前些年,我曾高兴地成为AT&T第7版UNIX源代码许可证持有人。随后,为了能从AT&T版权的桎梏中得以解放,你决定公开Minix源代码。

我猜想,你有时可能忘记了你的“爱好”对于“个人”UNIX(即,买得起的UNIX)的出现起到了非常深远的影响,而且你可以还忘了在8086 PC机运行Minix 1.2比我现在的386/SX兼容机的代价要高得多。

很明显,Minix并非是所有人的万能药,但据我所知,目前386版本的发展和我所知的68000版本或其他线性地址空间体系结构版本大同小异:这对于像我这样既使用Minix又感到PC版应用程序的段结构束手束脚的人来说是一件非常好的事。

你说什么都说服不了我,让我使用Coherent……

Tony

From: [email protected](Richard Tobin)

Subject: Re: LINUX is obsolete

Date: 7 Feb 92 14:58:22 GMT

Organization: AIAI, University of Edinburgh, Scotland

In article <[email protected]>[email protected](Andy Tanenbaum)writes:

>如果你只是想使用操作系统,而不是“黑”它的

>内核,你并没必要得到源代码。

不幸的是,探索其中的奥秘正是我们中的许多人希望系统能提供给我们的便利……一旦BSD-detox或GNU出现,你就可以摆脱我们了,它们应该在后几个月就发行了吧(是的,就是这个时间)。

——Richard

From: [email protected](Louie)

Subject: Re: LINUX is obsolete

Date: 30 Jan 92 02:55:22 GMT

Organization: University of British Columbia, Vancouver, B.C., Canada

In<[email protected]>[email protected](Andy Tanenbaum)writes:

>但坦白地说,我建议那些寻求**现代**的“自由’的操作系统的人使用基于微内核的可移

>植的操作系统,比如GNU的(译者注:GNU/Hurd,已发布)或与之类似的东西。

对于像我这样需要“自由”OS的人来说,除了Linux之外确实是没有什么其他OS可以用了。想想看,大部分使用“自由”OS的人都使用386,可移植性其实并不是太大的问题。如果我有一台SPARC的话,我就会使Solaris。

就目前的情况,我安装了Linux,并不费吹灰之力就安装了gcc、Emacs 18.57、kermit等所有GNU实用工具。恐怕我无法用同样的价格获得一个类似的OS来完成我的计算机科学作业。而且网络支持和X窗口系统好像也会在Minix之前移植到Linux上。这些东西确实非常有用。以我个人来看,标准UNIX软件的可移植性也很重要。

我知道用整体系统思想完成的设什没有微内核好。但从近期来看(何况我知道我不愿意也不可能升级我的386),Linux是非常适合我的。

Philip Wu

pwu@ unixg.ubc.ca

Tanenbaum与Torvalds之争:关于“Linux已过时”的辨论

From:[email protected](Douglas Graham)

Subject: Re: LINUX is obsolete

Date: 1 Feb 92 00:26:30 GMT

Organization: Bell-Northern Research, Ottawa,Canada

In article<12595istar.cs.vu.nl>astics.vu.nl(Andy Tanenbawm)writes:

>尽管我能详细列举出两种操作系统设计的相对优缺点,但我认为这样说就足够了:在真正

>设计操作系统的人们当中,争论已经结束。微内核已经赢了。

不知你能否推荐一些文献,详细的介绍这两种方法的优缺点?我知道微内核方法肯定有很多很多的说道,但我不知道Minux和其他微内核系统在多大程度上相似。没错,Minix是使用了不少任务和消息,但微内核系统肯定不只这些。我怀疑Minix代码并不能很好地划分成若干个任务。

>整体内核唯一站得住脚的论据就是性能,但现在有足够的证据表明。微内核系统能和整体

>内核一样快(可参见Rick Rashid比较Machine3.0和整体内核的论文),经体内核过

>时了。

我对Minix抱怨最多的地方就是它的性能。为Minix增加功能更是痛苦不堪——按我的理解,这对于一个微内核系统来说应该是相对容易的事。

>MINIX是基于微内核的。

有难查证过?

> LINUX是个整体内核系统。这是向70年代的大倒退。

>就像将工作得好好的C程序用BASIC重写一边。

>在我看来,到1991年还设计整体内核系统实在

>太愚蠢。

这是一个不错的想法,但我不知道它的依据是什么。我想Linux仅有大概12000行代码,而且不认为把它切分成若干任务并发送一大堆消息会对它有什么好处。

>不要误解我了,我不是讨厌LINUX。它的确使那些想把MINIX换成BSD UNIX的人放弃了

>MINIX。但坦白地说,我建议那些寻求**现代**的“自由’的操作系统的人使用基于微内

>核的可移植的操作系统,比如GNU的(译者注:GNU/Hurd,已发布)或与之类似的

>东西。

哼,但我现在还没找到什么其他可供求选择的OS。不过只要GNU OS-发行,我准会再次换旗易帜的。我觉得你可能对Linux有点感冒(这点也在挺令我惊讶的)。我猜测这么多人都如此地拥护Linux大概是因为它提供更多的功能。而你对那些提出增加功能的人的态度却是经常是告诉他们他们并不需要那些功能。我认为大部分人离开Minix转向Linux证明你错了。

反方:我和Linux的开发没有一点关系。我仅是发现它是一个比Minix更好理解的系统。

Doug Graham [email protected] My opinions are my own.

我言皆我意。

From: [email protected](Charles Hedrick)

Subject: Re: LINUX is obsolete

Date: 1 Feb 92 00:27:04 GMT

Organization: Rutgers Univ.,New Brunswick,N.J.

从软件发展的历史可以看出,每一次都是可用性胜出技术一筹。这就是Linux的主要优点。Linux是一个小型的基于386的系统,在很大程度上与UNIX兼容,而且是自由的。几年前我退出了Minix社团,因为有几点已经很明显了(1)Minix近期内不会充分利用高于8086的系统的任何特性。而且(2)许可证——尽管惊人的温和——仍然妨碍对386版本有兴趣的用户改进系统。已有几个人为386做了不少很好的工作。但这些工作只能以补丁的形式发行。对新用户而言,运转386系统是很不行的,事实上我都不能肯定我是否需要这么做。

如果最近几年发生了什么抱歉,我道歉。如果现在可以以拿来就用的方式获得386版本,整个社区也有了新的共享Minix源代码的方式,并且可以相对容易地移植一般的UNIX程序的话,我会重新考虑Minix的。我很喜欢它的设计。

Linux有可能由GNU或自由的BSD取代。然而,如果GNU OS象所有其他GNU软件一样的话,它就需要系统配有128MB的内存和1GB的硬盘。不过对于小型系统来说还是有点空间的。对于我来说,理想的OS是4.4BSD。但4.4的发行日期一直都拖延得很厉害。由于它的大部分成员都跑到了BSDI公司,很难想象这种拖延会有所改善。就我个人使用而言,BSDI系统可能很棒。但即便他们的吸引人的价格对大多数学生而言仍然很贵,即便用户可以从他们那里获得源代码,但是源代码中的某些部分是专有的,你还是不能把改动过的代码放在公用的FTP站点上。不管怎么样,Linux出现了,而其他那些可用的OS还仅是空中楼阁。

From: tytso@athena.mit.edu(Theodore Y.Ts'o)

Subject: Re: LINUX is obsolete

Date: 31 Jan 92 21:40:23 GMT

Organization:Massachusetts Institute of Technology

In-Reply-To: [email protected]'s message of 29 Jan 92 12:12:50 GMT

>From:[email protected](Andy Tanenbaum)

>ftp.cs.vu.nl=192.31.231.42的minix/simulator目录下下载。)我认为为

>特定的体系结构设计操作系统是个大错误,因为也许不久这种体系结构就过时了。

你认为Linux与80386体系结构密切相关,这一点也不是你的错。许多Linux的支持者(不是Linus本人)都是这样说的。然而,比起Minix实现中的硬件相关代码,与80386相关的代码多不了多少,而且比起BSD4.3中的VAX相关代码,Linux要少得多。

姑且承认,向其他体系结构的移植尚未开始。但如果我要在新硬件上移植类UNIX系统的话,我肯定选Linux而不是Minix,非常简单,就是因为当我完成后我要控制我所完成的最终系统。是的,我得重写VM和设备驱动程序层的大部分代码——但对其他OS来说我也得这么做。可能比起把Minix移植到新硬件结构上要难一点;但是最多仅在首次向新硬件结构移植Linux时才会这样。

>尽管我能详细列举出两种操作系统设计的相对优缺点。但我认为这样说就足够了:在真正

>设计操作系统的人们当中,争论已经结束。微内核已经赢了。整体内核唯一站得住脚的论据

>就是性能,但现在有足够的证据表明。微内核系统能和整体内核一样快(可参见Rick

> Rashid比较Machine3.0和整体内核的论文),经体内核过时了。

这并不是那么一回事;我想你可以把本来很复杂的事情想得太简单了。我请你看看Brent Welsh([email protected])的论文“内核内的文件系统”,这篇文章认为文件系统是一个非常成熟的抽象层,应该留在内核里,而不是像严格的微内核设计一样放在内核外面。

还有些人非常关注OSF/1 Mach同整体系统比较时的速度;特别是处理网络传输所需的上下文切换次数,尤其是网络文件系统。

我知道微内核方法的好处。但事实是Linux已经有了,而GNU还没发行——而且许多在Hurd上工作时间比Linus还长的人开始在Linux上写代码了。由于Minix不是自由的,它根本不予考虑。

我猜想微内核与整体内核间的权衡很大程度上依赖于你正在做什么。如果你对做研究感兴趣,很明显,在微内核又剔除和替换模块会容易得多,而且由于只有研究人员才写操作系统方面的论文,因此微内核一定是正确的方法。但是,我知道很多人是不做研究人员,但他们是更加务实的内核程序员,他们更多的关心的是微内核产生的复制的代价、上下文切换的代价。

顺便提一下,对于你的单用户系统无需多线程文件系统的言论,我可不买账。一旦你把窗口系统运行起来,有一个窗口在编译,另一个窗口在阅读新闻组,在后台运行UUCP/C新闻组,即便在单用户系统上你也需要文件系统性能良好。可能对于理论家来说,这种优化没有必要,而且(用你的话未说)是“性能上的修修补补”,但我更关心实实在在的操作系统——而不是一个研究用的玩具。

Theodore Ts'o bloom-beacon!mit-athena!tytso

308 High St., Medford, MA 02155 [email protected]

Everybody's playing the game,but nobody's rules are the same!

每个人都在游戏,但没有谁的规则是一样的!

From: [email protected]

Subject: Re: LINUX is obsolete

Date: 31 Jan 92 13:21:44 GMT

Organization: a blip of entropy

In article <125959star.cs.vu.nl>[email protected](Andy Tanenbaum)writes:

>

> MINIX被设计成是易于移植的。并且已经从Intel系列移植到了680x0(Atari,

>Amiga, Macintosh), SPARC和NS32016。LINUX和80x86系列靠的太近

>了。这不对路。

如果你亲眼看了源代码而不是相信作者,你一定会认识到这些不是真的。

他已经将‘fubyte’换成一个例程了,这个例程显示他使用了段寄存器——但这样以后改起来就方便多了。同样。除了几处是采用了386的MMU外,确切的页面尺寸或其他一些信息都用许多宏隐蔽起来,移植起来会很容易。利用386的TSS使代码更加简单。其实VAX和WE32000也有类似的结构。

正如Linus已经承认的,已有一些计划来完善整个系统,但仅仅是随处使用386汇编代码并不是什么罪过。

现在总结如下:

-书中并没有涉及可移植性问题(除了若干“#ifdefM8088”)

-截至Minix为止,Minix已经存在与8086若干“特性”相关的代码了。这一定曾引起68000用户的不满

>Andy Tanenbaum([email protected]

joe.

From: [email protected](Lawrence C . Foard)

Subject: Re: LINUX is obsolete

Date: 5 Feb 92 14:56:30 GMT

Organization:Worcester Polytechnic Institute

In article <[email protected]>[email protected](AndyTanenbaum)writes:

>不要误解我了,我不是讨厌LINUX。它的确使那些想把MINIX换成BSD UNIX的人放弃了

>MINIX。但坦白地说,我建议那些寻求**现代**的“自由’的操作系统的人使用基于微内

>核的可移植的操作系统,比如GNU的(译者注:GNU/Hurd,已发布)或与之类似的

>东西。

尽管我不能确信微内核是否足够好,我相信你还是有些合理的观点的。如果将二者做某种组合可能会更好。我正在为Linux编写IPC代码,做为其中一部分,我准备加入设备驱动程序和文件以用户进程形式运行的代码。这当然会相当慢,而且我相信将所有的东西都移出内核是个错误(TCP/IP就要在内核中)。

实际上我对OS理论家的主要问题就是,他们从来没有验证过他们的想法!没有一条思想(Mach有部分例外)得见天日。32位家用电脑已经有几乎10年的历史了。但Linus是第一个为家用电脑写了一个可用的OS而又不用付给AT&T $100,000的人。手头上的一件软件要比10件虚幻的软件要值钱的多,OS理论家很快就会对OS不屑一顾,但外面从来就不愿意给我们一个可用的OS。

如果不用真实的应用程序进行测试的话,对微内核是否是未来趋势的一般调查根本说明不了什么。

Linux发行允许我实验我几年来一直想做的实验,但我一直也没有可能直接操作一个能工作的OS的源代码。

From:[email protected](Andy Tanenbaum)

Subject: Re: LINUX is obsolete

Date: 5 Feb 92 23:33:23 GMT

Organization:Fac.Wiskunde&Informatica,Vrije Universiteit, Amsterdam

In article <[email protected]> entropy@ wintermute.WPI.EDU(Lawrence C. Foard)writes:

>实际上我对OS理论家的主要问题就是,他们从来没有验证过他们的想法!

我被严重地侮辱了。我可不是理论家。你随便问一个参加昨天我们系会议的人(开个玩笑)。

事实上。这些想法都已经在实际系统上得到验证。OSF(译者注:Open Software Foundation——开放软件基金会)将它整个体系都建立在微内核系统(Mach 3.0)上。USL(译者注:Unix System Lab,Unix系统实验室)也将它整个体系建立在微内核系统(Chorus)上。Amoeba微内核系统设计完善,不少应用都在上面测试过。QNX也是基于微内核的系统,有人曾告诉我QNX被安装的基数有200,000份。微内核系统不是白日梦。它是经得起考验的技术。

研制Mach的那帮家伙写过篇文章UNIX as an application program(《作为应用程序的UNIX》),作者是Golub等人,发表在1990年夏天的USENIX会议上(译者注:USENIX是高级计算机系统组织,http://www.usenix.org)。Chorus的研制者们也有篇关于微内核性能的技术报告,我也和别人合作了篇文章,昨天的会议上我提到了(1991十二月份的Computing Systems计算机系统会议)。拜托都读一读。

Andy Tanenbaum([email protected]

Tanenbaum与Torvalds之争:关于“Linux已过时”的辨论

From: [email protected](peter da silva)

Subject: Re: LINUX is obsolete

Organization:Xenix Support, FICC

Date: Thu,6 Feb 1992 16:02:47 GMT

In article <[email protected]>[email protected](Andy Tanenbaum)writes:

> QNX也是基于微内核的系统,有人曾告诉我QNX被安装的基数有200,000份。

哦,对,当我讨论这个话题时……有超过3百万的Amigas已经售出,这就是说所有UNIXT厂商销售的总额也没有Amigas多,可能比所有的UNIX系统加起来还多。

From: [email protected](peter da silva)

Subject: Re: LINUX is obsolete

Organization:Xenix Support, FICC

Date: Thu,6 Feb 1992 16:00:22 GMT

In article <[email protected]> [email protected](Lawrence C. Foard)writes:

>实际上我对OS理论家的主要问题就是,他们从来没有验证过他们的想法!

不敢苟同……已经有很多微内核操作系统,从8088(QNX)到更大的研究性系统。

>没有一条思想(Mach有部分例外)得见天日。32位家用电脑已经有几乎10年的历史了。

>但Linus是第一个为家用电脑写了一个可用的OS而又不用付给AT&T $100,000的人。

那AmigaOS操作系统一定一直只是我的幻觉了,那六年来我都是在用一个我虚构的东西了。

AmigaOS是设计基于消息传递的微内核,它的响应时间和性能比现有的操作系统都更好,包括MINIX, OS/2, Windows, Macos. Linux, UNIX以及*最近*出现的MS-DOS。

微内核的设计思想是无价之宝。像一般只能从厂商处获得的新的文件系统这样的东西在Amiga机器上可能只是个业余爱好者的作品。设备驱动程序只是些共享库文件和给定入口点和消息端口的任务。文件系统、窗口系统,也都是这样的。Amiga设计的非常好,它验证了人们对于微内核的所有论断。的确,让它跑起来比基于公共例程的整体内核要难,但它会回报给你以丰富得多的功能。

我真心希望Andy能吸收前一版本的经检教训设计一个新的MINIX系统。MINIX的响应性能相当差,但基本概念是好的。

>The general consensus that Micro kernels is the way to go means nothing when

>a real application has never even run on one.

那我又在做梦了。我一定是认为我为我的Amiga机器买的Deluxe Paint, Sculpt3d, Photon Paint, ManxC, Manx SDB, Perfect Sound, Videoscape 3d以及其他软件都是“真”的了。我在想,现在我恐怕不得不把这些该死的东西送回去了。

Linux的实用性很棒。我很喜欢它。我认为基于整体内核的设计是它这么快被实现的原因之一,这的确是使用整体内核的好理由。但......这并不意味着微内核就更慢,或者它只是个仅供研究的玩意。

From: [email protected](Dave Smythe)

Subject: Re: LINUX is obsolete

Date: 10 Feb 92 07:08:22 GMT

Organization:Netcom-Online Communication Services(408 241-9760 guest)

In article <[email protected] > [email protected](Lawrence C. Foard)writes:

>实际上我对OS理论家的主要问题就是,他们从来没有验证过他们的想法!没有一条思想

>(Mach有部分例外)得见天日。

David Cheriton(斯坦福大学的教授,System V的作者)曾经在分布式系统课上说过与此类似的话。大意如下:

“有两种研究人员:某些实现了什么,某些什么都没有。后者会告诉你有142种做事情的方法,但没有调查哪一种最好。前者只是简单地告诉你那其余的141种方法行不通。”

基于类似的原因,他还痛斥了那些OSI的狂热拥护者。互联网协议族(Internet Protocols)经过很长一段时间使用后才最终被接纳,那些没有实现的东西不能被标准化。与此相反,OSI的支持者们则是在参考实现出台之前就要标准化所有可能被标准化的东西,包括那些违背标准的部分。因此,你会发现许多古老的概念会永垂不朽,比如子字节级的数据域打包,当你的电脑正在从10多Gbs的消防栓痛饮时。你很难获得很好的性能。

不就是我的2分钱吗。

D

Tanenbaum与Torvalds之争:关于“Linux已过时”的辨论

From: [email protected](Linus Benedict Torvalds)

Subject: Apologies(was Re: LINUX is obsolete)

Date: 30 Jan 92 15:38:16 GMT

Organization: University of Helsinki

In article<1992Jan29.231426.20469iklaava.Helsinki.FI>I wrot:e:

>面对这样的主题,我恐怕不得不做出答复了。

回复是我做的,充满了任性放纵,毫无品味和网络理解。向ast深表歉意,并且感谢John Nall友好的“不是这样做的”来信。我过分了些,我现在正以个人的名义给ast去一封信(尖酸刻薄少了很多)。希望没有谁会因为(a)可能Linux已经过时了(尽管某些批评是正确的,我仍然不这么认为)和(b)它是由一个头脑发热的家伙写的而放弃Linux。

“我第一次,也希望是最后一次发火”

From: prnacdona@sanjuan(Peter MacDonald)

Subject: re: Linux is obsolete

Date: 1 Feb 92 02:10:06 GMT

Organization: University of Vietoria, Victoria, BC, CANADA

因为我已经在Minix对Linux的早期讨论中发了一封信,我感到很有必要解释一下我从Minix转为Linux的原因。如下按重要性罗列:

1)Linux是自由的

2) Linuxft.以令人满意的速度发展(Linus在他的发行中接受了许多新功能)。

第一点需要稍做解释,因为我已经买了Minix,什么还能比价格更让我关心的呢?很简单,如果OS是免费的,就会有很多人使用/支持/改造它。基于同样的原因,我购买了386而不是SPARC(如果购买SPARC,我就多花30%的费用)。由于PC很便宜而且一般来说还过得去,会有更多的人购买/使用PC机,这样一来高质量的、便宜/自由的软件就是丰富起来了。

第二点对已经使用过一段时间Minix的人来说再明显不过了,ast一般不接受对Minix的改造。这不是质问ast,而仅仅是陈述事实。ast有他合理和合法的理由这样做,对此我予讨论。

但是Minix有些局限性我已无法忍受,而且由于这样一种策略,在一段合理的时间内这些局限性得到解决的前景并不乐观。这些局限性包括:

不支持386

没有虚拟控制台

不支持软连接

没有select调用

没有虚终端

不支持请页/交换/共享正文/共享库……(没有高效的MM)

chmem(不很灵活的MM)

没有X窗口系统(Linux和386同样有这个问题)

不支付TCP/IP

没有集成GNU/SysV(移植性)

可以通过打补丁解决其他的部分限制(如果你已经自己做了。我就不必跟你说这样做的方便程度了),但至少最后5条已超出了任何合理的期望。

最后,对于Minix的分段内核或是它的微内核体系结构,我的意见(有点尖刻?)是,与在Linux下打PTY补丁不同,给Minix打PTY补丁简直就是告诉我什么是挫折/迷惑。这就是一个因为有了消息传递而复杂了一个功能的实现。

对整体系统和消息传递,我有一点看法,但我现在不便说明,而且也意味着以后会说。我的目标都是近期的(以最小的时间/代价/冲突达到最大的功能),所以我对此所做的意见都是无关的,千万别曲解我的意思。如果你没有因缺少这些功能而感到麻烦,那你应该继续考虑使用Minix,当然只要你不在意付学费。

From:olaf@oski.toppoint.de(Olaf Schlueter)

Subject: Re: Linux is obsolete

Date: 7 Feb 92 11:41:44 GMT

Organization: Toppoint Mailbox e.V.

我仅就Linux对Minix之争讲一点点自己的意见,这场争论已经发展为一场关于整体内核对微内核的讨论了。

我想在提倡两种不同意见的团体之间很难达成一致,如果他们忘了,Linux和Minix是为了不同的应用而设计的。如果你需要运行於单机上的便宜的、功能非常且可以改进的UNIX系统,可以不必费多大事就能移植标准UNIX软件的话,Linux很适合你。如果你对现代操作系统概念感兴趣,而且想学学微内核是如何工作的,Minix是个不错的选择。

这不是反对微内核系统,眼下PC机上已经有了整体内核的UNIX实现,性能不错。这仅仅是说,UNIX可以按整体内核实现会更好,至少在单机上是这样。从用户的角度看,他们根本不在乎OS的内部设计。直到上了网之后就不太一样了。如果采用整体内核的方法,会用一个基于某些硬件设施(如以太网)的用户进程做为文件服务器。如果有程序要使用这些设施,它就必须通过特殊库例程提供的与这个服务器通信的调用才能使用。在微内核,可以无需新的“系统”调用就可以将服务器集成到OS中。从用户角度看,这是个优点,不需要做什么改动,他仅仅是获得了更好的性能(比如,他有了更多的磁盘空间)。从实现者的调度看,微内核系统适用硬件设计的变化更快。

ast拒绝任何对Minix的改进,这已经遭到了批评。由于他更对Minix的教学价值感兴趣。我理解他的想法,他想保持简洁的代码,不想因功能增加而使代码过于庞大。Minix是一个微内核系统,是一个教学工具,尽管某些硬件平台更适合于整体OS,但Minix还是要运行在硬件平台上。不过网络应用正在不断发展,象Amoeba或Plan 9之类的现代系统都不能用整体内核方式编写。所以Minix更注重于给学生们一个微内核系统的实际的样例,让他们学习任务和消息机制。它不是许多人所需要的便宜的、功能丰富,以SysV或BSD系统的十分之一价格就可以购买的OS。

一言概之:Linux并不比Minix好多少,反之也一样。他们是完企不同的。

From:[email protected](David Megginson)

Subject: Mach/Minix/Linux/Gnu etc.

Date: 1 Feb 92 17:11:03 GMT

Organization: University of Toronto-EPAS

呵呵,这是个很有趣的讨论。我已绝对被Tanenbaum教授说服了,微内核是未来之路,但我越看Minix源代码就越不能相信它是微内核的。我不会介意把Linux移植到M68000上的,我就是想要比Minix更多的服务。

一个仅在消息/系统调用和Mach兼容的微内核又怎样?它其实和Mach没有一点关系,比如虚存请页——必须从外部看来和Mach系统很相似,这样才能欺骗今后的GNU UNIX模拟器BSD等。这可能会延长点基于M68000或80286芯片的机器的寿命。此外,我会继续在我的ST上使用Minix的,不会退回到MiNT上——毕竟,Minix更像是UNIX,而MiNT则是试图模仿UNIX但更象TOS(它必须和TOS兼容)。

David

From: [email protected](peter da silva)

Newsgroups: comp.os.minix

Subject: What good does this war do?(Re: LINUX is obsolete)

Date: 3 Feb 92 16:37:24 GMT

Organization: Xenix Support,FICC

两位都消消火,好吗?

我是说,Linux是设计用来在一个经若干年向后兼容性而至残的硬件平台上提供尽可能高性能环境的系统。而Minix则设计为一个教学工具。每一个能很好地完成自己的工作,为什么它们应该如此?Minix很快就黔驴技穷(确实如此)并非是其定位有问题。它本来就更像是一个玩具操作系统。而Linux没有移植到386/AT之外的平台也会在386/AT广为流行后不再成为什么问题(确实相当便宜:你用不了$1000就能买到386/SX)。

整体内核很容易编写,如果想尽早让系统出台,很值得这样做。把它想成是程序员对性能的修修补补。API是可移植的。可以微内核设计替换整个内核(不过Minix不是最终的也不是最圆满的微内核设计:即便是低端的PC……考虑一下AmigaOS吧)而不影响其应用程序。

对于很多工作来说,微内核绝对是更好的设计。我做了很多工作来让它们更高效,这样任何实际过程中无法利用微内核优点的设计都可以出于教学的原因而设计为更简单的系统。把它想成是学生们为性能进行修修补补。当你给微内核接口设计一个API时,性能会非常惊人的(8MHz的68000上每秒钟要进行成千上万次上下文切换),不过设计还是很不错的。

From:[email protected](Andy Tanenbaum)

Subject: Unhappy campers

Date: 3 Feb 92 22:46:40 GMT

Organization: Fac.Wiskunde&Informatica,Vrije Universiteit, Amsterdam

近来从“被惹恼的阵营一方”处收到不少电子邮件。(实际上,从43,000读者那收到10条反馈消息看起来很多,但其实真不算多。)他们看起来有三个很有力的观点:

1.整体内核和微内核一样好

2.可移植性没那么重要

3.软件应该自由(free)

如果大家想对整体内核和微内核做严肃的讨论的话。那好,我们可以到新闻组comp.os.research去。但是如果你不能对你说的话负责的话,就拜托安静点。我帮着实现过3个操作系统了,包括一个整体式系统和两个微内核系统,也详细研究这过很多其他的操作系统。许多我们在争论的东西其实根本就毫无意义(例如,有人说你微内核不好,不能在用户空间做分页——可是Mach正是在用户空间做分页)。

如果对微内核和整体内核不太了解的话,我和Fred Douglis Frans,Kaashoek以及John Ousterhout合作的一片文章对你会有点用,文章发表在USENIX协会的杂志COMPUTING SYSTEMS(《计算机系统》)月刊的1991年第12期上。如果你拿不到该刊,可以到FTP站点ftp.cs.vu.nl(192.31.231.42)的目录amoeba/papers下下载comp_sys.tex.z文件(压缩的TeX格式文件)或者comp_sys.ps.Z文件(压缩的Postscript格式文件)。文中作了实际的性能评测,测试结果支持Rick Rashid的结论:基于微内核的系统可以和整体内核系统一样高效。

至于可移植性,那就不必作什么严肃的探讨了。UNIX已经被移植到了从微机PC到大型机Cray等各种体系结构上了。写一个可移植的操作系统并不比写一个不可移植的操作系统更难了,今天所有操作系统在设计时都会考虑到可移植性。教Linus操作系统课的教授一定提到过这点。使操作系统可移植可不是我在1987年发明出来的。

尽管绝大多数人可以很理性地讨论内核的设计和可移植性问题,但关于自由(free)的辩论就百分百太情绪化了,你都不会相信就因为MINIX不是自由的我被人骂了多少句(此处删去一个脏字)。MINIX售价是169美元,但许可证允许你另做两个备份,所以实际上价钱就低于60美元了。而且,教授们可以为学生随意做拷贝,没有任何限制。Coherent要卖99美元。如果你上不了互联网,自由软件基金会FSF可以把它的自由软件拷贝到磁带上寄给你,索价要大于100美元。我怎么就从没听谁抱怨过。4.4BSD要卖800美元。我不认为钱真是个问题。此外,我想大概大部分读本邮件组的人早都拥有一份MINIX了。

另一个我想怕是没人会欣赏的观点是:想做最广泛地发布并不一定非要把东西放在网上让别人都可以通过FTP下载。互联网还只是少数精英分子的专利。绝大多数计算机还没联上它呢。我从PH公司处了解到,MINIX在德国使用最广泛,而不是美国。这要归功于德国的(商业)计算机刊物的积极推广。在东欧、日本、以色列和南美等地,MINIX都被广泛地使用。要不是有公司销售MINIX的话,这些用户都不可能得到它。

再回到“自由”(“free”)含义的问题上来吧,什么叫自由的源代码?Coherent只提供二进制码,但MINIX和LINUX一样也提供源代码。你可以随意修改它,可以在这里发布。人们一直这样做已经有五年了。我也年年发布自由的更新文件。

我认为这些都不是真正的问题。我曾被一再地被建议为MINIX添加虚存、分页、符号联接、窗口系统和其他种种特性。但我都拒绝了,因为我还是想使MINIX尽可能简单,易于学生们理解。你可以把这些东西加到你的系统中去,但我不会。我猜想,就是这点惹恼了那些抱怨“MINIX不是自由的(free)”,MINIX不该卖60美元的人吧。

一个有意思的问题是:是否Linus愿意让LINUX摆脱他的控制(“free”of his control)。任大家修改它(毁灭它?)和兜售它?还记得吗,当有人发现英国MINIX中心发布消息要以或多或少的价格出售MINIX磁盒时,那成千上万封标题为“Re: Your software sold for money”(Re:你的软件要钱)的电子邮件?

如果Fred van Kempen(译者注:Fred N. Van Kempen是荷兰的Linux老怪,94年就注册了域名Linux.com,尽管从1989年开始van Kempen就用Linux了,但他在荷兰Bussum的一家咨询公司Nobel Van Dijk里主要还是在一台Windows PC土工作,Van Kempen还有张王牌:域名www.linux.net)死灰复燃,又想接管Linux了,造成Fred's LINUX和Linus’LINUX两个都有用但又有所不同的LINUX。这样成吗?当相当一部分人不是按Linus的想法去发展LINUX的时候,真正的考验就来了。可是到那时这就已经没有什么意义了。

如果你喜欢Linus的理念甚于我的理念,那请务必追随他,但请你千万不要说你这样做是因为LINUX是“自由”的。你还是说你想要一个功能丰富的系统了。那好,这是你的自由。我无可厚非。但拜托请说实话。

对那些不读新闻组邮件头的人我补充几句,Linus在芬兰,我在荷兰。是否我们正进入一个时代,自由软件这个一直为美国垄断的重要产业正渐渐要由外来的竞争所接管了?是否不久我们就会发现布什总统将和Richard Stallman和Rick Rashid一起到欧洲来,要求欧洲进口更多的美国自由软件?

Andy Tanenbaum([email protected]

Tanenbaum与Torvalds之争:关于“Linux已过时”的辨论

From: [email protected](Andy Tanenbaum)

Subject: Re: Unhappy campers

Date: 5 Feb 92 23:23:26 GMT

Organization: Fac.Wiskunde&.Informatica, Vrije Universiteit,Amsterdam

In article <[email protected]>fnf@fishp。nd.uucp(Fred Fish)writes:

>If PH was not granted a monopoly on distribultion, it would have been possible

>for all of the interested minix hackers to organize and set up a group that

>was dedicated to producing enhanced-minix. This aim of this group could have

>been to produce a single, supported version of minix with all of the commonly

>requested enhancements. This would have all owed minix to evolve in much the

>same way that gcc has evolved over the last few years.

这“有”可能。如果有群人想这么做,那可太好了。我认为,指挥分布在全世界的1000个歌剧第一女主角演员一起表演,就和饲养一大群猫一样简单,而且还不犯法。新的版本出来后,只要做个相对1.5版的diff列表,再发表它,或者可以通过FTP下载。尽管这要求用户花些时间来安装它,但工作量不大。而且,还有shell脚本文件来产生diff文件并安装上它们。这正是Fred van Kempen在做的。但他错就错在不肯放弃发布新版本的权利,不愿意只为PH公司的底线产品提供diff文件。这就是在赶跑PH公司,它们没兴趣也就不奇怪了。如果还有人想这么做的话,那尽管请吧。

当然。我不必把这些修正放到我的版本中来,所以在保持官方版本和增强版本间的协调同步上有些工作要做。我愿意合作,来减轻点工作量。我和Bruce Evans及Frans Meulenbroeks就一直是这么做的。

如果Linus想控制LINUX的正式版本,而一些热心人又想走别的路,老问题又来了。我不认为这里版权真是个问题。问题在于如何协调上。像GNU, MINIX和LINUX这样的工程只有在一个人主管下才可能进行下去,70年代当结构化程序的思想刚刚出现的时候,Harlan Mills就告诫:编程小组应该按外科手术小组那将样组织——一个外科医生和他/她的助手们,而不是个杀猪场,每人一把斧子自己去剁。

那些声称能毫不混乱地组织四处分散的一大群人一起“黑”一段极复杂的代码的人,一定从未没有实际管理过什么软件项目。

>Where is the sizeable group of people that want to evolve gcc in a way that

>rms/FSF does not approve of?

编译器可是不可以由着人们的喜好任加特性的。如果被编译的语言(例如,遵循ANSI标准,译注:ANSI-American National Standards Institute,美国国家标准委员会)给定了,那么就没有什么余地给你去发明新特性了。操作系统却不同,它给人们提供了无尽的机会去实现他们自己乐意添加的特性。

Andy Tanenbaum([email protected]

From: torvalds@l

Subject: Re: Unhappy campers

Date: 6 Feb 92 10:33:31 GMT

Organization: University of Helsinki

In article<[email protected]>[email protected](AndyTaner.baum)writes:

>

>如果Linus想控制LINUX的正式版本,而一些热心人又想走别的路,老问题又来了。我

>不认为这里版权真是个问题。问题在于如何协调上。像GNU, MINIX和LINUX这样的工程

>只有在一个人主管下才可能进行下去。

这是我第二次看到ast的“责难”了,他感觉对一个他从来没见过的内核品头论足很荣幸。或者至少他没有自问,或是读读alt.os.linux上的文章。为了避免有谁会把他的话想当然,我仅就“保持控制”用2个字(3个?)说明:

我不会。

我唯一能有效控制的仅仅是我比其他人更知道Linux是怎么回事,我已经在FTP站点上做了改动。那些改动已经成为正式发行,我不想某段时间后这种情况会发生变化:不是因为我觉得我应该对Linux拥有更多道义上的权利,而是因为我没有听到什么抱怨,估计再过一两个月我就会找到和我有同感的人了。(嗯,好象已经有这样的人了;tytso已经对0.10版做了很多修改,其他人也对它进行了修补)

事实上我已经发布关于“linux-kernel”邮件组的消息,这个邮件组主要用于确定不同的Linux发行版本,我已经意识到我自己一个人不可能支持所有必须增加的功能:SCSI等,我没有相应的硬件设备。到现在为止还没有响应。可能人们并不太急于修改吧。(对了,有人认为我应该问问是否有人愿意捐赠——如果正好有不用的硬件,我愿意接收它:)

唯一被版权禁止的就是别人不能用它来赚钱,不能使用源代码等等……从常理看这似乎没什么问题,如果有人用我的工作成果去卖钱我会感到很糟,我把Linux做出来是为了让人们可以利用它完成自己的项目。我想多数人都领会了我的意思。

That aside???,如果Fred van Kempen想要制作超级linux,我非常欢迎。他不能拿它来赚钱(可以只收发行费),而且我认为,将Linux分开并不是好主意,经营版权可以让我组织他这将做、但我不会这样。

>我不认为这里版权真是个问题。问题在于如何协调上。像GNU, MINIX和LINUX这样的工

>程只有在一个人主管下才可能进行下去。

是的,协调确实是个大问题。但我不认为经过一段时间后Linux会变成个“脑外科医生”离开我,这部分是因为大多数人已经理解了这些问题。但版权是个问题:如果有人认为我的工作不好,他们就会做自己的。这有点象gcc。然而,Minix的版权却不是这样,如果有人觉得他自己为Minix做了不错的工作,他只能有两条路,或者将他的工作以补丁的方式发行(无伦你怎么说这些补丁,它们都不怎么让人舒服),或者从头重写(否则,你仅仅因为有不同的想法就会遭到打击)。

补丁发行起来并不好玩:我还没为任何一个版本的Linux发行过cdiff呢(我希望这种情况会有所变化:不久就会发行补丁了,而且补丁要比整个内核要小的多,这样一来补丁就可以和内核一起发行了,这是个很好的主意——注意,我最好同时也发行整个内核)。补丁上打补丁很明显是不现实的,尤其对那些自己做修改的人来说。

>编译器可是不可以由着人们的喜好任加特性的。如果被编译的语言(例如,遵循ANSI标准,

>译注:ANSI-American National Standards Institute,美国国家标准委员会)

>给定了,那么就没有什么余地给你去发明新特性了。操作系统却不同,它给人们提

>供了无尽的机会去实现他们自己乐意添加的特性。

不是这样的,比如说GNU的Emaes……别跟我们说人们不喜欢这种编辑器。

Linus

From: [email protected](David Miller)

Subject: Linux is obsolete and follow up postings

Date: 3 Feb 92 01:03:46 GMT

Organization: Applied Computer Group

作为一个对操作系统设计很感兴趣的观察者,我忍不住要说两句。请注意,我没正式使用过Minix或Linux:我使用UNIX已经有很多年了。首先,一些观察点:

Minix是ast为了教学目的而编写的工具,并不是商用操作系统。对UNIX系统来说,自由运行且公开源代码从来就不是其设计的考虑因素。我认为应该尽可能地用微内核和分离进出实现更多的功能,这应该是设计操作系统的方法。

从Linus的角度看,Linux几乎是他的练习题——教他如何对386编程。设计最终的操作系统不是他的目标。提供一个可用而且自由的平台,用它来运行所有广泛使用的自由软件,这是应该考虑的,而且很明显会满足很多人的愿望。

有人批评说这两个系统都不是他们应该是的东西,这有点过了。毕竟,任何有电脑的人都可以两个系统之一,并随意地和Linus和Andrew做一样的事情:自己写OS。

我,仅代表个人,为Linus鼓掌叫好,他为开发Linux付出了艰辛的劳动并且将Linux免费提供给每个人。我也为ast鼓掌叫好,为了他能够使我们买得起Minix——真的不能因为Minix不免费而抱怨。如果我能有时间钻研Minix,一个基本电脑系统,$150元并不是太多——而且我还随系统得到一本书呢。

那么,我来问教授几个问题:

Minix应该是“实际的操作系统”呢?还是一个教学工具?做为教学工具,它是很好的工作。做为一个实际操作系统,它有些致命的局限性(为什么没有为初学者提供malloc()?)通过读您的书和听大家在这的讨论,我觉得您需要一个用于教学的工具,而许多其他人都想要一个买得起的操作系统。这些人已经倾尽全力向Minix加入了不少功能,让它看起来更像一个“实际操作系统”,但不太成功。

为什么要将OS的功能,比如存储管理,分离到用户进程中呢?所有的*NIX大师都知道,成功的策略是分而治之,但目的将问题简化为可以管理的,可以明确定义的部件。如果将操作系统的基本部分分离到用户空间会复杂化问题,带来了附加机制(消息传递、复杂的信号),我们是否达到简化设计和实现的目的呢?

我同意,*NIX是一个因不断增加功能而影响了其设计的例子——尤其是SVR4。可能人们因为功能和兼容性而需要的特性可以通过运行时可转载模块/库提供。微内核应该仍然是最底层的资源管理器,将不同的功能请求转发给相应的模块/库。这些模块可以是线程或用户进程。(我是这样认为的——OS黑客可以纠正我的不当之处:))

不就花我$.04吗——欢迎你发表回复或把它寄给我。我没接受什么正规的计算机科学训练,所以我问这些完全是我的无知。我猜想网上有很多类似的问题,只是可能我以前犯过而已。

——David

From: [email protected](Michael Haardt)

Subject: 1.6.17 summary and why I think AST is right.

Date: 6 Feb 92 20:07:25 GMT

Reply-To: [email protected](Michael Haardt)

Organization: Gandalf-a 386-20 machine

首先我先扼要讲一下“目前”我希望Minix能提供什么,然后我要解释一下为什么我认为ast是对的。

前不久,我询问过MINIX的下一版(1.6.17)的具体细节。我得到了一些回答,但只是从使用1.6.16版的人那里。下面这些信息不是“正式”发布,可能有误,但却是我目前全部知道的。如果有误,敬请指正:

-1.617版补充文件与PH公司发布的1.5版有关。

-整理了头文件。

-两种文件系统能混合使用。

-信号处理部分按POSIX标准重写,更正了老的bug。

-二进制的ANSI兼容的编译器和新的库(我认为可以从Transmediar公司得到)。

-可能还不会支持Amoeba网络协议。

-times(2)能返回正确的值了。实现了termios(2),但这更多的是个黑客行为。我不知道“实现”应该是在内核一级,还是像现在这样通过模拟。

-新的文件系统缺文档。提供了新的fsck和新的mkfs程序,但具体细节不明。

-使用ANSI兼容的编译器,对浮点的支持更好了。

-改进了调度部分,但还不如Kai-Uwe Bloem的实现。

我询问这些是为了找理由来决定考试完我要作出哪种选择,是升级到MINIX 1.6.17版还是Linux。好了,我已作出决定了:这个月底我就将MINIX 1.5从我的winchester硬盘上删去,装上Linux,那时Linux将可以跑我需要的所有应用软件,而这些软件要在打了大量补丁的MINIX 1.5上才能运行,我推想打这些补丁要花两个月。下面是我作出这个决定的主要理由:

-没有“流行”的MINIX版本可以在上面打补丁,而且没有人知道1.6.17版什么时候才会出来。

-库还有些bug,但就我所知,还没人补上它。不会有新的编译器,16位系统的用户将不得不仍使用bug很多的ACK。

-1.617版应提供更多地与POSIX兼容,但terrnios的实现还不完整。

-我怀疑16位系统的用户还能有什么前途。

我想几个月后我就不会再维护MINIX软件列表了。人人都离开了,谁还会想维护它?在Linux可以在我的机器上很“理想”地运行之前,Origami软件的每个新版本还会在我的16位的MINIX上跑。当这些软件的新版本发布时我还会在这发通告。

就我看来,AST对MINIX所做的决定还是对的。我旁观了这场火爆的辩论,忍不住要说我喜欢MINIX的方式,现在Linux也这样了。MINIX有如下优点:

-即使没有温彻斯特硬盘,你也可以跑它,你甚至可以编译程序,几年前我就这么做过了。

-它这么小,你不必对它了解很多就能让它跑的很好。

-有教材。是的,只针对1.3版的,但其中绝大部分仍有效。

-MINIX是非整体内核系统的一个例子。可称之为微内核或者对死脑筋的硬件的黑客行为:它展示了一个概念,一个书面的概念,和它优缺点。

在我看来,对UNIX和系统编程的初学者,MINIX是很好的系统。我的UNIX知识,从UNIX下的C语言编程到系统管理(以及安全漏洞)主要是通过MINIX学到的。MINIX和我一块成长:1.5.xx版本升级、虚终端、邮件和新闻、字处理、交叉编译等等。

现在对我来说它太小了。我不再需要教学系统了,我愿意拥有一个更复杂功能更丰富的UNIX,我有了一个,它就是Linux。

回首从前,V7曾是流行的操作系统。而MINIX提供了它绝大多做的功能。一两年后,你又将熟悉POSIX。很可能地,MINIX将会为需要跑小的实验用的系统的人们提供对POSIX的支持,以及一本新书。(译者:这就是MINIX2.0和Second Edition OPERATING SYSTEMS Design and Implementation,Prentice Hall1997了)

停止发火吧,MINIX和Linux是设计目的不不同的两个系统。一个是教学工具(我认为很捧),另一个是给真正的黑客用的真正的UNIX。

Michael

From:[email protected](Niels Skov Olsen)

Subject: Re: 1.6.17 summary and why I think AST is right.

Date: 10 Feb 92 17:33:39 GMT

Organization: Department of Computer Science, U of Copenhagen

[email protected](Michael Haardt)writes:

>停止发火吧,MINIX和Linux是设计目的不不同的两个系统。一个是教学工具(我认为很

>捧),另一个是给真正的黑客用的真正的UNIX。

听着,听着!现在可以在alt.os.linux(如果你的机器无法从alt.*接收新闻,还可以使用comp.cs.misc)上讨论Linux的话题,在这讨论Minix的问题。

eoff(激情之完结:-)

Niels


Tanenbaum与Torvalds之争:关于“Linux已过时”的辨论

i4CN(工业4.0中国-简称),是中国最系统化、最全面的工业4.0、工业互联网、智能制造、无人工厂领域的第三方咨询公司。公司整合华为、博世、腾讯、美的等专家,首家提供工业4.0整合方案,包括i4技术项目、i4四大管理体系、十大思想变革的三层金字塔式咨询架构;能够指导企业实施专业化的工业4.0变革和无人工厂规划建设与运营管理。助力国家实现中国制造2025的宏伟蓝图。

Tanenbaum与Torvalds之争:关于“Linux已过时”的辨论

梁卓业 i4CN首席咨询顾问中国工业4.0、智能制造、无人工厂、工业互联网专家,华为ISC、IPD体系专家华为ISC+项目组成员,智能制造标杆车间项目经理工业4.0十大思想变革、无人工厂建设体系首创人中山大学麻省理工学院双MBA,广东工业大学机电学院本科欢迎需要导入华为ISC、IPD体系,实施工业4.0无人工厂的企业与i4CN合作。

(请搜索i4CN梁卓业老师相关课程视频并进一步了解)

相关文章