热门问题
时间线
聊天
视角
塔能鮑姆-托瓦茲辯論
来自维基百科,自由的百科全书
Remove ads
塔能鮑姆-托瓦兹辯論(英語:Tanenbaum–Torvalds debate),於1992年在Usenet討論群組(新闻组)comp.os.minix[1]上發起的一场辩论,主角為Minix創作者安德鲁·斯图尔特·塔能鲍姆與Linux核心原始作者林纳斯·托瓦兹,討論的主題在於作業系統内核架構的選擇。塔能鲍姆认为,以微内核架構設計的作業系統,在理論上,比宏内核架構更加优越,主張Linux應該以微內核架構來進行重新設計。但是林纳斯·托瓦兹以開發實務上的觀點展開反擊,陳述Linux選擇宏內核架構進行開發的理由,並比較Minix與Linux的效能差異。稍後,在Linux社群中的一些著名駭客也加入討論,如彼得·麥唐納、大衛·米勒、曹子德。
这场辩论有时被视为僅是一场網路論戰或口水战,然而這場辯論影響了Linux核心與Minix的設計走向,展示了軟體工程師之間對於作業系統架構的不同思考角度,因此得到許多重視[2]。在辯論結束後,Linux社群並沒有因為這場辯論而改變作法,以微核心架構來重新設計Linux核心,但是在稍後改善了可移植性,擴展到x86之外的平台,同時引進了許多微核心架構的設計想法來改進其程式碼,例如採用了可載入核心模組。塔能鮑姆教授也仍然堅持以微核心架構來設計Minix,在1997年與2004年分別發表了兩個新版本,完全不收費的釋出Minix,並改善了Minix經常被批評的效能問題。
Remove ads
歷史背景
1969年,Unix在AT&T的贝尔实验室被研發出來,快速散布到美國各大學,並衍生出許多變種,被稱為類UNIX,其中以加州柏克萊大學研發的BSD套件最為著名。1979年,Version 7 Unix發布,在此時,AT&T開始意識到Unix的商業價值,開始研發商用版本。1982年,AT&T釋出第一個商用版UNIX,UNIX System III。AT&T聲稱自己擁有Unix的著作權,Unix的原始碼被當成商業秘密,不再對外發布。AT&T不再授權大學可以免費使用UNIX,對使用Unix的公司及個人發起訴訟,引起一系列法律爭議。UNIX受到法律爭議影響,不再能自由散布與使用。
為了教學上的方便,塔能鮑姆模倣Version 7 Unix風格,自行創作了一個無版權爭議的作業系統,Minix,讓學生可以在大學中繼續學習發展作業系統,並閱讀到完整原始碼。這是一個小型的類Unix作業系統,原始碼附屬在塔能鮑姆寫作的教科書中,在1987年首度釋出。原始碼大小為三個磁碟片,原始碼完整公開,在購買到磁片後,讀者可以自行編譯與安裝,也可以自由閱讀與修改。
林纳斯·托瓦兹在芬蘭就讀大學時,其祖父贈送他一台Intel 80386個人電腦。他不滿其附贈的DOS系統效能太差,在閱讀了塔能鮑姆教授的教科書後,他決定根據教科書上的內容,自行創作自己的作業系統。1991年,林納斯·托瓦茲在Usenet新闻组comp.os.minix
登载帖子[3],向社群釋出了他自行創作的作業系統內核完整原始碼,也就是日後的Linux。
肯·湯普遜及貝爾實驗室的工程師們,在研發Unix時,採用宏內核架構。在這個架構下,作業系統內核是一個單一的二進位執行檔,運行在核心空間中。肯·湯普遜選擇這個架構的原因,是鑑於其前身Multics的開發失敗經驗,使他決定選擇這種較為單純與直覺的架構,讓系統得到較好的效能。但隨著Unix的擴展以及中央處理器的快速發展,Unix在移植到新的平台時,遭遇到很大困難。學界中開始出現新的想法,在貝爾實驗室的後續計畫Plan 9與卡內基梅隆大學的Mach等研究的促發之下,出現了微內核架構。
微內核將核心功能模組化,劃分成幾個獨立的行程,各自運行,這些行程被稱為服務(service)。所有的服務行程,都運行在不同的位址空間。只有需要絕對特權的行程,才能在具特權的執行模式下運行,其餘的行程則在使用者空間運行。這種架構提高了程式碼的可移植性與系統的安全性,在學術界,一直得到很高的聲譽。Minix採用微核心架構,反應了當時學術界的風潮。除了Minix之外,GNU計劃發展的作業系統核心GNU Hurd,也朝向微核心架構來研發。但微內核架構,設計過於精巧,使得程式碼研發的速度非常緩慢,系統效能長期無法提升。當時數個採用微內核架構的研究計劃,都受此拖累,沒有突破性的成果。
相較而言,Linux直接繼承了Unix的傳統,選擇宏內核架構。在1992年發生的這場辯論,展示了兩種架構的支持者,他們各別的想法。這場辯論也展示了軟體工程師,在為軟體專案選擇架構,所可能出現的各種思考角度。
Remove ads
辯論過程



