星期日, 十二月 21, 2008

[Geekland]Tanenbaum V.s. Torvalds Debate(Zh_v0.10)

多少年前的老gabua啊,居然被我翻出来了。^-^

火星四射,一个绵里藏针,一个锋芒毕露,都是角。这里有个解读的版本,可惜不够详细。我愈看愈觉得有趣,下面是个小小的尝试。

Appendix A

The Tanenbaum-Torvalds Debate

What follows in this appendix are what are known in the community as the Tanenbaum/Linus "Linux is obsolete" debates. Andrew Tanenbaum is a well-respected researcher who has made a very good living thinking about operating systems and OS design. In early 1992, noticing the way that the Linux discussion had taken over the discussion in comp.os.minix, he decided it was time to comment on Linux.

{一些背景介绍,1992年在Usenet上的comp.os.minix上面已经充斥着linux的相关讨论了,Tanenbaum 先生为了捍卫自己的领地,决定开火了}

Although Andrew Tanenbaum has been derided for his heavy hand and misjudgements of the Linux kernel, such a reaction to Tanenbaum is unfair. When Linus himself heard that we were including this, he wanted to make sure that the world understood that he holds no animus towards Tanenbaum and in fact would not have sanctioned its inclusion if we had not been able to convince him that it would show the way the world was thinking about OS design at the time.

{我们之所以把这些mail包含在这个附件中,不是想冒犯Tanenbaum 先生,连Linus本人对Tanenbaum 先生怀有极大的敬意}

We felt the inclusion of this appendix would give a good perspective on how things were when Linus was under pressure because he abandoned the idea of microkernels in academia. The first third of Linus' essay discusses this further.

我们只是想说明当时Linus,/社区领袖/,在linux发展的开始时期承受了非常巨大的压力,因为linux不是按照学院派微内核的方式来开始的。

{叛逆,独树一帜,good as we expected}

Electronic copies of this debate are available on the Web and are easily found through any search service. It's fun to read this and note who joined into the discussion; you see user-hacker Ken Thompson (one of the founders of Unix) and David Miller (who is a major Linux kernel hacker now), as well as many others.

{看看还有些谁吧!下面我们也可以看到他们的精彩演出}

To put this discussion into perspective, when it occurred in 1992, the 386 was the dominating chip and the 486 had not come out on the market. Microsoft was still a small company selling DOS and Word for DOS. Lotus 123 ruled the spreadsheet space and WordPerfect the word processing market. DBASE was the dominant database vendor and many companies that are household names today--Netscape, Yahoo, Excite--simply did not exist.

注意,这一切都是在1992年发生的,只有386,486还没有出现,m$只是一家买买dos和word的小公司。应用软件市场被Lotus123,WordPerfect还有DBASE统治。而网络,Netscape,Yahoo,Excite都还没有出现{更别提google了}


{馒头由Tanenbaum引发,主题鲜明,linux是过时的/linux是陈旧的/linux是**}


From: ast@cs.vu.nl (Andy Tanenbaum)

Newsgroups: comp.os.minix
Subject: LINUX is obsolete
Date: 29 Jan 92 12:12:50 GMT 

 

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是我的一种消遣。我的工作是一名教授,研究方向就是OS。

{教授!懂吗?Prof.¥^%……*摆明身份,拉开距离}

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:

出于一种职业敏感,对于OS在下一个十年当中如何发展的我多少还知道一点。两个方面:

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文件运行在‘内核模式’下的。这个二进制文件包含了进程管理,内存管理,文件系统以及其它等等。比如{…}

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. 

另一种就是所谓的微内核系统,OS的大部分都作为内核之外的独立进程运行。他们之间通过message交互,内核的工作主要是处理message传递,中断处理,底层进程管理,也许还有一些I/O处理。例如{...}

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'.

对于两种设计的优劣我可以长篇大论一番,足以那些真正有能力设计OS的人满意。这里我只给出结论,争论已经结束,微内核已经赢了,唯一可以商榷的是宏内核系统具有一些性能方面的优势,但是也有证据表明微内核系统可以跑得和宏内核系统一样快(e.g.,...)

{直接给出结论,微内核更好,为下一波攻击奠定基础}

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是一个基于微内核的系统。文件系统和内存管理都是单独的进程,运行于内核之外。I/O drivers也是单独的进程(在内核之中,不过要不是脑残的Intel CPUs,也是可以做到的)。而LINUX是一个宏内核系统,这是一个向着1970年代的巨大退步。就像拿BASIC去重写一个现有的,并且可以运行的C程序一样。对我来说,在1991年还是以一个宏内核的方式去写一个OS是一个非常差的主意。

{喝酒吃肉骂娘,把矛头对准商业公司肯定不是一个坏主意

 

我怎么想到了肯尼迪的人类一大步?

}

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. 

2.可移植性

有的一段时间是4004,然后变成了8008,8080。8086,80286,80386...与此同时RISC芯片业出现了,有些已经超过了100MIPS。200MIPS也有望在不久出现。类似的状况不会突然消失。很可能将来会有新的产品取代80x86产品线。他们将不得不从软件上模拟80386来运行老的MS-DO程序(我本人甚至就用C写过IBM PC模拟器,从...得到)我认为设计一个运行在特定硬件架构上的OS是一个根本性的错误,因为任何一个硬件架构不可能永久存在.

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的移植性设计合理,已经从Intel产品线移植到了680x0...而LINUX和80x86结合的太紧密了,这条路不大行得通。

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. 

Andy Tanenbaum (ast@cs.vu.nl)

别误会,我不是对LINUX不爽 。我只是想让试图从MINIX转到BSD UNIX那些人别来烦我。不过我要真诚地对那些希望得到一个**现代的**"自由的"OS的人说,去找一个基于微内核的,可移植的,也许GNU或者类似的东东是一个选择。

 

Andy Tanenbaum (ast@cs.vu.nl)

{ast就是Tanenbaum

可以看出,当时GNU在做了那么多的准备以后,雄心勃勃的准备开发的OS应该是一个微内核的OS,可惜胎死腹中,也许下面的持续讨论会有一点结论

}

P.S. Just as a random aside, Amoeba has a UNIX emulator (running in user space), but it is far from complete. If there are any people who would like to work on that, please let me know. To run Amoeba you need a few 386s, one of which needs 16M, and all of which need the WD Ethernet card.


{Torvalds登场,锵锵锵锵...}


From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Subject: Re: LINUX is obsolete
Date: 29 Jan 92 23:14:26 GMT

Organization: University of Helsinki

Well, with a subject like this, I'm afraid I'll have to reply. Apologies to minix-users who have heard enough about linux anyway. I'd like to be able to just "ignore the bait", but ... Time for some serious flamefesting! 

对这样一个主题,我恐怕不能不有所回应了。不管怎样,还是要对那些听够了linux的minix用户致歉。我希望大家能够做到“让狗叫吧”,不过...是时候来点严肃的论证了。

{Torvalds开始谦逊几句,没办法,谁叫那时Torvalds还是小弟呢!不过马上就可以看到他的伶牙俐齿了...}

In article <12595@star.cs.vu.nl> ast@cs.vu.nl (Andy Tanenbaum) writes:


>>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.
>>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. 

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.


> ...

你用这个借口来掩饰minix的不足?对不起,你输了:我可以有比你更多的借口,但是linux还是几乎在各个方面都打败了minix。更不要说似乎大部分运行在PC上minix上不错的code都是我的朋友Bruce Evans写的

{首先一样表明态度linux才是赢家,然后打蛇打七寸...教授有什么了不起,还不是不会写代码

Bruce Evans此公也是一角,据说Torvalds从他那里学到了很多Unix的知识}

Re 1: you doing minix as a hobby - look at who makes money off minix, and who gives linux out for free. Then talk about hobbies. Make minix freely available, and one of my biggest gripes with it will disappear. Linux has very much been a hobby (but a serious one: the best type) for me: I get no money for it, and it's not even part of any of my studies in the university. I've done it all on my own time, and on my own machine. 

Re 1:你做minix只是出于爱好 - 看看到底是谁从minix中间收钱吧,而谁又把linux完全免费。说道爱好,让minix完全免费,那么我最大的一个桎梏就会消失。Linux对我而言,很大程度上是一种爱好(不过是认真的:最好的一种):我没有从中得到经济利益,甚至都不是我大学学习课程的一部分。我完全用个人时间,在我个人机器上完成的

Re 2: your job is being a professor and researcher: That's one hell of a good excuse for some of the brain-damages of minix. I can only hope (and assume) that Amoeba doesn't suck like minix does.

Re 2:你的工作是教授和研究员:这倒是minix有些脑残的好借口。我所能期望的是Amoeba不要像minix那么稀烂。


>1. MICROKERNEL VS MONOLITHIC SYSTEM

True, linux is monolithic, and I agree that microkernels are nicer. With a less argumentative subject, I'd probably have agreed with most of what you said. From a theoretical (and aesthetical) standpoint linux looses. If the GNU kernel had been ready last spring, I'd not have bothered to even start my project: the fact is that it wasn't and still isn't. Linux wins heavily on points of being available now.

>1. 微内核 VS 宏内核
诚然,linux是宏内核的,我也认可微内核的优美性。作为一个较少争议的话题,我会同意大部分你说的。从理论角度上(以及美学角度),linux输了。如果GNU内核去年春天就已经就备的话,我是不会开始我的项目的:事实是它没有而且至今没有。在可用性上Linux赢了很多分。

{不是说GNU吗,不过还没有呢。minix?我提都不提,为什么,接着看}


> MINIX is a microkernel-based system. [deleted, but not so that you
> miss the point ] LINUX is a monolithic style system. 

If this was the only criterion for the "goodness" of a kernel, you'd be right. What you don't mention is that minix doesn't do the micro-kernel thing very well, and has problems with real multitasking (in the kernel). If I had made an OS that had problems with a multithreading filesystem, I wouldn't be so fast to condemn others: in fact, I'd do my damndest to make others forget about the fiasco.


>MINIX是一个基于微内核的系统。[删掉吧,...]LINUX是一个宏内核系统。

如果说,这是判别OS“好坏”的唯一标准,你就是对的。你怎么不提minix实际上的微内核做的不是那么好呢,并且在真正多任务(在内核中)上面有很大的问题。如果我的OS在多线程FS上面有问题,我不会那么着急的去骂别人的OS的:实际上,我把我的咒骂送给那些让别人忘记这一点的人。

[ yes, I know there are multithreading hacks for minix, but they are hacks, and bruce evans tells me there are lots of race conditions ]

[是的,我知道有很多针对minix多线程的hack,不过那些只是hacks,bruce evans还告诉我有很多资源竞争]

{译的不好,这一段火星四射,看看原文的语气和出现的单字吧。

虽然承认微内核更优美,但是指出minix做的并不好,关键是指出了minix自身技术上的缺点,这一点从后面其他人的发言可以得到验证

}


>2. PORTABILITY 

"Portability is for people who cannot write new programs" -me, right now (with tongue in cheek)


>2. 可移植性

“可移植性是为那些不会写新程序的人准备的”

-我, 现在(以调侃的语气)

The fact is that linux is more portable than minix. What? I hear you say. It's true - but not in the sense that ast means: I made linux as conformant to standards as I knew how (without having any POSIX standard in front of me). Porting things to linux is generally /much/ easier than porting them to minix.

事实上linux的移植性比minix要好。什么?我似乎听见你说。不过这是真的 - 不过不是在ast所说的意义上:我让linux兼容于我知道的正确(?)标准(没有任何POSIX标准在我面前)。比起minix,向linux移植软件通常/非常/容易。

{Prof.? 我就叫你ast}

I agree that portability is a good thing: but only where it actually has some meaning. There is no idea in trying to make an operating system overly portable: adhering to a portable API is good enough. The very /idea/ of an operating system is to use the hardware features, and hide them behind a layer of high-level calls. That is exactly what linux does: it just uses a bigger subset of the 386 features than other kernels seem to do. Of course this makes the kernel proper unportable, but it also makes for a /much/ simpler design. An acceptable trade-off, and one that made linux possible in the first place.

我认同可移植性是个好东西:但是这只在它确实能够有作用的地方。让一个OS过度的支持移植性是没有意义的:保持一个可移植得API足矣。OS的一个重要/观点/就是充分使用硬件的能力,并把硬件隐藏于一层高层调用的后面。这正是linux所作的:比起其他OS,看起来它使用386一个大得多的特性子集。当然使内核不大具有可移植性,不过这也使设计要简单/很多/。可接受的交换,并且可能使linux处于较好的位置。

