我在網(wǎng)站上看到了這篇文章,感到非常有趣.論戰的一方是現在是我們心目中英雄---Linus.另一方也非等閑之輩,他就是MINIX的開(kāi)發(fā)者--Andy Tanenbaum(Linus在最初開(kāi)發(fā)linux時(shí),參考的就是minix),對于他,大家可能并不熟悉.實(shí)際上他是操作系統理論界的權威,他寫(xiě)過(guò)<操作系統的設計和實(shí)現><現代操作系統><分布式操作系統>等專(zhuān)著(zhù).他目前領(lǐng)導著(zhù)一個(gè)有著(zhù)先進(jìn)思想的操作系統項目--AMEGO.
他們爭論的是有關(guān)操作系統的結構問(wèn)題,這些問(wèn)題在今天仍很有意義.因此我們文檔小組打算翻譯這篇爭論.愿意加入翻譯小組的朋友,請給我email.我們把翻譯任務(wù)分配一下.
以下是我下載的別人的觀(guān)點(diǎn)(不是我的觀(guān)點(diǎn))
Linux與Minix論戰的故事>最近,我收到一位專(zhuān)家對我的一封批評信,告訴我在本文中提到的“Linus Torvald為一個(gè)學(xué)校項目編寫(xiě)了
>微型Unix,即Minix,后通過(guò)他自己對系統的努力改進(jìn),微型Unix成長(cháng)為L(cháng)inux,”是錯誤的,并且告訴我
>minix是一個(gè)叫做Andy Taonenbaum 的荷蘭教授寫(xiě)的,而且minix是microkernel(微內核)結構,linux不
>是!早年間該教授對linux很不以為然,在newsgroup中將linux罵得一無(wú)是處,一錢(qián)不值。”并附給我一份
>資料供我參考:
>ftp://freesoft.cei.go.cn/pub/Linux/doc/Linux_is_obsolete.Z
>如果這位專(zhuān)家是正確的,我很抱歉我的錯誤及我的無(wú)知,因為我當時(shí)是從一本英文書(shū)上得到這一消息的,這
>本書(shū)現在也有中文版,而且沒(méi)對這句話(huà)加以考證,所以,如果錯了的話(huà),請大家包涵!
各位朋友好:
我核對了一下,發(fā)現上貼中指出的URL好象有問(wèn)題。正確的URL應該是:
ftp://freesoft.cei.gov.cn/pub/Linux/doc/news/Linux_is_obsolete.Z
這是new thread(誰(shuí)能告訴我中文怎么說(shuō),新聞?wù)Z(yǔ)絲?頭緒?好象都不太對)的檔案。我從此91年底就參與Linux的活動(dòng)那段歷史是經(jīng)歷過(guò)的。最早協(xié)助將Linux放在網(wǎng)上的Ari Lemke就是我的朋友。
美國人經(jīng)常是信口開(kāi)河的,不足為憑。讓我們一起來(lái)看看這個(gè)檔案重溫這場(chǎng)舌戰以助于了解事情的真相。
Andy Tanenbaum教授首先發(fā)難,在comp.os.minix新聞組發(fā)表題為《Linux是過(guò)時(shí)的》的文章。 From: ast@cs.vu.nl (Andy Tanenbaum) Newsgroups: comp.os.minix Subject: LINUX is obsolete Date: 29 Jan 92 12:12:50 GMT Organization: Fac. Wiskunde & Informatica, Vrije Universiteit,Amsterdam
文中提到:
As most of you know, for me MINIX is a hobby, something that I do in the evening when I get bored writing books and there are no major wars, revolutions, or senate hearings being televised live on CNN. My real job is a professor and researcher in the area of operating systems. 他是研究操作系統的教授,搞minix只是他的愛(ài)好……,(當時(shí)大家都知道他在賣(mài)minix!不是自由的?。〢s 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: 作為一個(gè)研究操作系統的教授,他認為九十年代操作系統的發(fā)展方向:
1. MICROKERNEL VS MONOLITHIC SYSTEM
1,微內核還是單系統
.........略
他列舉了一些單一內核系統如 UNIX, MS-DOS, VMS, MVS, OS/360, MULTICS, 等.接著(zhù)列舉了一些微內核,如 Amoeba, Chorus, Mach, and the not-yet-released Windows/NT.
然后他說(shuō):
MINIX is a microkernel-based system. The file system and memory management are separate processes, running outside the kernel. The I/O drivers are also separate processes (in the kernel, but only because the brain-dead nature of the Intel CPUs makes that difficult to do otherwise). LINUX is a monolithic style system. This is a giant step back into the 1970s. That is like taking an existing, working C program and rewriting it in BASIC. To me, writing a monolithic system in 1991 is a truly poor idea.
MINIX是基于微內核的系統……blah, blah...Linux是單一內核風(fēng)格的系統。這是一個(gè)向七十年代的大倒退。就好象將一個(gè)已經(jīng)存在并且工作的C程序用BASIC重寫(xiě)一樣(荒唐)。在他看來(lái),于 1991年寫(xiě)一個(gè)單一內核系統實(shí)在是一個(gè)壞主意。(你看,厲害吧)
2. PORTABILITY
2,可移植性
.........略去一大段
MINIX was designed to be reasonably portable, and has been ported from the Intel line to the 680x0 (Atari, Amiga, Macintosh), SPARC, and NS32016. LINUX is tied fairly closely to the 80x86. Not the way to go.
他說(shuō)MINIX的設計具有合理的可移植行……而LINUX是相當緊的系在80x86上了。不是會(huì )事兒。(今天怎么樣?DEC/alpha, SUN/Sparc, MOTOROLA/680x0, MIPS/x000,INTEL/80x86 都跑LINUX)
Don`t get me wrong, I am not unhappy with LINUX. It will get all the people who want to turn MINIX in BSD UNIX off my back. But in all honesty, I would suggest that people who want a **MODERN** "free" OS look around for a microkernel-based, portable OS, like maybe GNU or something like that.
他說(shuō)別誤解他,他沒(méi)有對LINUX不高興……,但是他建議大家用基于微內核的可移植的系統,例如 GNU (他建議人用的那東西不存在?。?
自從教授先生的公開(kāi)信發(fā)表后舌戰就開(kāi)始了。針對指責Linus反駁道:
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.
唉!太長(cháng)了自己慢慢看吧,反正檔案就在我們這里?;蛘哒l(shuí)有工夫給翻譯翻譯?
宮敏
--------------------------------------------------------------------------------
哈哈,爭論的結果大致是兩者各有各的好處,重要的是各自的目標不同,一個(gè)是很好的教學(xué)
工具,另一個(gè)是真正的Unix!所以不要詆毀Minix和那個(gè)教授。自從那場(chǎng)爭論之后就有了Linux
自己的新聞組。在chinese.comp.linux上的討論如下:
引子:
嘿嘿,不要和我急,這是從一篇國外的BBS上看到的,挑起論戰的人是一個(gè)(據說(shuō))研究OS的
教授,指出現在從技術(shù)上講應該是microkernel的天下了,比如NT(他寫(xiě)的時(shí)候Linux才到1.0,
NT還沒(méi)出來(lái) :-) ),后面很多人摻和,挺有意思的??上也皇怯嬎銠C科班出身,想翻譯出
來(lái)又怕不妥。
注:真是孤陋寡聞,前面宮敏的文章都沒(méi)看就亂發(fā)文,不過(guò)引來(lái)下面的好文。
XuYifeng 寫(xiě)到:
放他媽的狗屁OS教授,NT要是micro kernel我怎么也不信,要不這么玩8個(gè)CPU就那么累! 都定做
的, 你買(mǎi)4個(gè)CPU的kernel,就不能變成8CPU的版本, 他媽的一個(gè)參數而已,4變8你就個(gè)掏錢(qián)! 驢!
你最好去讀讀linux的kernel源碼, 比你寫(xiě)過(guò)的DOS程序還小.想比之下VMS是頭豬, 其性能咱領(lǐng)交
過(guò),豬的后代WindozeNT得到乃父遺傳,加上營(yíng)養更加充沛,只會(huì )肥不會(huì )瘦,這個(gè)狗屁教授又沒(méi)見(jiàn)過(guò)
NT的kernel源碼(天下有幾個(gè)人看過(guò)NT的源碼, BillGates看過(guò)沒(méi)有?)就在那里胡說(shuō)八道!
NT == 螺絲殼里做道場(chǎng),永遠都是癟腳來(lái)兮, 小玩意兒.
姚飛寫(xiě)到:
雖然措詞不太雅, 但是語(yǔ)粗理不粗. 從純理論上講, 微內核的OS有很多很多優(yōu)點(diǎn), 然而,
按照我的粗陋寡聞所見(jiàn), 很多號稱(chēng)micro的東西都大的可怕, Digital UNIX 4.0D, 就是
原來(lái)的OSF/1 , 基于Mach 3.0 核心, 算得上最正宗的micro kernel based, 然而, 它
的核心映象文件(/vmlinux, 去掉了ATM在內的冗余部分) 就有9M ! Linux 2.1.126不壓
縮時(shí)也才1.2M, 就是把編譯成模塊的東西加進(jìn)去也小得多, 誰(shuí)知道為什么?
NT也一直叫囂自己是micro kernel based,而且據說(shuō)Mach 2.5的作者也被挖到了M$,結果大
家都知道的, NT 3.51 的核心在內存里要占據12M,不可以swap出去, 這是哪門(mén)子的micro?
Next Step 也是mach based, 不過(guò)不知道有多大.
我國的COSIX V2 據說(shuō)也是Mach 2.5 based,從來(lái)也沒(méi)見(jiàn)它公開(kāi)露過(guò)面,天知道是什么,是不
是也和我們造的衛星一樣, "嚇嚇外國人, 騙騙中國人",還沒(méi)上天先在廠(chǎng)房里爆炸? 說(shuō)實(shí)話(huà),
我很希望中國能有自己的OS, 想見(jiàn)識一下這個(gè)寶貝.
那個(gè)教授就是Minix的作者, 作為一個(gè)教授, 說(shuō)那些話(huà)也是可以理解的, 只不過(guò)Minix和其它
的micro都不給他長(cháng)臉罷了.
Lu Juhe 問(wèn)到:
能否請姚兄講講微內核的基本知識?好在哪里?
如果沒(méi)有圖形界面,NT和LINUX速度哪個(gè)快?
姚飛答到:
據我所知, 當初開(kāi)發(fā)Mach這類(lèi)系統的出發(fā)點(diǎn)是鑒于UNIX的核心越做越大, 功能越來(lái)越多,
而典型的UNIX核心結構是一個(gè)單一的大可執行文件, 內部調用關(guān)系越來(lái)越復雜, 從而導
致系統難于剪裁, 修改.
微內核就是大大縮減傳統意義上的核心的功能, 只保留最最重要, 不得不在處理機最高
運行級別上執行的功能, 比如進(jìn)程切換, 內存管理, I/O, 中斷等等, 也就是說(shuō),核心成
了一個(gè)服務(wù)器. 其它的功能, 比如文件系統, 網(wǎng)絡(luò )都從核心中分離出去, 作為單獨的核
外進(jìn)程運行. 至少我所知道的大體就是這些.
這種思想是很不錯的, 乍看上去對提高核心的模塊性, 可剪裁性, 可擴充性, 可移植性
都有好處, 應該說(shuō)是今后操作系統發(fā)展的方向, 至少是理論研究的方向.
目前x86, Alpha, SPARC, Ultra SPARC, PowerPC, ARM , 68K, MIPS上使用的Linux核心
不屬于微內核系統之列, 結構大體上還是跟70年代的UNIX差不多, 當然也有許多重大的
改進(jìn), 比如動(dòng)態(tài)加載的核心模塊. 當年那位可愛(ài)的教授也是抓住這一點(diǎn)大說(shuō)特說(shuō)不應該
在90年代重復70年代的工作, 從理論上講他的說(shuō)是有一定道理的, 但在實(shí)際中是另一回事.
我說(shuō)過(guò)的, 很多號稱(chēng)micro的東西都大得可怕.
大家可能不知道, 有一個(gè)很特殊的Linux版本 MkLinux, 運行在Power Machintosh上,是由
Apple直接資助開(kāi)發(fā)的, 它是利用了Mach 2.5的核心, 在外圍實(shí)現了Linux的系統調用, 據
說(shuō)運行得不錯, 可惜我無(wú)緣相見(jiàn).
大家可能注意到上面列出的一大堆CPU里沒(méi)有HP PA/RISC, 據我所知好象還沒(méi)有移植, 但
是曾在Linux Joural 上看到HP內部有一個(gè)小的部門(mén)正在作這方面的工作, 他們是把MkLinux
移植到PA/RISC上,
沒(méi)有圖形界面的NT啥也不是, 或者說(shuō)是DOS + VMS, 因為根本不存在這種東西,所以無(wú)從比較.
不過(guò)有腦子的人都想得出來(lái)
YanTing 寫(xiě)到:
我曾經(jīng)在Power Macintosh 7500-9500上面安裝過(guò)Mklinux,當時(shí)的版本是 Redhat 4.2,感覺(jué)
速度非???PowerPC的計算能力在計算RC5的時(shí)候表現地很出色.它是基于微內核的,但是那
個(gè)kernel還是大得可怕,有1M左右!
系統升級的時(shí)候也比現在大家所使用的Linux要麻煩地多,傳統上的編譯核心在Mklinux上就
不是一回事情了,它需要一個(gè)一個(gè)update才可能完成升級.
不過(guò)總體說(shuō)來(lái),使用Mklinux的感覺(jué)是很好的,可惜它不能體現MAC出色的多媒體性能,而且單
鍵鼠標在X下面實(shí)在有點(diǎn)可憐.
現在最新的版本是Redhat 5.1了,但是已經(jīng)沒(méi)有機會(huì )再使用PowerMac了.
zombie <hahu@cs.rmit.edu.au> 寫(xiě)到:
>Is Debian based on micro kernel? I mean the future GNU OS.
>Sorry, I‘ve forgoten the name.
是叫HURD,基于MACH4,現行版本是0.2。離實(shí)用還有一定距離,據說(shuō)已經(jīng)比較穩定(鬼才知道),
作了個(gè)linux的server. 在gnu的ftp里就有,全部大約70m.如果ms把linux毀了,hurd是gnu的
下一個(gè)os.其實(shí)微內核的概念內涵還是比較豐富的,而且理論上講可以使系統的穩定性提高.
尤其是在系統發(fā)展較快時(shí),但現在linux的發(fā)展方式比較特殊.所以采用微內核不一定合適.
對于相對比較小的開(kāi)發(fā)隊伍,有一個(gè)相對穩定的內核可以減少很多困難.
而linux的開(kāi)發(fā)隊伍太大了,沒(méi)有必要采用微內核技術(shù).采用兩個(gè)并行版本的辦法已經(jīng)基本解決
穩定性問(wèn)題.而微內核的開(kāi)銷(xiāo)相對較大,性能上大概要打折扣.至于nt是否是微內核的系統就難
說(shuō)了.ms的書(shū)上曾經(jīng)宣稱(chēng)時(shí),但我們沒(méi)見(jiàn)過(guò)code.也不知道是基于哪一種,或者是那一類(lèi)的微內核.
從用戶(hù)表現上看,微內核系統應該在界面上可以使各種各樣的(例如mach上就有NextStep,也有hurd),
但正如大家所說(shuō),我們還沒(méi)有看見(jiàn)除了gui-win以外的任何系統是基于nt內核的.
> 再: 如果你要比時(shí)間,VMS比LINUX還早, 你該拎的清.
Be fare to the user who post this news. I believe as a Linux user we
should specially notice this point. Don‘t be damn yourself, we need
people understand that it is good optional choice beside NT. Not to tell
them "You are stupid".
In the Linux society, treat every one in right attitude. That‘s the
spirit of an open mind society.
If user don‘t like consle, tell them there is a KDE which is better than
Win95‘s GUI. If they feel it is hard to compile kernel, tell them to use
Red Hat distribution. That‘s the way it ought to be.
I just feel that I should say something about the attitude in this group.
Zombie
*pls clear me using waitpid()
Trident 寫(xiě)到:
那個(gè)教授是死腦筋, 要是都以技術(shù)論英雄, DOS和Windo$ NT早就完啦!
HAHA...用戶(hù)就是在PII 上轉DOS, 你有什么辦法?
-----------------
聯(lián)系客服