塔能鮑姆-托瓦茲辯論

塔能鮑姆-托瓦茲辯論（英語：Tanenbaum–Torvalds debate），於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系統實驗室訴伯克利軟體公司案這樁官司纏身， 陷入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）回應稱，大多數經過實際檢驗的安全可靠的電腦系統，都使用更近似於微核心的模式設計。