I also agree that linux takes the non-portability to an extreme: I got my 386 last January, and linux was partly a project to teach me about it. Many things should have been done more portably if it would have been a real project. I'm not making overly many excuses about it though: it was a design decision, and last april when I started the thing, I didn't think anybody would actually want to use it. I'm happy to report I was wrong, and as my source is freely available, anybody is free to try to port it, even though it won't be easy.

Linus

我也认可linux把不可移植性带到了一个极端:去年一月我拿到了386,linux项目部分的让我意识了这一点。在一个真正的项目中间,让它具有移植请之前有很多事情要做。我不是找借口:这是一个设计决策,去年4月我开始时,我没有想到有谁真的想用它。我很高兴宣称我错了,不过既然我的源码公开,任何人想移植它都是可以的,尽管这可能不容易。

Linus

{这一大段,Torvalds讨论可移植性,首先表明写code才是王道,移植性再好,也意味着要写新code。进一步表明,移植性保持接口一致就OK。同时表明自己的理由,充分利用硬件的能力。最后说明linux是open source的,在接口一致的情况下,要移植谁都可以改它丫的

}

PS. I apologise for sometimes sounding too harsh: minix is nice enough if you have nothing else. Amoeba might be nice if you have 5-10 spare 386's lying around, but I certainly don't. I don't usually get into flames, but I'm touchy when it comes to linux :)

PS. 有些话可能有些刺耳,我为此道歉:如果你什么都没有,minix足够好了。如果你有5-10个空闲的386,Amoeba也很好。我平时不大发火,涉及到linux我有点暴躁 :)

{Torvalds现在都知道他大嘴了,不过那时还是小弟,还是小弟

Torvalds这封信逐条反驳,特别是从一些纯技术的角度指出了一些问题,不像Tanenbaum第一封邮件那样光说不练

}


{ast反击的号角}


From: ast@cs.vu.nl (Andy Tanenbaum)
Subject: Re: LINUX is obsolete
Date: 30 Jan 92 13:44:34 GMT 

In article <1992Jan29.231426.20469@klaava.Helsinki.FI> torvalds@klaava.Helsinki. FI (Linus Benedict Torvalds) writes:


>You use this [being a professor] as an excuse for the limitations of minix?

The limitations of MINIX relate at least partly to my being a professor: An explicit design goal was to make it run on cheap hardware so students could afford it. In particular, for years it ran on a regular 4.77 MHZ PC with no hard disk. You could do everything here including modify and recompile the system. Just for the record, as of about 1 year ago, there were two versions, one for the PC (360K diskettes) and one for the 286/386 (1.2M). The PC version was outselling the 286/386 version by 2 to 1. I don't have figures, but my guess is that the fraction of the 60 million existing PCs that are 386/486 machines as opposed to 8088/286/680x0 etc is small. Among students it is even smaller. Making software free, but only for folks with enough money to buy first class hardware is an interesting concept.


>你用这个(教授)作为minix的借口?

minix的局限性至少部分地应该归因于我是一个教授:最主要的设计目标就是让minix运行在便宜的硬件上,以便学生也能负担。具体点说,这么多年来minix可以运行在没有硬盘的4.77MHz的机器上。你能做的是任何事情,包括修改和重新编译整个系统。准确起见,大约1年前,minix有两个版本,一个用于PC(360k磁盘空间),一个用于286/386(1.2M)。PC版本买的更多,而286/386版本大概是二比一。我手边没有数据可查,我估计在6000w台PCs比起8088/286/680x0等等,386/486是很少的,在学生中他们可能会更少。让软件免费,但是这只是为那些有钱买得起第一流的硬件的人提供,这可真是个好主意。

{表明因为自己是个教授,minix主要用于学生,同时嘲讽linux虽然免费,但是它其实要求的硬件配置太高,大家实际上还是玩不起。

这里Tanenbaum老先生似乎对摩尔定律估计不足,而且软件开发比起硬件来,是个本质上困难的问题}

Of course 5 years from now that will be different, but 5 years from now everyone will be running free GNU on their 200 MIPS, 64M SPARCstation-5.

当然,5年之后情况将会截然不通。不过5年之后每个人都会在他们的200MIPS,64M的SPARC station-5机器上运行自由的GNU了。

{也表明自己的态度,相信免费是最终的方向,不过要在5年以后}


>Re 2: your job is being a professor and researcher: That's one hell of a
>good excuse for some of the brain-damages of minix. I can only hope (and
>assume) that Amoeba doesn't suck like minix does. Amoeba was not designed to run on an 8088 with no hard disk. 
>If this was the only criterion for the "goodness" of a kernel, you'd be
>right. What you don't mention is that minix doesn't do the micro-kernel
>thing very well, and has problems with real multitasking (in the >kernel). If I had made an OS that had problems with a multithreading
>filesystem, I wouldn't be so fast to condemn others: in fact, I'd do my
>damndest to make others forget about the fiasco.

A multithreaded file system is only a performance hack. When there is only one job active, the normal case on a small PC, it buys you nothing and adds complexity to the code. On machines fast enough to support multiple users, you probably have enough buffer cache to insure a hit cache hit rate, in which case multithreading also buys you nothing. It is only a win when there are multiple processes actually doing real disk I/O. Whether it is worth making the system more complicated for this case is at least debatable.


>...(引一大段话)

多线程FS的问题只需要一个性能上的hack。再说在性能受限的PC上,通常只有一个job是激活的,多线程FS除了在code上带来复杂之外,不会带来什么。而在机器足够快的足以支持多用户的系统之上,可能有足够大的缓冲区来保证缓存命中率,在这种情况下多线程也不会带来什么。唯一有用的情况是,多个进程确实在磁盘I/O。在这种情情况下,让系统变得更加复杂是否是值得的至少是有争议的。

{Tanenbaum轻描淡写的反驳了一番Torvalds指出的minix中的问题,得出不是个真正问题的结论。从后面将看到,这是一个失败的策略,从其他人的反馈来看,这是让Tanenbaum在后面的辩论中占据不利地位的一个因素}

I still maintain the point that designing a monolithic kernel in 1991 is a fundamental error. Be thankful you are not my student. You would not get a high grade for such a design :-)

我依然坚持在1991年依然设计一个宏内核的系统是一个根本性的错误。感谢老天你不是我的学生,要不然这样一个设计是不会得到高分的:)

{坚持基本观点,不过还是光说不练,保持了一种轻松的心态,似乎认为自己必胜。并且终于忍不住露出了学霸的嘴脸;-}


>The fact is that linux is more portable than minix. What? I hear you
>say. It's true - but not in the sense that ast means: I made linux as
>conformant to standards as I knew how (without having any POSIX standard
>in front of me). Porting things to linux is generally /much/ easier
>than porting them to minix.

MINIX was designed before POSIX, and is now being (slowly) POSIXized as everyone who follows this newsgroup knows. Everyone agrees that user-level standards are a good idea. As an aside, I congratulate you for being able to write a POSIX-conformant system without having the POSIX standard in front of you. I find it difficult enough after studying the standard at great length.


>...

MINIX在POSIX之前设计,在这个新闻组中的人也都知道,minix正在(缓慢的)POSIX化。任何人都认同在用户层面的标准是个好东东。说句题外话,恭喜你有能力在POSIX标准出来以前,就能写与POSIX兼容的系统。您别说,在学习标准标准一段时间后,我发现它还是很难的。

{haha,Flame真的是蛮有意思的,看看骂人觉得挺过瘾,Tanenbaum呢是老派绅士的讥讽,Torvalds呢就是新时代青年的怒火,原文二人的语气和用词遣句都可以参悟参悟,绝对提升功力}

My point is that writing a new operating system that is closely tied to any particular piece of hardware, especially a weird one like the Intel line, is basically wrong. An OS itself should be easily portable to new hardware platforms. When OS/360 was written in assembler for the IBM 360 25 years ago, they probably could be excused. When MS-DOS was written specifically for the 8088 ten years ago, this was less than brilliant, as IBM and Microsoft now only too painfully realize. Writing a new OS only for the 386 in 1991 gets you your second 'F' for this term. But if you do real well on the final exam, you can still pass the course.

Prof. Andrew S. Tanenbaum (ast@cs.vu.nl)

对于重新写一个与一个硬件架构紧密地联系的 OS,特别是Intel这样一个奇怪的产品线,我的观点是,这是根本错误的。一个OS自身应能够容易的移植到新的硬件平台上。在25年前,IBM 360选择用汇编在编写OS/360,他们可能还有借口。10年前MS-DOS只为8088写,这就要逊很多了。而IBM和M$现今也只能痛苦的面对现实。在1991年只为386重新写一个OS,会让你在这门课上得到第二个‘F’。不过如果你在期末考试中表现出色,你还是可以通过的。

Prof. Andrew S. Tanenbaum (ast@cs.vu.nl)

 

{又一次露出了学霸的面目

咦,怎么落款也变了?前面多了什么?}



From: feustel@netcom.COM (David Feustel)
Subject: Re: LINUX is obsolete
Date: 30 Jan 92 18:57:28 GMT
Organization: DAFCO - An OS/2 Oasis 

ast@cs.vu.nl (Andy Tanenbaum) writes:


>I still maintain the point that designing a monolithic kernel in 1991 is
>a fundamental error. Be thankful you are not my student. You would not
>get a high grade for such a design :-) 

That's ok. Einstein got lousy grades in math and physics.

{这是来打酱油的}


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 <1992Jan30.195850.7023@epas.toronto.edu>, meggin@epas.utoronto.ca (David Megginson) says:>
> In article <1992Jan30.185728.26477feustel@netcom.COM> feustel@netcom.COM (David
> Feustel) writes:
>>
>>That's ok. Einstein got lousy grades in math and physics.
>> And Dan Quayle got low grades in political science. I think that there
>> are more Dan Quayles than Einsteins out there... ;-) 

What a horrible thought ! 

But on the points about microkernel v monolithic, isnt this partly an artifact of the language being used ? MINIX may well be designed as a microkernel system, but in the end you still end up with a large monolithic chunk of binary data that gets loaded in as "the OS". Isn't it written as separate programs simply because C does not support the idea of multiple processes within a single piece of monolithic code. Is there any real difference between a microkernel written as several pieces of C and a monolithic kernel written in something like OCCAM ? I would have thought that in this case the monolithic design would be a better one than the micorkernel style since with the advantage of inbuilt language concurrency the kernel could be made even more modular than the MINIX one is. 

Anyone for MINOX :-) 

-bat.

{来挺Torvalds,认为宏内核和微内核在实现上区别有限,甚至宏内核是一个更好的选择}


{肯爷爷也来了...}


From: kt4@prism.gatech.EDU (Ken Thompson)
Subject: Re: LINUX is obsolete
Date: 3 Feb 92 23:07:54 GMT
Organization: Georgia Institute of Technology 

viewpoint may be largely unrelated to its usefulness. Many if not most of the software we use is probably obsolete according to the latest design criteria. Most users could probably care less if the internals of the operating system they use is obsolete. They are rightly more interested in its performance and capabilities at the user level. 

有用性是与我们{**研究和开发人员**}所应该秉持的观点很大程度上是不相干的。根据最新的设计标准,如果不是大部分,至少是很多我们使用得软件都是过时的。大多数用户是不会关注他们正在使用的OS的内核是否过时,他们只会关注用户层面的性能和能力。

{用户体验才是王道,而不是设计理念。隐约批评了Tanenbaum,不过在第一句,肯爷爷就说有用没用不要紧,哈~~

后面大部分人会支持这个观点}

I would generally agree that microkernels are probably the wave of the future. However, it is in my opinion easier to implement a monolithic kernel. It is also easier for it to turn into a mess in a hurry as it is modified.

Regards, Ken

我同意在一般意义上微内核是未来的发展趋势。但是,我个人以为实现一个宏内核要更容易一点。但是宏内核在需要修改的时候也更容易掉进泥潭。

Regards, Ken

{看看,什么叫两边都不得罪,什么叫和稀泥,看不出来肯爷爷居然这种主,话说得是真有水平啊,都快赶上领导了}



From: kevin@taronga.taronga.com (Kevin Brown)
Subject: Re: LINUX is obsolete
Date: 4 Feb 92 08:08:42 GMT
Organization: University of Houston 

In article <47607@hydra.gatech.EDU > kt4@prism.gatech.EDU (Ken Thompson) writes:
>viewpoint may be largely unrelated to its usefulness. Many if not
>most of the software we use is probably obsolete according to the
>latest design criteria. Most users could probably care less if the
>internals of the operating system they use is obsolete. They are
>rightly more interested in its performance and capabilities at the
>user level.
>
>I would generally agree that microkernels are probably the wave of
>the future. However, it is in my opinion easier to implement a
>monolithic kernel. It is also easier for it to turn into a mess in
>a hurry as it is modified. 

How difficult is it to structure the source tree of a monolithic kernel such that most modifications don't have a large negative impact on the source? What sorts of pitfalls do you run into in this sort of endeavor, and what suggestions do you have for dealing with them? 

I guess what I'm asking is: how difficult is it to organize the source such that most changes to the kernel remain localized in scope, even though the kernel itself is monolithic? 

I figure you've got years of experience with monolithic kernels :-), so I'd think you'd have the best shot at answering questions like these. 

Kevin Brown



From: rburns@finess.Corp.Sun.COM (Randy Burns)
Subject: Re: LINUX is obsolete
Date: 30 Jan 92 20:33:07 GMT
Organization: Sun Microsystems, Mt. View, Ca. 

In article 12615@star.cs.vu.nl ast@cs.vu.nl (Andy Tanenbaum) writes:
>In article <1992Jan29.231426.20469@klaava.Helsinki.FI > torvalds@klaava.Helsinki.
>FI (Linus Benedict Torvalds) writes:  
>Of course 5 years from now that will be different, but 5 years from now
>everyone will be running free GNU on their 200 MIPS, 64M SPARCstation-5. Well, I for one would _love_ to see this happen.  
>>The fact is that linux is more portable than minix. What? I hear you
>>say. It's true - but not in the sense that ast means: I made linux as
>>conformant to standards as I knew how (without having any POSIX standard
>>in front of me). Porting things to linux is generally /much/ easier
>>than porting them to minix.

.........
>My point is that writing a new operating system that is closely tied to any
>particular piece of hardware, especially a weird one like the Intel line,
>is basically wrong.

First off, the parts of Linux tuned most finely to the 80x86 are the Kernel and the devices. My own sense is that even if Linux is simply a stopgap measure to let us all run GNU software, it is still worthwhile to have a finely tuned kernel for the most numerous architecture presently in existance. 


> An OS itself should be easily portable to new hardware
>platforms.

Well, the only part of Linux that isn't portable is the kernel and drivers. Compare to the compilers, utilities, windowing system etc. this is really a small part of the effort. Since Linux has a large degree of call compatibility with portable OS's I wouldn't complain. I'm personally very grateful to have an OS that makes it more likely that some of us will be able to take advantage of the software that has come out of Berkeley, FSF, CMU etc. It may well be that in 2-3 years when ultra cheap BSD variants and Hurd proliferate, that Linux will be obsolete. Still, right now Linux greatly reduces the cost of using tools like gcc, bison, bash which are useful in the development of such an OS.


{Torvalds再度出击}


From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Subject: Re: LINUX is obsolete
Date: 31 Jan 92 10:33:23 GMT
Organization: University of Helsinki 

In article <12615@star.cs.vu.nl > ast@cs.vu.nl (Andy Tanenbaum) writes:
>The limitations of MINIX relate at least partly to my being a professor:
>An explicit design goal was to make it run on cheap hardware so students
>could afford it. 

All right: a real technical point, and one that made some of my comments inexcusable. But at the same time you shoot yourself in the foot a bit: now you admit that some of the errors of minix were that it was too portable: including machines that weren't really designed to run unix. That assumption lead to the fact that minix now cannot easily be extended to have things like paging, even for machines that would support it. Yes, minix is portable, but you can rewrite that as "doesn't use any features", and still be right.

>...

什么都对:一个真正的技术观点,这使我的批评无可置疑。你正是搬起石头砸了自己的脚:现在你承认minix的问题在于它太可移植了一点:甚至包括了那些根本就不打算运行Unix的机器 。这个假设必定使minix不容易扩展到诸如支持分页,甚至是打算支持分页的机器上。是的,minix可移植,你可以用“不使用任何{**新硬件**}features”的方式来重写,这依然是对的。


>A multithreaded file system is only a performance hack. 

Not true. It's a performance hack /on a microkernel/, but it's an automatic feature when you write a monolithic kernel - one area where microkernels don't work too well (as I pointed out in my personal mail to ast). When writing a unix the "obsolete" way, you automatically get a multithreaded kernel: every process does it's own job, and you don't have to make ugly things like message queues to make it work efficiently.


> ...

这不对。这是一个在/微内核/上的性能hack,但是在宏内核上这是一个自然而然的feature - 这是一个微内核做的很差的一个地方(正如在我写给ast的私人邮件里那样)。按照“过时的”方式写的unix,你自然而然的会得到一个多线程的内核:每个进程都有自己的工作,你不需要诸如消息队列这样丑陋的东西来让一切工作的更有效。

{继续抓住技术问题,穷追猛打}

Besides, there are people who would consider "only a performance hack" vital: unless you have a cray-3, I'd guess everybody gets tired of waiting on the computer all the time. I know I did with minix (and yes, I do with linux too, but it's /much/ better). 

除此之外,那些认为“只是一个性能上的hack”重要的人:除非你有一台cray-3,我猜任何时候所有人都厌倦了等待机器。我知道我对minix就是如此(啊,是的,对linux我一样如此,不过这要好得/多/)。

{cray-3是一种超级计算机,用于上世纪80年代末期}


>I still maintain the point that designing a monolithic kernel in 1991 is
>a fundamental error. Be thankful you are not my student. You would not
>get a high grade for such a design :-) 

Well, I probably won't get too good grades even without you: I had an argument (completely unrelated - not even pertaining to OS's) with the person here at the university that teaches OS design. I wonder when I'll learn :) 

> ...

这样吧,即使我没有你,我也很可能拿不到好成绩:在这儿的那些在大学里教OS设计的人,我有一点异议要表达(完全没联系 - 不光OS什么事),我好奇什么时候我才要学习:)

{富贵功名与我如浮云,你想叫我还不学呢

又:瞧他最后一句说的多BH,天做衣裳地做席,我就不知道我还有需要学习的时候,牛人啊...}

>My point is that writing a new operating system that is closely tied to any
>particular piece of hardware, especially a weird one like the Intel line,
>is basically wrong. 

But /my/ point is that the operating system /isn't/ tied to any processor line: UNIX runs on most real processors in existence. Yes, the /implementation/ is hardware-specific, but there's a HUGE difference. You mention OS/360 and MS-DOG as examples of bad designs as they were hardware-dependent, and I agree. But there's a big difference between these and linux: linux API is portable (not due to my clever design, but due to the fact that I decided to go for a fairly-well-thought-out and tested OS: unix.) 


>...

但是/我/的观点是OS/不/系于任何一条处理器产品线:UNIX可以运行在大部分现在存在的处理器上。是的,/实现/是硬件相关的,但是这中间有巨大的区别。你说OS/360和MS-DOG{**WTF**}是个硬件中立设计的坏样板,我同意。但是这些OS和linux之间是不同的:linux的API是可移植的(不是因为我明智的设计,而是因为我决定跟随一个慎重考虑的,经过验证的OS :unix)

If you write programs for linux today, you shouldn't have too many surprises when you just recompile them for Hurd in the 21st century. As has been noted (not only by me), the linux kernel is a miniscule part of a complete system: Full sources for linux currently runs to about 200kB compressed - full sources to a somewhat complete developement system is at least 10MB compressed (and easily much, much more). And all of that source is portable, except for this tiny kernel that you can (provably: I did it) re-write totally from scratch in less than a year without having /any/ prior knowledge. 

你今天为linux写的程序,当你发现在21c,只需要为Hurd重现编译下就可以了的时候,请不要太惊奇。正如已经提到的(不仅仅是我一个人),linux内核只是整个系统的一小部分:现在linux全部的源代码压缩后只有200kB - 完整意义上的系统的源代码压缩后至少有10MB(很容易就多的多)。所有{linux现今的}源代码都是可移植的,除了这个微小的内核,也就是说你可以(可以查明:我就做过),在完全没有/任何/基础知识的情况下,1年以内你可以重头开始重新写出来。

{Hurd,就是GNU project中那个传说的kernel}

In fact the /whole/ linux kernel is much smaller than the 386-dependent things in mach: i386.tar.Z for the current version of mach is well over 800kB compressed (823391 bytes ccording to nic.funet.fi). Admittedly, mach is "somewhat" bigger and has more features, but that should still tell you something.

Linus

实际上,比起386架构相关的mach,/整个/linux内核要小很多:mach现今的压缩过的版本i386.tar.Z大于800kB(据nic.funet.fi,823391字节)。诚然,mach“某种程度上”是要更大,也有更多的features,不过这个事实依然可以说明一点什么。

Linus



From: kaufman@eecs.nwu.edu (Michael L. Kaufman)
Subject: Re: LINUX is obsolete
Date: 3 Feb 92 22:27:48 GMT
Organization: EECS Department, Northwestern University 

 

I tried to send these two posts from work, but I think they got eaten. If you have seen them already, sorry. 

------------------------------------------------------------------------------- 

Andy Tanenbaum writes an interesting article (also interesting was finding out that he actually reads this group) but I think he is missing an important point. 

He Wrote:
>As most of you know, for me MINIX is a hobby, ... 

Which is also probably true of most, if not all, of the people who are involved in Linux. We are not developing a system to take over the OS market, we are just having a good time. 


> 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. 

Well when this happens, if I still want to play with Linux, I can just run it on my 386 simulator. 


> 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. 

That's fine for the people who have those machines, but it wasn't a free lunch. That portibility was gained at the cost of some performance and some features on the 386. Before you decide that LINUX is not the way to go, you should think about what it is going to be used for. I am going to use it for running memory and computation intensive graphics programs on my 486. For me, speed and memory were more important then future state-of-the-artness and portability. 


>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. 

I don't know of any free microkernel-based, portable OSes. GNU is still vaporware, and likely to remain that way for the forseeable future. Do you actually have one to recomend, or are you just toying with me? ;-) 

------------------------------------------------------------------------------ 

In article 12615@star.cs.vu.nl ast@cs.vu.nl (Andy Tanenbaum) writes:
>My point is that writing a new operating system that is closely tied to any
>particular piece of hardware, especially a weird one like the Intel line,
>is basically wrong. An OS itself should be easily portable to new hardware
>platforms. 

I think I see where I disagree with you now. You are looking at OS design as an end in itself. Minix is good because it is portable/Micro-Kernal/etc. Linux is not good because it is monolithic/tightly tied to Intel/etc. That is not a strange attitude for someone in the acedemic world, but it is not something you should expect to be universally shared. Linux is not being written as a teaching tool, or as an abstract exercise. It is being written to allow people to run GNU-type software _today_. The fact that it may not be in use in five years is less important then the fact that today (well, by April probably) I can run all sorts of software on it that I want to run. You keep saying that Minix is better, but if it will not run the software that I want to run, it really isn't that good (for me) at all. 


> When OS/360 was written in assembler for the IBM 360
>25 years ago, they probably could be excused. When MS-DOS was written
>specifically for the 8088 ten years ago, this was less than brilliant, as
>IBM and Microsoft now only too painfully realize. 

Same point. MSoft did not come out with Dos to "explore the frontiers of os research". They did it to make a buck. And considering the fact that MS-DOS probably still outsells everyone else put together, I don't think that you say that they have failed _in their goals_. Not that MS-Dos is the best OS in terms of anything else, only that it has served their needs. 

Michael

{这个老兄从工程学的观点支持linux,指责minix/Tanenbaum光说不练}



From: julien@incal.inria.fr (Julien Maisonneuve)
Subject: Re: LINUX is obsolete
Date: 3 Feb 92 17:10:14 GMT 

I would like to second Kevin brown in most of his remarks.

I'll add a few user points :

- When ast states that FS multithreading is useless, it reminds me of the many times I tried to let a job run in the background (like when reading an archive on a floppy), it is just unusable, the & shell operator could even have been left out.

- Most interesting utilities are not even compilable under Minix because of the ATK compiler's incredible limits. Those were hardly understandable on a basic PC, but become absurd on a 386. Every stupid DOS compiler has a large model (more expensive, OK). I hate the 13 bit compress !

- The lack of Virtual Memory support prevents people studying this area to experiment, and prevents users to use large programs. The strange design of the MM also makes it hard to modify.

The problem is that even doing exploratory work under minix is painful. If you want to get any work done (or even fun), even DOS is becoming a better alternative (with things like DJ GPP). In its basic form, it is really no more than OS course example, a good toy, but a toy. Obtaining and applying patches is a pain, and precludes further upgrades.