虽然初步的辩论显得相对温和,当事人双方仅仅平淡了讨论了有关内核设计的话题。但随着每一轮的发帖和参与者的增加,辩论开始逐步变得详细和复杂,甚至跨足于内核设计之外的其它领域,如"哪种微处理器架构将在未来战胜其它架构",但其中也包括了一些意氣之爭的言詞辯論[4]。除了塔能鲍姆和托瓦兹,Linux開發社群中一些著名駭客也加入辯論,包括彼得·麥唐納,第一个Linux發行版的创建者;大衛·米勒,Linux内核的核心开发者之一;和曹子德,北美洲第一个Linux内核开发者[5]。
第一条有关这场辩论的记录,在1992年1月29日,塔能鲍姆在 comp.os.Minix 上发表了他的批评。在题为《Linux 是过时的》(Linux is obsolete)的帖子中,塔能鲍姆指出宏内核在整体设计上是有害的。虽然他最初并没有加入高深的技术细节,来解释他认为微内核更好的原因,但他也表明,这关乎可移植性,Linux內核的耦合度太高,完全為Intel 80386處理器設計,但處理器架構的進化很快。不應該在某個特定架構上開發作業系統,所有的作業系統都應該具備可以被移植到其他處理器平台的能力。他提到,在1991年仍然以宏內核來設計作業系統,是“回到1970年代的巨大退步”(a giant step back into the 1970s),現代的作業系統,應該像GNU Hurd一樣採用微核心架構。
托瓦兹在一天之後反擊,他首先攻擊Minix在設計上有缺陷(缺少多執行緒是一個主要例子)。托瓦兹說,他用自己私人的時間來開發,完全沒有獲利,免費將程式碼貢獻出去(當時塔能鲍姆的Minix原始碼,仍然要購買才能取得),因此,對於Minix設計不良,塔能鲍姆不能用「這只是興趣」來為來辯護。托瓦兹說,從哲學及美學的觀點出發,微核心的確是一個比較好的架構,[6]但是採用微核心架構的GNU Hurd根本沒有如期被成功開發出來,所以他才要開發Linux。托瓦兹強調,作業系統核心主要的功能都倚靠硬體特性,所以內核本身不需要過度具備可移植性,讓高階的軟體应用程序接口(API)具備可移植性才是更重要的。以Linux來跟Minix比較,移植應用程式到Linux上是更容易的。Linux內核採用宏內核架構,是因為它能夠簡化核心設計,這是一個權衡下的結果(An acceptable trade-off)。托瓦茲進一步說,可移植性是那些寫不出新程式的人才需要的(Portability is for people who cannot write new programs)。Linux一開始針對Intel 80386架構來開發,一部份的理由是為了托瓦兹自己買的電腦就是80386,這正好可以讓他對80386架構了解更多。Linux一開始就是準備自己使用的,如果想要移植到別的平台,程式碼都是開放的,想要的人可以自己做。
对于托瓦兹对于可移植性的回应,塔能鲍姆辩称到Minix系统的局限性与他的教授身份有关 —— 系统的硬件需求必须足够低,才能得以让大多数学生普遍低配的机器上使用 —— 一台基于Intel 8088的计算机,有时连硬盘都没有[7];而Linux在这时,却针对的是Intel 80386平台,显然是更加强大(和昂贵)的处理器。塔能鲍姆同时明确表示,“在大概一年之前,就有两个版本(的Minix),其中一个是PC版(360k软盘),另一个是286/386(1.2M软盘)。PC版本销量是286/386版本的两倍”。他补充,虽然 Linux是免费的,但这并不能成为他学生的选择,学生也负担不起运行它所需昂贵硬件,而Minix在一台“没有硬盘的4.77 MHz PC”上就能使用。他同时表示专门为廉价的硬件设计操作系统,日后将导致可移植性方面的许多问题。不顾Minix无法完全支持386硬體的事实,塔能鲍姆辩称,既然x86架构未来将被其它架构所取代,他并不需要去关心和解决这个问题,“当然,5年之后情况自然会有所不同,但至少每个人都将在他们200 MIPS的64M SPARC station-5上运行自由的GNU系统。”他说,因為處理器的進化速度太快,而Linux内核实在太依赖386架构,最终將会因为硬件架构的过时而失败。
Usenet上另一位用户凱文·布朗(Kevin Brown),认为Linux選擇在386處理器平台上開發,这是一个清醒的抉择,而不是缺乏对操作系统设计知识所致的,塔能鲍姆不应该对于Linux绑定在386架构上而颇有微词。他表示“Linux明确的设计目标就是从386硬件特性中受益。你明确的论点到底是什么?不同的目标自然会产生和你不同的设计。”[8]
托瓦兹在稍後放低姿態,希望能夠停止這場口水戰。他在論壇上承認他對於塔能鮑姆一開始文章中的內容反應過度,而且已經向塔能鮑姆教授寄出私人電子郵件以表示歉意.[9]。雖然他仍繼續回應了幾篇文章,但都是針對技術方面的討論。
在這場辯論結束之後,塔能鲍姆和托瓦兹皆表示他們之間沒有因此而產生個人恩怨,塔能鲍姆表示,不應該因為他們兩個人之間對於技術觀點不同,就認為他們兩人之間存在惡意對抗的情緒。[2]
後續發展
这个论题和最初的完整辩论被发表在歐萊禮媒體在1999年出版的《開源軟件:開源革命之聲》(Open Sources: Voices from the Open Source Revolution)書中的附錄,书中认为这是“那时世上人们思考操作系统设计的方式”的例子之一。[2]
根据辯論參與者凱文·布朗(Kevin Brown)的说法,386处理器之所以成为了当时大行其道的芯片,这是因那时486晶片主要使用在高端计算机中,286几乎过时,而且万维网还没有广泛使用。塔能鲍姆反对Linux的论据之一,是Linux过于依赖x86指令集,他本人事后将此视作错误。[1]现在Linux则已经具备可移植性良好的代码库,并且被移植到多种处理器架构上。
另一个在讨论中反复出现的话题,是Linux和Minix的替代品,比如GNU或者4.4BSD。塔能鲍姆的第一則貼文中,称讚GNU,不同于Linux,是一个“现代”操作系统。[1]在他的第二則貼文中,他提到“5 年之后每个人都将在他们 200 MIPS 的 64M SPARC station-5上运行自由的GNU 系统”。[7]许多辩论者都不同意GNU是一个合适的替代品。凱文·布朗认为它就是个虛幻的雾件,相較而言,Linux更可能从x86平台中受益,成为一个常见而且通用的系统。早期Linux开发者曹子德说,微内核范式确实有不少優点,但Linux看得见摸得着;反观GNU,无数人在Hurd花了比托瓦兹在Linux上多的多的时间,然而却仍没有完成。[10]托瓦兹对GNU的努力表示尊重,但也認為它的開發速度太慢,他說:“如果GNU内核早在去年春天完成了,我压根不会开始我的项目 —— 但事实是它至今尚未完成。”[11]
4.4BSD-Lite由于AT&T的Unix系统实验室与伯克利软件公司的纠纷,导致Unix系统实验室诉伯克利软件公司案这桩官司缠身, 陷入UNIX知识产权归属的争夺之中,而导致大大阻碍了BSD的开发进程,直到两年之后,它们的法律争议依然悬而未决。由于Linux并没有法律争议,基于它的系统都获得了不少的支持。1994年一月,USL和BSDi签订了和解条约,4.4BSD最终于同年六月发布(而最终版本在1995年发布,许多基于它的自由衍生版由此延续至今,包括FreeBSD、OpenBSD和NetBSD)。
Remove ads
2004年3月23日,肯尼斯·布朗(Kenneth Brown),亞歷西斯·托克維爾中心(Alexis de Tocqueville Institution)的主席,采访了塔能鲍姆,这是为布朗即将出版的一本名为《异见出版物:关于开源代码的“根源”问题》的书而做准备。此书声称Linux起初从Minix非法拷贝程序。塔能鲍姆发表了一份態度强烈的反驳聲明,以捍卫托瓦兹對Linux的貢獻與成就,反駁抄襲的說法[12]。在這份聲明中,塔能鲍姆指出:
我希望通过澄清一些误解和错误来结束这件事。首先,我真的没有对托瓦兹发火。这是实话。他也并没有对我发火。我并不认为托瓦兹遮掩了我的才智,我不是那种怨天尤人的失败者。Minix仅仅是我的一个兴趣爱好。我是一位教授。我讲课、搞研究、写书、参加讨论会,我做着任何一位教授都会做的事情。我热爱我的职业,学生和大学。[……] 我编写 Minix,为的是希望我的学生拥有一次亲自动手研究操作系统的经历。在AT&T禁止利用John Lions的书本讲课后,我才决定亲自动手编写一个类Unix系统让学生们摆弄。我并没有企图替代GNU/Hurd或者Berkeley Unix。天知道,我说这话的次数已经足够多了。我只是希望向我学生,以及其它学生们展示,如何通过现代的技术重新编写出一个类UNIX系统。不少其他人都希望拥有一个拥有琳琅满目特性的自由UNIX產品,并且希望让Minix变得如此。我曾一段时间陷入这种想法之中,但当Linux出世,我实际上对于能够做回教授的工作而感到欣慰。[……] 托瓦兹看起来做了一份十分出色的工作,我希望他能在未来取得更加显著的成就。
编写Minix固然有趣,但我并没有真正将其视作我所作的最重要的事情,反而更加使人有些分散精力。我所作最重要的事情是培养了一群非常出色的学生,特别是博士生。列表详见我的个人主页。他们完成了不少漂亮的事。我像一只会下蛋的母鸡一样自豪。广泛的说,托瓦兹也可以算作我的一个学生。我为他而骄傲。教授都对他们学生能成就更大辉煌感到欣喜。[13]
Remove ads
2006年,塔能鲍姆在 《計算機》(Computer)杂志发表题为《我们能让操作系统可靠和安全吗?》(Can We Make Operating Systems Reliable and Secure?)的文章后,这个话题被再次提起[14]。尽管塔能鲍姆本人提到,他并不是想借这篇文章重启内核设计的论战[15],但是这篇文章本身和Slashdot技术网站上附加的 1992 年论战的归档[16]共同使战火重燃。
通过一个在线论坛,托瓦兹重新反驳了塔能鲍姆的论点[17],几个技术新闻网站随即开始对其进行报道。[18]这使研究者喬納森·夏皮羅(Jonathan Shapiro)回应称,大多数经过实际检验的安全可靠的计算机系统,都使用更近似于微内核的模式设计。[19]
參考資料
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads