塔能鮑姆-托瓦茲辯論

塔能鮑姆-托瓦兹辯論（），於1992年在Usenet討論群組（新闻组）comp.os.minix上發起的一场辩论，主角為Minix創作者安德鲁·斯图尔特·塔能鲍姆與Linux核心原始作者林纳斯·托瓦兹，討論的主題在於作業系統内核架構的選擇。塔能鲍姆认为，以微内核架構設計的作業系統，在理論上，比宏内核架構更加优越，主張Linux應該以微內核架構來進行重新設計。但是林纳斯·托瓦兹以開發實務上的觀點展開反擊，陳述Linux選擇宏內核架構進行開發的理由，並比較Minix與Linux的效能差異。稍後，在Linux社群中的一些著名駭客也加入討論，如彼得·麥唐納、大衛·米勒、曹子德。

这场辩论有时被视为僅是一场網路論戰或口水战，然而這場辯論影響了Linux核心與Minix的設計走向，展示了軟體工程師之間對於作業系統架構的不同思考角度，因此得到許多重視。在辯論結束後，Linux社群並沒有因為這場辯論而改變作法，以微核心架構來重新設計Linux核心，但是在稍後改善了可移植性，擴展到x86之外的平台，同時引進了許多微核心架構的設計想法來改進其程式碼，例如採用了可載入核心模組。塔能鮑姆教授也仍然堅持以微核心架構來設計Minix，在1997年與2004年分別發表了兩個新版本，完全不收費的釋出Minix，並改善了Minix經常被批評的效能問題。

歷史背景
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登载帖子，向社群釋出了他自行創作的作業系統內核完整原始碼，也就是日後的Linux。

肯·湯普遜及貝爾實驗室的工程師們，在研發Unix時，採用宏內核架構。在這個架構下，作業系統內核是一個單一的二進位執行檔，運行在核心空間中。肯·湯普遜選擇這個架構的原因，是鑑於其前身Multics的開發失敗經驗，使他決定選擇這種較為單純與直覺的架構，讓系統得到較好的效能。但隨著Unix的擴展以及中央處理器的快速發展，Unix在移植到新的平台時，遭遇到很大困難。學界中開始出現新的想法，在貝爾實驗室的後續計畫Plan 9與卡內基梅隆大學的Mach等研究的促發之下，出現了微內核架構。

微內核將核心功能模組化，劃分成幾個獨立的行程，各自運行，這些行程被稱為服務（service）。所有的服務行程，都運行在不同的位址空間。只有需要絕對特權的行程，才能在具特權的執行模式下運行，其餘的行程則在使用者空間運行。這種架構提高了程式碼的可移植性與系統的安全性，在學術界，一直得到很高的聲譽。Minix採用微核心架構，反應了當時學術界的風潮。除了Minix之外，GNU計劃發展的作業系統核心GNU Hurd，也朝向微核心架構來研發。但微內核架構，設計過於精巧，使得程式碼研發的速度非常緩慢，系統效能長期無法提升。當時數個採用微內核架構的研究計劃，都受此拖累，沒有突破性的成果。

相較而言，Linux直接繼承了Unix的傳統，選擇宏內核架構。在1992年發生的這場辯論，展示了兩種架構的支持者，他們各別的想法。這場辯論也展示了軟體工程師，在為軟體專案選擇架構，所可能出現的各種思考角度。

辯論過程

虽然初步的辩论显得相对温和，当事人双方仅仅平淡了讨论了有关内核设计的话题。但随着每一轮的发帖和参与者的增加，辩论开始逐步变得详细和复杂，甚至跨足于内核设计之外的其它领域，如"哪种微处理器架构将在未来战胜其它架构"，但其中也包括了一些意氣之爭的言詞辯論。除了塔能鲍姆和托瓦兹，Linux開發社群中一些著名駭客也加入辯論，包括彼得·麥唐納，第一个Linux發行版的创建者；大衛·米勒，Linux内核的核心开发者之一；和曹子德，北美洲第一个Linux内核开发者。

“Linux 是过时的”
第一条有关这场辩论的记录，在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設計不良，塔能鲍姆不能用「這只是興趣」來為來辯護。托瓦兹說，從哲學及美學的觀點出發，微核心的確是一個比較好的架構，但是採用微核心架構的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的计算机，有时连硬盘都没有；而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硬件特性中受益。你明确的论点到底是什么？不同的目标自然会产生和你不同的设计。”

辯論結束
托瓦兹在稍後放低姿態，希望能夠停止這場口水戰。他在論壇上承認他對於塔能鮑姆一開始文章中的內容反應過度，而且已經向塔能鮑姆教授寄出私人電子郵件以表示歉意.。雖然他仍繼續回應了幾篇文章，但都是針對技術方面的討論。

在這場辯論結束之後，塔能鲍姆和托瓦兹皆表示他們之間沒有因此而產生個人恩怨，塔能鲍姆表示，不應該因為他們兩個人之間對於技術觀點不同，就認為他們兩人之間存在惡意對抗的情緒。

後續發展

1990年代看法
这个论题和最初的完整辩论被发表在歐萊禮媒體在1999年出版的《開源軟件：開源革命之聲》（Open Sources: Voices from the Open Source Revolution）書中的附錄，书中认为这是“那时世上人们思考操作系统设计的方式”的例子之一。