Too bad when not so much is missing to make it really good. Thanks for the work andy, but Linux didn't deserve your answer. For the common people, it does many things better than Minix. 

Julien Maisonneuve. 

This is not a flame, just my experience.

{果然,这个老兄就从肯爷爷说的,用户体验的角度谈了几个minux的缺陷,同时也是Torvalds所说的多线程,缺乏虚拟内存管理,页式管理}


{此君好像是个猛人}


From: richard@aiai.ed.ac.uk (Richard Tobin)
Subject: Re: LINUX is obsolete
Date: 4 Feb 92 14:46:49 GMT Reply-To: richard@aiai.UUCP (Richard Tobin)
Organization: AIAI, University of Edinburgh, Scotland 

In article 12615@star.cs.vu.nl ast@cs.vu.nl (Andy Tanenbaum) writes:
>A multithreaded file system is only a performance hack. When there is only
>one job active, the normal case on a small PC, it buys you nothing 

I find the single-threaded file system a serious pain when using Minix. I often want to do something else while reading files from the (excruciatingly slow) floppy disk. I rather like to play rogue while waiting for large C or Lisp compilations. I look to look at files in one editor buffer while compiling in another. 

(The problem would be somewhat less if the file system stuck to serving files and didn't interact with terminal i/o.) 

Of course, in basic Minix with no virtual consoles and no chance of running emacs, this isn't much of a problem. But to most people that's a failure, not an advantage. It just isn't the case that on single-user machines there's no use for more than one active process; the idea only has any plausibility because so many people are used to poor machines with poor operating systems. 

As to portability, Minix only wins because of its limited ambitions. If you wanted a full-featured Unix with paging, job-control, a window system and so on, would it be quicker to start from basic Minix and add the features, or to start from Linux and fix the 386-specific bits? I don't think it's fair to criticise Linux when its aims are so different from Minix's. If you want a system for pedagogical use, Minix is the answer. But if what you want is an environment as much like (say) a Sun as possible on your home computer, it has some deficiencies. 

-- Richard {同样指出minux在多线程文件系统上糟糕的用户体验,

另外,指出minux在可移植性上较好的原因,正是Torvalds所说的有限的features实现,要简单,没有页式内存管理等等}


{ast,第三次出现}


From: ast@cs.vu.nl (Andy Tanenbaum)
Subject: Re: LINUX is obsolete
Date: 5 Feb 92 14:48:48 GMT
Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam 

In article 6121@skye.ed.ac.uk richard@aiai.UUCP (Richard Tobin) writes:
>If you wanted a full-featured Unix with paging, job-control, a window
>system and so on, would it be quicker to start from basic Minix and
>add the features, or to start from Linux and fix the 386-specific
>bits? 

Another option that seems to be totally forgotten here is buy UNIX or a clone. If you just want to USE the system, instead of hacking on its internals, you don't need source code. Coherent is only $99, and there are various true UNIX systems with more features for more money. For the true hacker, not having source code is fatal, but for people who just want a UNIX system, there are many alternatives (albeit not free).

Andy Tanenbaum (ast@cs.vul.nl)  

这里好像另一个观点被忘记了,那就是购买UNIX或者克隆它。如果你只是需要使用系统,而不是从内部去hack他,那么你不需要源代码。两者加一起需要$99,更多其他的有着更多features的UNIX系统需要更多的钱。对于一名真正的hacker,没有源代码是致命的,而对那些仅仅希望一个UNIX系统的人,还是有很多其他的选择的(albeit不是免费的)

  Andy Tanenbaum (ast@cs.vul.nl)



From: ajt@doc.ic.ac.uk (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. 

 

ast@cs.vu.nl (Andy Tanenbaum) writes:


> Another option that seems to be totally forgotten here is buy UNIX or a
> clone. If you just want to USE the system, instead of hacking on its
> internals, you don't need source code. Coherent is only $99, and there
> are various true UNIX systems with more features for more money. For the
> true hacker, not having source code is fatal, but for people who just
> want a UNIX system, there are many alternatives (albeit not free). 

 

Andy, I have followed the development of Minix since the first messages were posted to this group and I am now running 1.5.10 with Bruce Evans's patches for the 386. 

I 'just' want a Unix on my PC and I am not interested in hacking on its internals, but I *do* want the source code! 

An important principle underlying the success and popularity of Unix is the philosophy of building on the work of others. 

This philosophy relies upon the availability of the source code in order that it can be examined, modified and re-used in new software. 

Many years ago, I was in the happy position of being an AT&T Seventh Edition Unix source licencee but, even then, I saw your decision to make the source of Minix available as liberation from the shackles of AT&T copyright!! 

I think you may sometimes forget that your 'hobby' has had a profound effect on the availability of 'personal' Unix (ie. affordable Unix) and that the 8086 PC I ran Minix 1.2 on actually cost me considerably more than my present 386/SX clone. 

Clearly, Minix _cannot_ be all things to all men, but I see the progress to 386 versions in much the same way that I see 68000 or other linear address space architectures: it is a good thing for people like me who use Minix and feel constrained by the segmented architecture of the PC version for applications. 

NOTHING you can say would convince me that I should use Coherent ... 

Tony

{ast的拥趸,从侧面反映了广大Unix用户对AT&T的不满,热切地希望替代品,特别是PC上的替代品的出现。也许这也能解释BSD和linux的命运差异吧,当然社区领导人的因素也可能是原因之一}



From: richard@aiai.ed.ac.uk (Richard Tobin)
Subject: Re: LINUX is obsolete
Date: 7 Feb 92 14:58:22 GMT
Organization: AIAI, University of Edinburgh, Scotland 

In article <12696@star.cs.vu.nl
> ast@cs.vu.nl (Andy Tanenbaum) writes:
>If you just want to USE the system, instead of hacking on its
>internals, you don't need source code.  

Unfortunately hacking on the internals is just what many of us want the system for... You'll be rid of most of us when BSD-detox or GNU comes out, which should happen in the next few months (yeah, right). 

-- Richard

{早期用户都是高级用户,特别是PC用户,都是hacker,看看这个发言人的身份吧}



From: comm121@unixg.ubc.ca (Louie)
Subject: Re: LINUX is obsolete
Date: 30 Jan 92 02:55:22 GMT
Organization: University of British Columbia, Vancouver, B.C., Canada 

 

In <12595@star.cs.vu.nl > ast@cs.vu.nl (Andy Tanenbaum) writes:  
>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.

There are really no other alternatives other than Linux for people like me who want a "free" OS. Considering that the majority of people who would use a "free" OS use the 386, portability is really not all that big of a concern. If I had a Sparc I would use Solaris. 

As it stands, I installed Linux with gcc, emacs 18.57, kermit and all of the GNU utilities without any trouble at all. No need to apply patches. I just followed the installation instructions. I can't get an OS like this *anywhere* for the price to do my Computer Science homework. And it seems like network support and then X-Windows will be ported to Linux well before Minix. This is something that would be really useful. In my opinion, portability of standard Unix software is important also. 

I know that the design using a monolithic system is not as good as the microkernel. But for the short term future (And I know I won't/can't be uprading from my 386), Linux suits me perfectly. 

Philip Wu pwu@unixg.ubc.ca

 

{再次看到在PC革命刚刚开始的时候,可供PC机上运行的类Unix系统选择不多,solaris和BSD一个由于商业策略,一个由于不关心PC(我猜的:),错过了发展的绝佳机会,而其他同时代的众多原形,包括文中提到的众多OS,最典型的如Hurd过于雄心勃勃,没有注意到诸如ken爷爷说的UI问题,推出速度不够快,WIB

还有早期用户,可以看到这些人的能力都是非常强的专业人士,几乎是打着灯笼也难找的用户,他们关心的是一个真正可以运行的系统,linux占的了先机

linux上的另一个优势是和GNU项目的紧密结合,应用软件也是很重要的UI,GNU项目雄心万丈,由于PC革命的过早开始,或者GNU推出OS的速度赶不上PC革命,使得GNU的发展有点变样了}



From: dgraham@bmers30.bnr.ca (Douglas Graham)
Subject: Re: LINUX is obsolete
Date: 1 Feb 92 00:26:30 GMT
Organization: Bell-Northern Research, Ottawa, Canada 

In article <12595@star.cs.vu.nl > ast@cs.vu.nl (Andy Tanenbaum) writes:  
> 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. 

Can you recommend any (unbiased) literature that points out the strengths and weaknesses of the two approaches? I'm sure that there is something to be said for the microkernel approach, but I wonder how closely Minix resembles the other systems that use it. Sure, Minix uses lots of tasks and messages, but there must be more to a microkernel architecture than that. I suspect that the Minix code is not split optimally into tasks.

> 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`. 

My main complaint with Minix is not it's performance. It is that adding features is a royal pain -- something that I presume a microkernel architecure is supposed to alleviate.  
> MINIX is a microkernel-based system. 

Is there a consensus on this?

> 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. 

This is a fine assertion, but I've yet to see any rationale for it. Linux is only about 12000 lines of code I think. I don't see how splitting that into tasks and blasting messages around would improve it.

>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.

Well, there are no other choices that I'm aware of at the moment. But when GNU OS comes out, I'll very likely jump ship again. I sense that you *are* somewhat unhappy about Linux (and that surprises me somewhat). I would guess that the reason so many people embraced it, is because it offers more features. Your approach to people requesting features in Minix, has generally been to tell them that they didn't really want that feature anyway. I submit that the exodus in the direction of Linux proves you wrong. 

Disclaimer: I had nothing to do with Linux development. I just find it an easier system to understand than Minix.

Doug Graham dgraham@bnr.ca My opinions are my own.

{这个老兄认为minux不能算作是真正的微内核的OS,说明微内核的OS在实现上非常困难,实际上,早在1991年的环境下恰恰是微内核的OS的实现是不大可能有着像样的结果的 也提到了GNU OS并没有推出,而linux的诱惑在于提供了足够多的features}


{作者的link}


From: hedrick@klinzhai.rutgers.edu (Charles Hedrick)
Subject: Re: LINUX is obsolete
Date: 1 Feb 92 00:27:04 GMT
Organization: Rutgers Univ., New Brunswick, N.J.  

The history of software shows that availability wins out over technical quality every time. That's Linux' major advantage. It's a small 386-based system that's fairly compatible with generic Unix, and is freely available. I dropped out of the Minix community a couple of years ago when it became clear that (1) Minix was not going to take advantage of anything beyond the 8086 anytime in the near future, and (2) the licensing -- while amazingly friendly -- still made it hard for people who were interested in producing a 386 version. Several people apparently did nice work for the 386. But all they could distribute were diffs. This made bringing up a 386 system a job that isn't practical for a new user, and in fact I wasn't sure I wanted to do it.  

I apologize if things have changed in the last couple of years. If it's now possible to get a 386 version in a form that's ready to run, the community has developed a way to share Minix source, and bringing up normal Unix programs has become easier in the interim, then I'm willing to reconsider Minix. I do like its design.  

It's possible that Linux will be overtaken by Gnu or a free BSD. However, if the Gnu OS follows the example of all other Gnu software, it will require a system with 128MB of memory and a 1GB disk to use. There will still be room for a small system. My ideal OS would be 4.4 BSD. But 4.4's release date has a history of extreme slippage. With most of their staff moving to BSDI, it's hard to believe that this situation is going to be improved. For my own personal use, the BSDI system will probably be great. But even their very attractive pricing is likely to be too much for most of our students, and even though users can get source from them, the fact that some of it is proprietary will again mean that you can't just put altered code out for public FTP. At any rate, Linux exists, and the rest of these alternatives are vapor.

{第一句话开明综意,软件的可用性要比技术上的考量更重要,指出minux有两个劣势,第一是可用性,第二是许可证。虽然minux的设计他很喜欢。 linux其他竞争者GNU要求的资源太高,还是太雄心。BSD4.4陈旧,开发者流失,BSDI在价格和许可证上都有点问题}


{大名鼎鼎的Ts'o,linux kernel专家,fs专家,牛人都是牛,看看这封信的语气和口吻,此君也不是善茬}
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: ast@cs.vu.nl's message of 29 Jan 92 12: 12:50 GMT


>From: ast@cs.vu.nl (Andy Tanenbaum)   
>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.  

It's not your fault for believing that Linux is tied to the 80386 architecture, since many Linux supporters (including Linus himself) have made the this statement. However, the amount of 80386-specific code is probably not much more than what is in a Minix implementation, and there is certainly a lot less 80386 specific code in Linux than here is Vax-specific code in BSD 4.3. 

>...

认为Linux和80386架构是捆在一起,这不是你的错。太多人(包括Linus本人)都这样宣称过。{Linux}与80386架构相关的代码并不比Minux实现中要多,而且比起BSD4.3种和Vax架构相关的代码来说,{Linux}和80386相关的代码也肯定要少。

{一上来就拿code说事,表明了一个真正programmer的自豪感和不屑}

Granted, the port to other architectures hasn't been done yet. But if I were going to bring up a Unix-like system on a new architecture, I'd probably start with Linux rather than Minix, simply because I want to have some control over what I can do with the resulting system when I'm done with it. Yes, I'd have to rewrite large portions of the VM and device driver layers --- but I'd have to do that with any other OS. Maybe it would be a little bit harder than it would to port Minix to the new architecture; but this would probably be only true for the first architecture that we ported Linux to.  

虽然{Linux}向其他架构的移植尚未完成。如果要打算想要一个新的架构移植一个类Unix系统,我情愿从Linux而不是Minux开始,因为在做这个工作时,我简单的希望对这个系统有所控制。诚然,我必须重写很多VM和设备驱动---对于其他任何OS我也不得不这样做。也许比起Minux,移植到一个新的架构这要困难一点,但是这只发生在我们第一次移植Linux到一个新的架构时。 {坚持一种工程学观点,下面还有反映}
>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'.  

This is not necessarily the case; I think you're painting a much more black and white view of the universe than necessarily exists. I refer you to such papers as Brent Welsh's (welch@parc.xerox.com) "The Filsystem Belongs in the Kernel" paper, where in he argues that the filesystem is a mature enough abstraction that it should live in the kernel, not outside of it as it would in a strict microkernel design.

>...

这并不是必需的,我认为你这是一种实际上不必要的非白即黑的观点。我得向您指出这样一篇论文Brent Welsh's (welch@parc.xerox.com) "The Filsystem Belongs in the Kernel",论文中作者认为fs是一种足够成熟的抽象层,如果是一个严格的微内核设计,fs应该实现于内核之中,而不是其外。

{观念也许不重要...起码我不关心}

There also several people who have been concerned about the speed of OSF/1 Mach when compared with monolithic systems; in particular, the nubmer of context switches required to handle network traffic, and networked filesystems in particular.

还有一些人在把OSF/1 Mach与宏内核系统比较的时候,关注运行速度;特别是在网络文件系统上,在上下文切换时需要去面对更多网络处理。

I am aware of the benefits of a micro kernel approach. However, the fact remains that Linux is here, and GNU isn't --- and people have been working on Hurd for a lot longer than Linus has been working on Linux. Minix doesn't count because it's not free. :-)

我很清楚微内核方式的好处,但是现实是Linux就在这儿,而GNU不存在---在Hurd上的老兄比在Linux上的老兄工作的时间要更久。Minix不能位列其中,因为它甚至不是免费的:-)

I suspect that the balance of micro kernels versus monolithic kernels depend on what you're doing. If you're interested in doing research, it is obviously much easier to rip out and replace modules in a micro kernel, and since only researchers write papers about operating systems, ipso facto micro kernels must be the right approach. However, I do know a lot of people who are not researchers, but who are rather practical kernel programmers, who have a lot of concerns over the cost of copying and the cost of context switches which are incurred in a micro kernel.

我怀疑在微内核和宏内核系统之间存在一种平衡,取决于你要做什么。如果你兴趣在做研究上,在微内核系统上拿掉并替换掉一个模块显然要更容易,因为研究者只需要写写OS的论文,{在这种意义上}微内核是理论正确的。但是我知道这里很多人不是研究者,使一些更实际的程序员,比起拷贝的代价或者上下文切换的代价这些在微内核上需要关心的问题来,有很多其他的问题更值得关心。

{瞧瞧,这几段话写的,完全符合一个牛人在我心目中的形象啊,囧}

By the way, I don't buy your arguments that you don't need a multi-threaded filesystem on a single user system. Once you bring up a windowing system, and have a compile going in one window, a news reader in another window, and UUCP/C News going in the background, you want good filesystem performance, even on a single-user system. Maybe to a theorist it's an unnecessary optimization and a (to use your words) "performance hack", but I'm interested in a Real operating system --- not a research toy.

另外,我不是故意的说在一个单用户的系统上你就不需要多线程的fs。如果你打开一个窗口,另一个窗口中编译,在后代还有UUCP/C读新闻组,甚至在单用户系统上你也需要很好的fs性能。不过,也许在一个理论家的眼中者是不需要优化的或者(用你的话说)“性能hack”,但是我只对一个真正的OS感兴趣---而不是一个研究玩具。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

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

308 High St., Medford, MA 02155 tytso@athena.mit.edu

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

{我觉得Tso也许是到目前为止的最挺Linux的一个,或者说是对ast持批评态度最激烈的一个,甚至Linus本人都没有Tso那么强烈

Tso不单言词犀利,而且观点鲜明,并且保持/强调了一个程序员的强烈自豪感}



From: joe@jshark.rn.com
Subject: Re: LINUX is obsolete
Date: 31 Jan 92 13:21:44 GMT
Organization: a blip of entropy 

In article <12595@star.cs.vu.nl
> ast@cs.vu.nl (Andy Tanenbaum) writes:
>
> 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. 

If you looked at the source instead of believing the author, you'd realise this is not true! 

He's replaced 'fubyte' by a routine which explicitly uses a segment register - but that could be easily changed. Similarly, apart from a couple of places which assume the '386 MMU, a couple of macros to hide the exact page sizes etc would make porting trivial. Using '386 TSS's makes the code simpler, but the VAX and WE32000 have similar structures. 

As he's already admitted, a bit of planning would have the the system neater, but merely putting '386 assembler around isn't a crime! 

And with all due respect:

- the Book didn't make an issue of portability (apart from a few "#ifdef M8088"s)

- by the time it was released, Minix had come to depend on several 8086 "features" that caused uproar from the 68000 users.  
>Andy Tanenbaum (ast@cs.vu.nl) 

joe.

{也是来bs Tanenbaum的,居然细扣到了代码的地步,虽然显得有些墙倒众人推的意思,但是代码这个最重要,最能说明问题的地方,minux看来是做得有些不够...

惨烈阿,到此为止的论战几乎是一种半场攻防演练...}



From: entropy@wintermute.WPI.EDU (Lawrence C. Foard)
Subject: Re: LINUX is obsolete
Date: 5 Feb 92 14:56:30 GMT
Organization: Worcester Polytechnic Institute 

In article <12595@star.cs.vu.nl
> ast@cs.vu.nl (Andy Tanenbaum) writes:
>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.    

I believe you have some valid points, although I am not sure that a microkernel is necessarily better. It might make more sense to allow some combination of the two. As part of the IPC code I'm writting for Linux I am going to include code that will allow device drivers and file systems to run as user processes. These will be significantly slower though, and I believe it would be a mistake to move everything outside the kernel (TCP/IP will be internal).    

Actually my main problem with OS theorists is that they have never tested there ideas! None of these ideas (with a partial exception for MACH) has ever seen the light of day. 32 bit home computers have been available for almost a decade and Linus was the first person to ever write a working OS for them that can be used without paying AT&T $100,000. A piece of software in hand is worth ten pieces of vaporware, OS theorists are quick to jump all over an OS but they are unwilling to ever provide an alternative.    

The general consensus that Micro kernels is the way to go means nothing when a real application has never even run on one.    

The release of Linux is allowing me to try some ideas I've been wanting to experment with for years, but I have never had the opportunity to work with source code for a functioning OS.  

{不出意料,又是反对Tanenbaum的人。 事态从Tso开始似乎有点失控,几乎上升到了人身攻击的地步,出现了一个名词,OS理论家。难怪下面ast要跳出来了...}


{ast第四次出现,有点愤怒,不过还好,还能开玩笑}

From: ast@cs.vu.nl (Andy Tanenbaum)
Subject: Re: LINUX is obsolete
Date: 5 Feb 92 23:33:23 GMT
Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam 

In article <1992Feb5.145630.759@wpi.WPI.EDU > entropy@wintermute.WPI.EDU (Lawrence C. Foard) writes:
>Actually my main problem with OS theorists is that they have never tested
>there ideas!

I'm mortally insulted. I AM NOT A THEORIST. Ask anybody who was at our department meeting yesterday (in joke).  

>我认为OS理论家的主要问题是他们从来不去验证他们

>自己的想法。

我被严重冒犯了。我不是一个理论家。问问任何一个昨天参加我们系会议的人(开个玩笑)。

{这个笑话有点冷,大概得意思我猜Tanenbaum是说自己和那些正统教授不是一路人}

Actually, these ideas have been very well tested in practice. OSF is betting its whole business on a microkernel (Mach 3.0). USL is betting its business on another one (Chorus). Both of these run lots of software, and both have been extensively compared to monolithic systems. Amoeba has been fully implemented and tested for a number of applications. QNX is a microkernel based system, and someone just told me the installed base is 200,000 systems. Microkernels are not a pipe dream. They represent proven technology.  

事实上,这些观点在实践中都有很好的验证。OSF把他所有的事务都赌在微内核上(Mach 3.0),USL把赌注下在另一个上(Chorus)。这两个都有很多软件要运行,并且他们都对宏内核系统作了深入广泛地比较。Amoeba也快完成,并且很多应用都作过了测试。QNX是一个基于微内核的系统,有人告诉我装机量大约在200,000台。微内核不是白日梦,而是一种证明了的技术。

{摆出一些事实,对上面众多人等的质疑做出有力的反击}

The Mach guys wrote a paper called "UNIX as an application program." It was by Golub et al., in the Summer 1990 USENIX conference. The Chorus people also have a technical report on microkernel performance, and I coauthored another paper on the subject, which I mentioned yesterday (Dec. 1991 Computing Systems). Check them out.  

Andy Tanenbaum (ast@cs.vu.nl)

 

Mach的那些家伙们写了一篇论文,"UNIX as an application program." 由Golub等人完成,提交在1990年夏天的USENIX会议上。Chorus的那些人也有一个关于微内核性能的技术报告,我也和他人合作了一篇论文,就是我昨天提到的(1991/12,Computing Systems)请自行察看。

Andy Tanenbaum (ast@cs.vu.nl)



From: peter@ferranti.com (peter da silva)
Subject: Re: LINUX is obsolete
Organization: Xenix Support, FICC
Date: Thu, 6 Feb 1992 16:02:47 GMT 

In article <12747@star.cs.vu.nl
> ast@cs.vu.nl (Andy Tanenbaum) writes:
> QNX is a microkernel
> based system, and someone just told me the installed base is 200,000 systems.  

Oh yes, while I'm on the subject... there are over 3 million Amigas out there, which means that there are more of them than any UNIX vendor has shipped, and probably more than all UNIX systems combined.



From: peter@ferranti.com (peter da silva)
Subject: Re: LINUX is obsolete
Organization: Xenix Support, FICC
Date: Thu, 6 Feb 1992 16:00:22 GMT 

In article 1992Feb5.145630.759@wpi.WPI.EDU entropy@wintermute.WPI.EDU (Lawrence C. Foard) writes:
> Actually my main problem with OS theorists is that they have never tested
> there ideas!  

I beg to differ... there are many microkernel operating systems out there for everything from an 8088 (QNX) up to large research systems.  
> None of these ideas (with a partial exception for MACH) has ever
> seen the light of day. 32 bit home computers have been available for almost a
> decade and Linus was the first person to ever write a working OS for them
> that can be used without paying AT&T $100,000.  

I must have been imagining AmigaOS, then. I've been using a figment of my imagination for the past 6 years.  

AmigaOS is a microkernel message-passing design, with better response time and performance than any other readily available PC operating system: including MINIX, OS/2, Windows, MacOS, Linux, UNIX, and *certainly* MS-DOS.  

The microkernel design has proven invaluable. Things like new file systems that are normally available only from the vendor are hobbyist products on the Amiga. Device drivers are simply shared libraries and tasks with specific entry points and message ports. So are file systems, the window system, and so on. It's a WONDERFUL design, and validates everything that people have been saying about microkernels. Yes, it takes more work to get them off the ground than a coroutine based macrokernel like UNIX, but the versatility pays you back many times over.  

I really wish Andy would do a new MINIX based on what has been learned since the first release. The factoring of responsibilities in MINIX is fairly poor, but the basic concept is good.  
> The general consensus that Micro kernels is the way to go means nothing when
> a real application has never even run on one.  

I'm dreaming again. I sure throught Deluxe Paint, Sculpt 3d, Photon Paint, Manx C, Manx SDB, Perfect Sound, Videoscape 3d, and the other programs I bought for my Amiga were "real". I'll have to send the damn things back now, I guess.  

The availability of Linux is great. I'm delighted it exists. I'm sure that the macrokernel design is one reason it has been implemented so fast, and this is a valid reason to use macrokernels. BUT... this doesn't mean that microkernels are inherently slow, or simply research toys.

{难得的为Tanenbaum和微内核说几句公道话的人}



{mail作者的link} From: dsmythe@netcom.COM (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 1992Feb5.145630.759@wpi.WPI.EDU entropy@wintermute.WPI.EDU (Lawrence C. Foard) writes:
>Actually my main problem with OS theorists is that they have never tested
>there ideas! None of these ideas (with a partial exception for MACH) has ever
>seen the light of day.

 

David Cheriton (Prof. at Stanford, and author of the V system) said something similar to this in a class in distributed systems. Paraphrased:

"There are two kinds of researchers: those that have implemented something and those that have not. The latter will tell you that there are 142 ways of doing things and that there isn't consensus on which is best. The former will simply tell you that 141 of them don't work."

He really rips on the OSI-philes as well, for a similar reason. The Internet protocols are adapted only after having been in use for a period of time, preventing things from getting standardized that will never be implementable in a reasonable fashion. OSI adherents, on the other hand, seem intent on standardizing everything possible, including "escapes" from the standard, before a reasonable reference implementation exists. Consequently, you see obsolete ideas immortalized, such as sub-byte-level data field packing, which makes good performance difficult when your computer is drinking from a 10+ Gbs fire-hose :-).

Just my $.02

D

{还有做俯卧撑的}



{Linus的第三次出现}

From: torvalds@klaava.Helsinki.FI (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.20469@klaava.Helsinki.FI I wrote:
>Well, with a subject like this, I'm afraid I'll have to reply.

And reply I did, with complete abandon, and no thought for good taste and netiquette. Apologies to ast, and thanks to John Nall for a friendy "that's not how it's done"-letter. I over-reacted, and am now composing a (much less acerbic) personal letter to ast. Hope nobody was turned away from linux due to it being (a) possibly obsolete (I still think that's not the case, although some of the criticisms are valid) and (b) written by a hothead :-)

Linus "my first, and hopefully last flamefest" Torvalds

>...

我的确回应了,完全没有细想,没有顾及到好品味和网络礼节。向ast道歉,并感谢John Nall友善的来信---“这不是怎么完成它”。我有点反应过度了,而且正在给ast写一封(不那么尖刻的)私人信件。希望不要有人因为linux(a)可能过时(我仍然不那么认为,尽管一些批评是合理的)(b)是一个头脑冲动的家伙写的而放弃它:-)

Linus “我第一次,希望也是最后一次网络论争” Torvalds

{看到自己几乎大获全胜,Linus也准备收手了

不过他的签名...能说什么呢...

}



From: pmacdona@sanjuan (Peter MacDonald)
Subject: re: Linux is obsolete
Date: 1 Feb 92 02:10:06 GMT
Organization: University of Victoria, Victoria, BC, CANADA  

Since I think I posted one of the earliest messages in all this discussion of Minix vs Linux, I feel compelled to comment on my reasons for switching from Minix to Linux. In order of importance they are:

1) Linux is free

2) Linux is evolving at a satisfactory clip (because new features are accepted into the distribution by Linus).

The first requires some explanation, because if I have already purchased Minix, what posssible concern could price have for me? Simple. If the OS is free, many more people will use/support/enhance it. This is also the same reasoning I used when I bought my 386 instead of a sparc (which I could have got for just 30% more). Since PCs are cheap and generally available, more people will buy/use them and thus good, cheap/free software will be abundant.

The second should be pretty obvious to anyone who has been using Minix for for any period of time. AST generally does not accept enhancements to Minix. This is not meant as a challenge, but merely a statement of fact. AST has good and legitimate reasons for this, and I do not dispute them. But Minix has some limitations which I just could no longer live with, and due to this policy, the prospect of seeing them resolved in reasonable time was unsatisfactory. These limitations include:

no 386 support

no virtual consoles

no soft links

no select call

no ptys

no demand paging/swapping/shared-text/shared-libs... (efficient mm) chmem (inflexible mm)

no X-Windows (advocated for the same reasons as Linux and the 386).

no TCP/IP no GNU/SysV integration (portability)

Some of these could be fixed by patches (and if you have done this yourself, I don't have to tell you how satisfactory that is), but at least the last 5 items were/are beyond any reasonable expectation.

Finally, my comment (crack?) about Minix's segmented kernel, or micro-kernel architecture was more an expression of my frustration/ bewilderment at attempting to use the Minix PTY patches as a guide of how to do it under Linux. That particular instance was one where message passing greatly complicated the implementation of a feature.

I do have an opinion about Monlithic vs Message Passing, but won't express it now, and did not mean to expresss it then. My goals are totally short term (maximum functionality in the minimum amount of time/cost/hassle), and so my views on this are irrelevant, and should not be misconstrued. If you are non-plussed by the lack of the above features, then you should consider Minix, as long as you don't mind paying of course :)

{Linus想收手,可惜如此口水的话题不会就此甘休的

这个老兄继续打击minux,两点,第一minux不免费,第二指出minux对开发者不友好,前面有人小心翼翼的提到过这个问题了,就是许可证的问题

}



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.

Just a few comments to the discussion of Linux vs Minix, which evolved partly to a discussion of monolithic vs micro-kernel.

I think there will be no aggreement between the two parties advocating either concept, if they forget, that Linux and Minix have been designed for different applications. If you want a cheap, powerful and enhancable Unix system running on a single machine, with the possibility to adapt standard Unix software without pain, then Linux is for you. If you are interested in modern operating system concepts, and want to learn how a microkernel based system works, then Minix is the better choice.

It is not an argument against microkernel system, that for the time being monolithic implemenations of Unix on PCs have a better performance. This means only, that Unix is maybe better implemented as a monolithic OS, at least as long as it runs on a single machine. From the users point of view, the internal design of the OS doesn't matter at all. Until it comes to networks. On the monolithic approach, a file server will become a user process based on some hardware facility like ethernet. Programs which want to use this facility will have to use special libraries which offer the calls for communication with this server. In a microkernel system it is possible to incorporate the server into the OS without the need for new "system" calls. From the users point of view this has the advantage, that nothing changes, he just gets better performance (in terms of more disk space for example). From the implementors point of view, the microkernel system is faster adaptable to changes in hardware design.

It has been critized, that AST rejects any improvements to Minix. As he is interested in the educational value of Minix, I understand his argument, that he wants to keep the code simple, and don't want to overload it with features. As an educational tool, Minix is written as a microkernel system, although it is running on hardware platforms, who will probably better perform with a monolithic OS. But the area of network applications is growing and modern OS like Amoeba or Plan 9 cannot be written as monolithic systems. So Minix has been written with the intention to give students a practical example of a microkernel OS, to let them play with tasks and messages. It was not the idea to give a lot of people a cheap, powerful OS for a tenth of the price of SYSV or BSD implementations.

Resumee: Linux is not better than Minix, or the other way round. They are different for good reasons.

{来和稀泥的,发表了一些自己的看法,这种观点看起来中庸,但是近似于扯淡

不过但是说出了minix的用途,教学工具,ast无意使它过于复杂,没有什么雄心,没有看到在minix的周围,由于PC革命的开始,已经聚集了一些真实的用户,这也是前面一再提到的许可证的问题根源。

}



{此人也是开源社区的老大,SAX的leader}

From: meggin@epas.utoronto.ca (David Megginson)
Subject: Mach/Minix/Linux/Gnu etc.
Date: 1 Feb 92 17:11:03 GMT
Organization: University of Toronto - EPAS 

Well, this has been a fun discussion. I am absolutely convinced by Prof. Tanenbaum that a micro-kernel _is_ the way to go, but the more I look at the Minix source, the less I believe that it is a micro-kernel. I would probably not bother porting Linux to the M68000, but I want more services than Minix can offer. 

What about a micro-kernel which is message/syscall compatible with MACH? It doesn't actually have to do everything that MACH does, like virtual memory paging -- it just has to _look_ like MACH from the outside, to fool programs like the future Gnu Unix-emulator, BSD, etc. This would extend the useful lives of our M68000- or 80286-based machines for a little longer. In the meantime, I will probably stay with Minix for my ST rather than switching back to MiNT -- after all, Minix at least looks like Unix, while MiNT looks like TOS trying to look like Unix (it has to, to be TOS compatible). 

David

{支持微内核,但是也指出minix在代码上的不足,又表示要继续使用minix

}



From: peter@ferranti.com (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  

Will you quit flaming each other? 

I mean, linux is designed to provide a reasonably high performance environment on a hardware platform crippled by years of backwards-compatible kludges. Minix is designed as a teaching tool. Neither is that good at doing the other's job, and why should they? The fact that Minix runs out of steam quickly (and it does) isn't a problem in its chosen mileau. It's sure better than the TOY operating system. The fact that Linux isn't transportable beyond the 386/AT platform isn't a problem when there are millions of them out there (and quite cheap: you can get a 386/SX for well under $1000). 

A monolithic kernel is easy enough to build that it's worth doing it if it gets a system out the door early. Think of it as a performance hack for programmer time. The API is portable. You can replace the kernel with a microkernel design (and MINIX isn't the be-all and end-all of microkernel designs either: even for low end PCs... look at AmigaOS) without disturbing the applications. That's the whole point of a portable API in the first place. 

Microkernels are definitely a better design for many tasks. I takes more work to make them efficient, so a simpler design that doesn't take advantage of the microkernel in any real way is worth doing for pedagogical reasons. Think of it as a performance hack for student time. The design is still good and when you can get an API to the microkernel interface you can get VERY impressive performance (thousands of context switches per second on an 8 MHz 68000).



{ast第五次,愤怒了}

From: ast@cs.vu.nl (Andy Tanenbaum)
Subject: Unhappy campers
Date: 3 Feb 92 22:46:40 GMT
Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam 

I've been getting a bit of mail lately from unhappy campers. (Actually 10 messages from the 43,000 readers may seem like a lot, but it is not really.) There seem to be three sticking points: 

1. Monolithic kernels are just as good as microkernels

2. Portability isn't so important

3. Software ought to be free 

我已经从一些不高兴的社区参与者中得到了一些邮件(实际上从43,000名读者中10条消息看起来有点多,但这不是真的)。看起来有三个关键点:

1. 宏内核和微内核一样好

2. 可移植性不那么重要

3. 软件应该免费/自由

{第三点才是重点}

If people want to have a serious discussion of microkernels vs. monolithic kernels, fine. We can do that in comp.os.research. But please don't sound off if you have no idea of what you are talking about. I have helped design and implement 3 operating systems, one monolithic and two micro, and have studied many others in detail. Many of the arguments offered are nonstarters (e.g., microkernels are no good because you can't do paging in user space-- except that Mach DOES do paging in user space). 

如果大家想认真的讨论微内核vs.宏内核,那好,我们可以去comp.os.research。但是如果你们对讨论的东西没什么概念,你们就不能明确的说出什么。我曾经帮助设计和实现了三个OS,一个宏内核和两个微内核的,并且仔细研究了很多其他的OS。很多的争议都是没意义的(比如,微内核是不好的因为在用户空间上不能作paging--除了Mach已经在用户空间上作了paging以外)

If you don't know much about microkernels vs. monolithic kernels, there is some useful information in a paper I coauthored with Fred Douglis, Frans Kaashoek and John Ousterhout in the Dec. 1991 issue of COMPUTING SYSTEMS, the USENIX journal). If you don't have that journal, you can FTP the paper from ftp.cs.vu.nl (192.31.231.42) in directory amoeba/papers as comp_sys.tex.Z (compressed TeX source) or comp_sys.ps.Z (compressed PostScript). The paper gives actual performance measurements and supports Rick Rashid's conclusion that microkernel based systems are just as efficient as monolithic kernels. 

如果你对微内核vs.宏内核不那么了解,这儿有一篇我和Fred Douglis, Frans Kaashoek and John Ousterhout和写的,发表在1991年的USENIX期刊上的论文COMPUTING SYSTEMS。如果你没有这本杂志,你可以FTP到ftp.cs.vu.nl (192.31.231.42),目录amoeba/papers 有一个comp_sys.tex.Z(压缩过的TeX的源)或者comp_sys.ps.Z (以PostScript压缩)。这篇论文给出了确切的性能衡量,支持了Rick Rashid的结论:基于微内核的系统比宏内核系统要更加有效。

{讨论第一点,还是不能拿代码说事,还是有点学霸的面孔}

As to portability, there is hardly any serious discussion possible any more. UNIX has been ported to everything from PCs to Crays. Writing a portable OS is not much harder than a nonportable one, and all systems should be written with portability in mind these days. Surely Linus' OS professor pointed this out. Making OS code portable is not something I invented in 1987. 

至于说到可移植性,不再需要认真的谈论了。UNIX已经被移植到了从PC到Crays的任何机器上。写一个可移植的OS并不比不可移植的OS难多少,而且所有系统在未开始之前,脑海中首先就要考虑移植性的问题。很显然Linus's OS教授先生已经指出了这一点。让OS的代码具备一致性并不是什么我在1987年才发明的东西。

{不得不说,老先生还是很让人尊敬的,老派的绅士风度}

While most people can talk rationally about kernel design and portability, the issue of free-ness is 100% emotional. You wouldn't believe how much [expletive deleted] I have gotten lately about MINIX not being free. MINIX costs $169, but the license allows making two backup copies, so the effective price can be under $60. Furthermore, professors may make UNLIMITED copies for their students. Coherent is $99. FSF charges
>$100 for the tape its "free" software comes on if you don't have Internet access, and I have never heard anyone complain. 4.4 BSD is $800. I don't really believe money is the issue. Besides, probably most of the people reading this group already have it. 

然而大多数人在讨论内核设计和移植性的时候还算理性,但是涉及到免费/自由时却是100%的情绪化表现了。你不会相信近来在MINIX不是免费/自由这个问题上我收到了多少[咒骂省略]。MINIX价值$169,但是许可证允许两个备份的拷贝,所以实际价格在$60以下。更重要是,教授们用于学生的拷贝时无限制的,统一都是$99,FSF对于那些不能访问Internet的用户为自己“免费的”软件磁带要价是>$100,对此我没有听到过任何抱怨。4.4 BSD要价$800。我真的不认为钱是重要的问题。除此之外,可能大多数阅读这个新闻组的人都已经有了{MINIX?}

{提什么别提钱啊,千万别提钱。

老头急了,真的急了

}

A point which I don't think everyone appreciates is that making something available by FTP is not necessarily the way to provide the widest distribution. The Internet is still a highly elite group. Most computer users are NOT on it. It is my understanding from PH that the country where MINIX is most widely used is Germany, not the U.S., mostly because one of the (commercial) German computer magazines has been actively pushing it. MINIX is also widely used in Eastern Europe, Japan, Israel, South America, etc. Most of these people would never have gotten it if there hadn't been a company selling it. 

我不认为所有的人都赞赏的一点是,通过FTP方式提供最广泛的分发不是必然的方式。Internet仍然是一个相当精英的团体。大多数的计算机用户在上面。如果我从PH{??,patch,补丁??}中得到的理解不错的话,MINIX在在各个国家中,以德国使用的最广泛,而不是美国。主要的原因可能使一家德国的(商业)计算机杂志曾经卖力的推广过它。MINIX在东欧,日本,以色列,南非等等国家使用的都不是很广泛。如果没有一家公司来卖它的话,那么它也就不可能为大多数人得到。

{ast宣称MINIX除了在德国,根本就没有做过MINIX的商业活动,也就是说他本人无意于此。

而且指出FSF有挂羊头之嫌,这个不好说什么,似乎在1990年不大明朗的时候,还是有点暗流的。当然事后的发展证明一个口号,一个信念还是颇有鼓舞人心的功效的。

随便可以看看在1990年左右发达的计算机国家有哪些:)

}

Getting back to what "free" means, what about free source code? Coherent is binary only, but MINIX has source code, just as LINUX does. You can change it any way you want, and post the changes here. People have been doing that for 5 years without problems. I have been giving free updates for years, too. 

回到自由意味着什么这个议题,那么源代码呢?{抱歉}只有二进制文件奉送。不过MINIX是带源代码的,就像LINUX那样。你可以按照你想的任何方式更改代码,然后在这里公布更改的内容。人们已经这样工作了5年,没有任何问题。我也好多年持续的给出了免费的更新。

{很可能FSF在1990年的做法,或者说目的值得怀疑}

I think the real issue is something else. I've been repeatedly offered virtual memory, paging, symbolic links, window systems, and all manner of features. I have usually declined because I am still trying to keep the system simple enough for students to understand. You can put all this stuff in your version, but I won't put it in mine. I think it is this point which irks the people who say "MINIX is not free," not the $60. 

我认为真正的问题不在这里。我多次提交了诸如VM,分页,符号链接,窗口系统,以及各种features。我通常的倾向因为我尽量试图保持系统的简单性,以便学生的理解。你可以把所有这些都整合到你的版本之中,但是我不会把它们放到我的版本之中。我认为这才是那些说“MINIX不是免费的”苦恼的原因,而不是$60。

{还是要说MINIX的雄心不够,或者ast没有看到PC革命带来的契机和巨大需求。

}

An interesting question is whether Linus is willing to let LINUX become "free" of his control. May people modify it (ruin it?) and sell it? Remember the hundreds of messages with subject "Re: Your software sold for money" when it was discovered the MINIX Centre in England was selling diskettes with news postings, more or less at cost? 

一个有趣的问题是Linus是否准备让LINUX自他的控制中“自由”出来。人们可以修改(毁掉)它吗?记住上百条的消息是这样的主题“Re:你的软件为钱出售”,它表明在英格兰的MINIX中心在卖磁带的同时,也附带着新闻跟新,这也或多或少值点钱吧?

Suppose Fred van Kempen returns from the dead and wants to take over, creating Fred's LINUX and Linus' LINUX, both useful but different. Is that ok? The test comes when a sizable group of people want to evolve LINUX in a way Linus does not want. Until that actually happens the point is moot, however.

假定Fred van Kempen复活{这个老兄好像没有挂啊}并且准备拿到控制权,创造一个Fred版的LINUX和Linus版的LINUX,这两个都有用但是互不相同。这样OK吗?当有一票人希望参与LINUX的发展,但是不是按照Linus自己希望的方式,这个假定就会变成现实。虽然在这一切没有发生的时候是没有意义的。

{这一段的指责很有力,看看现在有多少linux的发行版吧...

不过内核的开发还是在有序之下开发的。Linus真的是一个强有力的社区领导。

}

If you like Linus' philosophy rather than mine, by all means, follow him, but please don't claim that you're doing this because LINUX is "free." Just say that you want a system with lots of bells and whistles. Fine. Your choice. I have no argument with that. Just tell the truth. 

如过你喜欢Linus的而不是我的哲学,尽力跟随他,但请不要声称你是因为LINUX是“自由/免费”而这样做的。只需说你需要一个花哨的系统。很好,你自己的选择。我对此毫无意见。只要说出事实。

{应用为王啊,花哨就是说可用的东西多。ast还是没有搞清楚迎合用户才是重要的,而不是研究教学。特别是在微内核还是一个概念产品的情形下。

}

As an aside, for those folks who don't read news headers, Linus is in Finland and I am in The Netherlands. Are we reaching a situation where another critical industry, free software, that had been totally dominated by the U.S. is being taken over by the foreign competition? Will we soon see President Bush coming to Europe with Richard Stallman and Rick Rashid in tow, demanding that Europe import more American free software? 

Andy Tanenbaum (ast@cs.vu.nl)

顺便说一句,那些没有读新闻邮件头的人,Linus是芬兰的,我是荷兰的。在自由软件美国长期霸占的的关键产业,是否进入到一种被他国竞争者抢占了地位的情形下吗?我们是不是很快会看到Bush总统带着Richard Stallman,Rich Rashid座着拖车来到欧洲,恳求欧洲输入更多美国的自由软件呢?

Andy Tanenbaum (ast@cs.vu.nl)

{

发泄完了,ast又恢复了派头,依然尖酸的讲着冷笑话。虽然事实会让他大跌眼镜。

U.S.当然还是无可争议的no.1但是Linus却无人不识了

}


{ast第六次,意犹未尽,马上又跳出来了...}
From: ast@cs.vu.nl (Andy Tanenbaum)
Subject: Re: Unhappy campers
Date: 5 Feb 92 23:23:26 GMT
Organization: Fac. Wiskunde & Informatica, Vrije Universiteit, Amsterdam

 

In article 205@fishpond.uucp fnf@fishpond.uucp (Fred Fish) writes:
>If PH was not granted a monopoly on distribution, 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 allowed minix to evolve in much the
>same way that gcc has evolved over the last few years.

This IS possible. If a group of people wants to do this, that is fine. I think co-ordinating 1000 prima donnas living all over the world will be as easy as herding cats, but there is no legal problem. When a new release is ready, just make a diff listing against 1.5 and post it or make it FTPable. While this will require some work on the part of the users to install it, it isn't that much work. Besides, I have shell scripts to make the diffs and install them. This is what Fred van Kempen was doing. What he did wrong was insist on the right to publish the new version, rather than diffs against the PH baseline. That cuts PH out of the loop, which, not surprisingly, they weren't wild about.     If people still want to do this, go ahead. 

的确是可能的。如果有些人希望这么做,很好。我个人认为让散布在世界各地的1000个主角一起合作就像放养猫那么简单,但是不存在合不合法的问题。当一个新版本就绪以后,只需要作一个diff列表{??},然后把它贴出来或者能够通过FTP得到。不过这需要用户花点功夫安装软件,这不是什么大不了的事。别急,我还有一个shell脚本制作这些diff补丁并且能自动安装。这正是Fred van Kempen做的事。坚持拥有发布新版本的权利上,而不是与PH基线作比较,产生diff补丁这件事上,他做错了。这把PH从循环中去掉了,这毫不惊奇,因为他们对此毫无兴趣。   如果你们还想这么做,没问题。

Of course, I am not necessarily going to put any of these changes in my version, so there is some work keeping the official and enhanced ones in sync, but I am willing to co-operate to minimize work. I did this for a long time with Bruce Evans and Frans Meulenbroeks. 

当然,我完全没有必要把任何这些改变放到我的版本中来,在保持官方版本和增强版本之间,会有一些同步工作要做,不过我很愿意积极合作,以最小化工作量。我和Bruce Evans以及Frans Meulenbroeks已经很长一段时间这样工作了。

If Linus wants to keep control of the official version, and a group of eager beavers want to go off in a different direction, the same problem arises. I don't think the copyright issue is really the problem. The problem is co-ordinating things. Projects like GNU, MINIX, or LINUX only hold together if one person is in charge. During the 1970s, when structured programming was introduced, Harlan Mills pointed out that the programming team should be organized like a surgical team--one surgeon and his or her assistants, not like a hog butchering team--give everybody an axe and let them chop away. 

如果Linus想保持控制官方版本,而一群热心人却想向另一个方向发展,相同的问题就会出现了。我不认为版权问题是一个真正的问题。问题是合作。诸如GNU,MINIX,LINUX这样的项目只有当一个人领导时才能很好的团结在一起。在1970年代,结构化编程被引入的时候,Harlan Mills指出编程团队应该像一个外科手术团队那样去组织——一个主治医师以其助手,那不是像屠猪的团队——每个人都有一把斧头,各自劈杀。

{ast的确指出了OSS社区的普遍问题,但是很可惜,在只认代码的社区,他没有看到自己和Linus的差别所在。还有热情。

也许Linux社区的成功正是因为Linus本人的才能。

}

Anyone who says you can have a lot of widely dispersed people hack away on a complicated piece of code and avoid total anarchy has never managed a software project. 

任何宣称能够避免在很多人修改一块复杂的代码的所产生的混乱,那么他肯定没有管理过一个软件项目。

>Where is the sizeable group of people that want to evolve gcc in a way that
>rms/FSF does not approve of?

A compiler is not something people have much emotional attachment to. If the language to be compiled is a given (e.g., an ANSI standard), there isn't much room for people to invent new features. An operating system has unlimited opportunity for people to implement their own favorite features. 

Andy Tanenbaum (ast@cs.vu.nl)

>…

编译器不允许人们附带感情色彩。如果一个语言需要编译(例如,一个ANSI的标准),没有太多的空间让人们发明什么新特性。但是OS却有无限的空间来让人们实现他们自己喜欢的features。

Andy Tanenbaum (ast@cs.vu.nl)

{这是一个无力的反击。很容易引起口水。}

 


{Torvalds第四次}

From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Subject: Re: Unhappy campers
Date: 6 Feb 92 10:33:31 GMT
Organization: University of Helsinki

In article <12746@star.cs.vu.nl
> ast@cs.vu.nl (Andy Tanenbaum) writes:
>>If Linus wants to keep control of the official version, and a group of eager
>beavers want to go off in a different direction, the same problem arises. 

This is the second time I've seen this "accusation" from ast, who feels pretty good about commenting on a kernel he probably haven't even seen. Or at least he hasn't asked me, or even read alt.os.linux about this. Just so that nobody takes his guess for the full thruth, here's my standing on "keeping control", in 2 words (three?): 

I won't. 

已经第二次了,我看到了来自ast的这个“指控”,对于一个他可能从未见过的内核加以评论,他的感觉相当不错。至少他没有问过我,甚至没有读过alt.os.linux上面的相关内容。当然不会有人把他的猜测当作真相,这是我对于“保持控制”的立场,俩个字(还是三个?)

我不会。

The only control I've effectively been keeping on linux is that I know it better than anybody else, and I've made my changes available to ftp-sites etc. Those have become effectively official releases, and I don't expect this to change for some time: not because I feel I have some moral right to it, but because I haven't heard too many complaints, and it will be a couple of months before I expect to find people who have the same "feel" for what happens in the kernel. (Well, maybe people are getting there: tytso certainly made some heavy changes even to 0.10, and others have hacked it as well) 

唯一的控制是我一直让linux有效的发展,我知道我比其他任何人做的要好,并且我把我的更改发布到ftp站点上。这些造就了高效的官方版本,我期望在一段时间内不要改变这种模式:不是因为我觉得自己有天然的权利这样做,而是因为我听到了太多的抱怨,对于在内核上正在发生什么,几个月前我就期望找到有相同“感受”的人。(那好吧,也许那个人就在这儿:tytso甚至对0.10就作出了一些重大的改进,还有其他几个人也作出了贡献)

In fact I have sent out feelers about some "linux-kernel" mailing list which would make the decisions about releases, as I expect I cannot fully support all the features that will /have/ to be added: SCSI etc, that I don't have the hardware for. The response has been non-existant: people don't seem to be that eager to change yet. (well, one person felt I should ask around for donations so that I could support it - and if anybody has interesting hardware lying around, I'd be happy to accept it :)

事实上,我在“linux内核”的邮件列表发过一些试探性的邮件,关于发布的版本需要做的决定,比如那些本/应该/被添加的features,例如:SCSI等等,因为我没有相应的硬件。正如我期望的,我没有得到完全支持。回应好像没有:人们看起来还不急于改变。(那好,有人觉得我应该寻求支援,这样我就能支持这些特性 - 如果有人对底层硬件非常有兴趣,我很乐意接受它:)

The only thing the copyright forbids (and I feel this is eminently reasonable) is that other people start making money off it, and don't make source available etc... This may not be a question of logic, but I'd feel very bad if someone could just sell my work for money, when I made it available expressly so that people could play around with a personal project. I think most people see my point. 

版权禁止的唯一一件事(我觉得这合乎情理)是其他人通过它来牟利,并且不提供源代码等等…这在逻辑上不是个问题,如果有人通过买我的作品来赚钱的话我会感觉很不爽,我只会让它直接可用以便人们能够工作在一个个人项目上。我认为大多数人已经了解我的观点。

That aside, if Fred van Kempen wanted to make a super-linux, he's quite wellcome. He won't be able to make much money on it (distribution fee only), and I don't think it's that good an idea to split linux up, but I wouldn't want to stop him even if the copyright let me.

另外,如果 Fred van Kempe想做一个super-linux,他将会得到欢迎。他不需要在这上面花费很多(只需要分发费) ,虽然我不认为把分裂linux是个好主意,但我不会阻止他,即使版权允许我那样做。

>I don't think the copyright issue is really the problem. The problem is >co-ordinating things. Projects like GNU, MINIX, or LINUX only hold together
>if one person is in charge. 

Yes, coordination is a big problem, and I don't think linux will move away from me as "head surgeon" for some time, partly because most people understand about these problems. But copyright /is/ an issue: if people feel I do a bad job, they can do it themselves. Likewise with gcc. The minix copyright, however, means that if someone feels he could make a better minix, he either has to make patches (which aren't that great whatever you say about them) or start off from scratch (and be attacked because you have other ideals). 

>…

的确,协作是个大问题,不过我认为,一段时间内,我不会远离linux“主治医师”这个角色的,部分是因为大多数人都意识到了这一点。不过版权也/是/一个问题:如果大家认为我的工作做得不好,他们可以自己干。同样的,使用gcc。而minix的版权意味着如果有人认为自己可以制作一个更好的minix,他要么制作补丁(不管怎么说,总不那么大好)要么重头开始(由于你有其他的理念而被攻击)。

Patches aren't much fun to distribute: I haven't made cdiffs for a single version of linux yet (I expect this to change: soon the patches will be so much smaller than the kernel that making both patches and a complete version available is a good idea - note that I'd still make the whole version available too). Patches upon patches are simply impractical, especially for people that may do changes themselves. 

分发补丁不是那么有趣的:我从未为单一版本的linux制作过cdiffs(我期望变成这样:很快补丁将会大大小于内核,这样,同时提供补丁和一个完全版的就会是使一个不错的主意 - 注意我仍然保持了完整版本可用)。补丁摞补丁是不切实际的,特别是对那些需要自己去做这件事的时候。

{用户体验啊…}


>>Where is the sizeable group of people that want to evolve gcc in a way that >>rms/FSF does not approve of?
>A compiler is not something people have much emotional attachment to. If
>the language to be compiled is a given (e.g., an ANSI standard), there isn't
>much room for people to invent new features. An operating system has unlimited
>opportunity for people to implement their own favorite features.

Well, there's GNU emacs... Don't tell us people haven't got emotional attachment to editors :) 

 

Linus

>…

那好吧,还有GNU emacs…别告诉我对于编辑器人们没有感情倾向:)

Linus

{这封mail是Linus对ast的一些反驳,可以看出来OSS本身也有其固然的一些问题,不过我以为这都不是重点了…

}

 



From: dmiller@acg.uucp (David Miller)
Subject: Linux is Obsolete and follow up postings
Date: 3 Feb 92 01:03:46 GMT
Organization: AppliedComputerGroup  

As an observer interested in operating system design, I couldn't resist this thread. Please realize that I am not really experienced with minux or linux: I have been into unix for many years. First, a few observations:  

Minix was written to be an educational tool for ASTs' classes, not a commercial operating system. It was never a design parameter to have it run freely available source code for unix systems. I think it was also a statement of how operating systems should be designed, with a micro kernel and seperate processes covering as much of the required functionality as possible.  

Linux was written mostly as a learning exercise on Linus part - how to program the 386 family. Designing the ultimate operating system was not an objective. Providing a usable, free platform that would run all sorts of widely available free software was a consideration, and one that appears to have been well met.  

Criticism from anyone that either of these systems isn't what *they* would like it to be is misplaced. After all, anybody that has a computer that will run either system is free to do what Linus and Andrew did: write your own!  

I, for one, applaud Linus for his considerable effort in developing Linux and his decision to make it free to everybody. I applaud AST for his effort to make minix affordable - I have real trouble relating to complaints that minix isn't free. If you can afford the time to explore minix, and a basic computer system, $150 is not much more - and you do get a book to go with it.  

Next, a few questions for the professor:  

Is minix supposed to be a "real operating system" or an educational tool ? As an educational tool it is an excellent work. As a real operating system it presents some terribly rough edges (why no malloc() ?, just for starters) My feeling from reading The Book and listening to postings here is that you wanted a tool to teach your classes, and a lot of others wanted to play with an affordable operating system. These others have been trying to bolt on enough features to make it a "real operating system", with less than outstanding success.  

Why split fundemental os functions, such as memory management, into user processes? As all good *nix gurus know, the means to success is to divide and conquer, with the goal being to *simplify* the problem into managable, well defined components. If splitting basic parts of the operating system into user space processes complicates the function by introducing additional mechanisms (message passing, complicated signals), have we met the objective of simplifying the design and implementation?   I agree that *nix has suffered a bad case of feature-itis - especially sysVr4. Perhaps the features that people want for either functionality or compatibility could be offered by run-time loadable modules/libraries that offer these features. The micro-kernel would still be a base-level resource manager that also routes function requests to the appropriate module/library. The modules could be threads or user processes. (I think - os hackers please correct me :-) )  

Just my $.04 worth - please feel free to post or email responses. I have no formal progressive training in computer science, so I am really asking these questions in ignorance. I suspect a lot of others on the net have similar questions in their own minds, but I've been wrong before.  

 

-- David



From: michael@gandalf.informatik.rwth-aachen.de (Michael Haardt)
Subject: 1.6.17 summary and why I think AST is right.
Date: 6 Feb 92 20:07:25 GMT Reply-To: u31b3hs@messua.informatik.rwth-aachen.de (Michael Haardt)
Organization: Gandalf - a 386-20 machine  

 

I will first give a summary of what you can expect from MINIX in *near* future, and then explain why I think AST is right. 

Some time ago, I asked for details about the next MINIX release (1.6.17). I got some response, but only from people running 1.6.16. The following informations are not official and may be wrong, but they are all I know at the moment. Correct me if something is wrong: 

- The 1.6.17 patches will be relative to 1.5 as shipped by PH. 

- The header files are clean. 

- The two types of filesystems can be used together. 

- The signal handling is rewritten for POSIX. The old bug is removed. 

- The ANSI compiler (available from Transmediar, I guess) comes with compiler binaries and new libraries. 

- There don't seem to be support for the Amoeba network protocol. 

- times(2) returns a correct value. termios(2) is implemented, but it's more a hack. I don't know if "implemented" means in the kernel, or the current emulation. 

- There is no documentation about the new filesystem. There is a new fsck and a new mkfs, don't know about de. 

- With the ANSI compiler, there is better floating point support. 

- The scheduler is improved, but not as good as written by Kai-Uwe Bloem. 

I asked these things to get facts for the decision if I should upgrade to MINIX 1.6.17 or to Linux after the examens are over. Well, the decision is made: I will upgrade to Linux at the end of the month and remove MINIX from my winchester, when Linux runs all the software I need and which currently runs under MINIX 1.5 with heavy patches. I guess this may take up to two months. These are the main reasons for my decision: 

- There is no "current" MINIX release, which can be used as basis for patches and nobody knows, when 1.6.17 will appear. 

- The library contains several bugs and from what I have heard, there is no work done at them. There will not be a new compiler, and the 16 bit users still have to use buggy ACK. 

- 1.6.17 should offer more POSIX, but a complete termios is still missing. 

- I doubt that there is still much development for 16 bit users. 

I think I will stop maintaining the MINIX software list in a few months. Anyone out there, who would like to continue it? Until Linux runs *perfect* on my machine, each update of Origami will still run on 16-bit MINIX. I will announce when the last of these versions appears. 

In my opinion, AST is right in his decision about MINIX. I read the flame war and can't resist to say that I like MINIX the way it is, now where there is Linux. MINIX has some advantages: 

- You can start playing with it without a winchester, you can even compile programs. I did this a few years ago. 

- It is so small, you don't need to know much to get a small system which runs ok. 

- There is the book. Ok, only for version 1.3, but most of it is still valid. 

- MINIX is an example of a non-monolithic kernel. Call it a microkernel or a hack to overcome braindamaged hardware: It demonstrates a concept, with its pros and cons -- a documented concept. 

In my eyes, it is a nice system for first steps in UNIX and systems programming. I learned most of what I know about UNIX with MINIX, in all areas, from programming in C under UNIX to system administration (and security holes:) MINIX grew with me: 1.5.xx upgrades, virtual consoles, mail & news, text processing, crosscompiling etc. Now it is too small for me. I don't need a teaching system anymore, I would like to get a more complicated and featureful UNIX, and there is one: Linux. 

Back in the old days, v7 was state of the art. There was MINIX which offered most of it. In one or two years, POSIX is what you are used to see. Hopefully, there will be MINIX, offering most of it, with a new book, for people who want to run a small system to play and experiment with. 

Stop flaming, MINIX and Linux are two different systems with different purposes. One is a teaching tool (and a good one I think), the other is real UNIX for real hackers. 

Michael



From: dingbat@diku.dk (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   michael@gandalf.informatik.rwth-aachen.de (Michael Haardt) writes:  
>Stop flaming, MINIX and Linux are two different systems with different
>purposes. One is a teaching tool (and a good one I think), the other is
>real UNIX for real hackers.  

Hear, hear! And now Linux articles in alt.os.linux (or comp.os.misc if your site don't receive alt.*) and Minix articles here. 

eoff (end of flame fest :-)   Niels

{正式昭告comp.os.linux的成立}