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