根据辯論參與者凱文·布朗（Kevin Brown）的说法，386处理器之所以成为了当时大行其道的芯片，这是因那时486晶片主要使用在高端计算机中，286几乎过时，而且万维网还没有广泛使用。塔能鲍姆反对Linux的论据之一，是Linux过于依赖x86指令集，他本人事后将此视作错误。现在Linux则已经具备可移植性良好的代码库，并且被移植到多种处理器架构上。

另一个在讨论中反复出现的话题，是Linux和Minix的替代品，比如GNU或者4.4BSD。塔能鲍姆的第一則貼文中，称讚GNU，不同于Linux，是一个“现代”操作系统。在他的第二則貼文中，他提到“5 年之后每个人都将在他们 200 MIPS 的 64M SPARC station-5上运行自由的GNU 系统”。许多辩论者都不同意GNU是一个合适的替代品。凱文·布朗认为它就是个虛幻的雾件，相較而言，Linux更可能从x86平台中受益，成为一个常见而且通用的系统。早期Linux开发者曹子德说，微内核范式确实有不少優点，但Linux看得见摸得着；反观GNU，无数人在Hurd花了比托瓦兹在Linux上多的多的时间，然而却仍没有完成。托瓦兹对GNU的努力表示尊重，但也認為它的開發速度太慢，他說：“如果GNU内核早在去年春天完成了，我压根不会开始我的项目 —— 但事实是它至今尚未完成。”

4.4BSD-Lite由于AT&T的Unix系统实验室与伯克利软件公司的纠纷，导致这桩官司缠身， 陷入UNIX知识产权归属的争夺之中，而导致大大阻碍了BSD的开发进程，直到两年之后，它们的法律争议依然悬而未决。由于Linux并没有法律争议，基于它的系统都获得了不少的支持。1994年一月，USL和BSDi签订了和解条约，4.4BSD最终于同年六月发布（而最终版本在1995年发布，许多基于它的自由衍生版由此延续至今，包括FreeBSD、OpenBSD和NetBSD）。

“出版物”事件
2004年3月23日，肯尼斯·布朗（Kenneth Brown），亞歷西斯·托克維爾中心（Alexis de Tocqueville Institution）的主席，采访了塔能鲍姆，这是为布朗即将出版的一本名为《异见出版物：关于开源代码的“根源”问题》的书而做准备。此书声称Linux起初从Minix非法拷贝程序。塔能鲍姆发表了一份態度强烈的反驳聲明，以捍卫托瓦兹對Linux的貢獻與成就，反駁抄襲的說法。在這份聲明中，塔能鲍姆指出：

我希望通过澄清一些误解和错误来结束这件事。首先，我真的没有对托瓦兹发火。这是实话。他也并没有对我发火。我并不认为托瓦兹遮掩了我的才智，我不是那种怨天尤人的失败者。Minix仅仅是我的一个兴趣爱好。我是一位教授。我讲课、搞研究、写书、参加讨论会，我做着任何一位教授都会做的事情。我热爱我的职业，学生和大学。[……] 我编写 Minix，为的是希望我的学生拥有一次亲自动手研究操作系统的经历。在AT&T禁止利用John Lions的书本讲课后，我才决定亲自动手编写一个类Unix系统让学生们摆弄。我并没有企图替代GNU/Hurd或者Berkeley Unix。天知道，我说这话的次数已经足够多了。我只是希望向我学生，以及其它学生们展示，如何通过现代的技术重新编写出一个类UNIX系统。不少其他人都希望拥有一个拥有琳琅满目特性的自由UNIX產品，并且希望让Minix变得如此。我曾一段时间陷入这种想法之中，但当Linux出世，我实际上对于能够做回教授的工作而感到欣慰。[……] 托瓦兹看起来做了一份十分出色的工作，我希望他能在未来取得更加显著的成就。

编写Minix固然有趣，但我并没有真正将其视作我所作的最重要的事情，反而更加使人有些分散精力。我所作最重要的事情是培养了一群非常出色的学生，特别是博士生。列表详见我的个人主页。他们完成了不少漂亮的事。我像一只会下蛋的母鸡一样自豪。广泛的说，托瓦兹也可以算作我的一个学生。我为他而骄傲。教授都对他们学生能成就更大辉煌感到欣喜。

再次論戰
2006年，塔能鲍姆在 《計算機》（Computer）杂志发表题为《我们能让操作系统可靠和安全吗？》（Can We Make Operating Systems Reliable and Secure?）的文章后，这个话题被再次提起。尽管塔能鲍姆本人提到，他并不是想借这篇文章重启内核设计的论战，但是这篇文章本身和Slashdot技术网站上附加的 1992 年论战的归档共同使战火重燃。

通过一个在线论坛，托瓦兹重新反驳了塔能鲍姆的论点，几个技术新闻网站随即开始对其进行报道。这使研究者喬納森·夏皮羅（Jonathan Shapiro）回应称，大多数经过实际检验的安全可靠的计算机系统，都使用更近似于微内核的模式设计。

參考資料

外部連結
辯論全文 
塔能鮑姆-林納斯辯論辯論节选

Linux
操作系统技术
爭議
辩论