塔能鮑姆-託瓦茲辯論

塔能鮑姆-託瓦茲辯論（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年發生的這場辯論，展示了兩種架構的支持者，他們各別的想法。這場辯論也展示了軟體工程師，在為軟體專案選擇架構，所可能出現的各種思考角度。

**辯論過程**
宏內核的內核空間完全運行在核心態
微內核架構依靠與運行在用戶空間的若干服務程序通信
安德魯·斯圖爾特·塔能鮑姆博士(在comp.os.minix上叫 'ast' )
林納斯·託瓦茲
雖然初步的辯論顯得相對溫和，當事人雙方僅僅平淡了討論了有關內核設計的話題。但隨著每一輪的發帖和參與者的增加，辯論開始逐步變得詳細和複雜，甚至跨足於內核設計之外的其它領域，如"哪種微處理器架構將在未來戰勝其它架構"，但其中也包括了一些意氣之爭的言詞辯論。除了塔能鮑姆和託瓦茲，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系統實驗室與伯克利軟件公司的糾紛，導致USL v. BSDi這樁官司纏身， 陷入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）回應稱，大多數經過實際檢驗的安全可靠的計算機系統，都使用更近似於微內核的模式設計。

**參考資料**

**外部連結**
 辯論全文 date=20130526014635 - 塔能鮑姆-林納斯辯論辯論節選