跳至主要内容

第五章:AI 的野蠻生長與 Wintel 的盲區

2025 年,一位史丹佛博士生坐在實驗室裡,準備訓練她的語言模型。

她打開筆電——MacBook,跑的是 macOS。她連上遠端 GPU 叢集——八台伺服器,每台插著八張 NVIDIA H100,跑的是 Ubuntu Linux。她的程式碼用 Python 寫,框架是 PyTorch,底層走 CUDA,編譯器、排程器、驅動程式、作業系統核心——從她按下 Enter 到第一個梯度開始回傳,中間經手的每一層軟體,沒有一行屬於微軟。

她不覺得這有什麼奇怪。她從研究所第一天起,所有教程、所有論文附的程式碼、所有實驗室的機器,全都是 Linux。Windows?那是她偶爾拿來開 PowerPoint 的東西。

但如果她稍微抬頭想一想——就會撞上一個很不舒服的問題。

她用的那張 H100 顯示卡,是 NVIDIA 做的。NVIDIA 靠什麼養大的?Windows 上的 PC 遊戲玩家——他們二十年來為了更漂亮的畫質,一代一代地買顯示卡,替 NVIDIA 分攤了平行運算的研發成本。她連上的那個 GPU 叢集,租的是微軟 Azure 的雲端服務——而 Azure 上超過六成的虛擬機器,跑的是 Linux。

養大 NVIDIA 的錢,來自 Windows。訓練 AI 模型的基礎設施,架在微軟的雲上。但 AI 本身——它的框架、它的工具鏈、它的整個軟體生態——和 Windows 沒有半點關係。

這件事不是意外。它是兩個帝國在二十年前各自做了一個決定——一個是不做,一個是不准——的直接後果。

不做的,是 Intel。不准的,是微軟。


I. 作案動機:兩道牆

要理解 AI 為什麼長在 Linux 上,先要理解一件事:這不是 Linux 多有魅力,而是 Windows 把人趕走的。

趕人的方式很優雅——優雅到被趕的人,自己都不一定講得清楚是怎麼回事。

1993 年,Windows NT 問世。它的核心設計借鑑了 DEC 的 VMS 與卡內基美隆大學的 Mach 微核心——精緻、嚴謹、企業級。其中最關鍵的設計決定,是 x86 處理器的特權環架構:核心程式碼跑在 Ring 0,擁有完整的硬體存取權限;應用程式跑在 Ring 3,被隔離在一道看不見的牆後面。

這是安全的基石。一個跑在 Ring 3 的程式,無法直接碰觸記憶體映射、無法自行操作 I/O 埠、無法繞過排程器直接佔用硬體資源。如果一款遊戲當機,它不會拖垮整台電腦——它只會死在自己那個被圍起來的空間裡。

對普通用戶來說,這是天大的好事。DOS 時代那種「一個遊戲掛了,整台機器一起掛」的噩夢,從此消失。第一章裡那場每夜對著 CONFIG.SYS 搏鬥的考試,連同它的准考證一起被撤銷。

但牆的另一面,站著一群完全不同的人。

九十年代末到兩千年代初,全球大學的物理系、數學系、計算語言學實驗室裡,有一群研究者正在做一件看起來毫無商業前途的事——用大量數據餵進數學模型,讓機器學會辨認圖片、翻譯語句、預測蛋白質摺疊。他們需要的,是對硬體最直接、最底層、最不受干擾的存取權。他們要自己寫核心模組、自己改驅動程式、自己決定記憶體怎麼排列、GPU 的每一個運算單元怎麼排程。

Windows 的 Ring 0 / Ring 3 分隔,對他們來說不是保護,是障礙。

而 Linux——同樣使用 x86 的特權環,同樣有 Ring 0 和 Ring 3 的區分——做了一件 Windows 永遠不會做的事:它把核心的原始碼完全打開。

你想寫一個核心模組,直接存取 GPU 的暫存器?寫,編譯,載入,立刻生效。你想修改記憶體管理器,讓你的訓練資料用特定的方式排列在實體記憶體裡?改,重新編譯核心,重開機,完成。你想讓 NVIDIA 的驅動程式繞過作業系統的顯示管理器,直接把運算結果寫回主記憶體?NVIDIA 的工程師自己就能做到,因為他們看得見 Linux 核心的每一行。

在 Windows 上,同樣的事需要微軟配合——修改 WDDM(Windows Display Driver Model)、調整 GPU 排程策略、開放新的核心介面。但微軟沒有動機配合。2005 年的微軟,GPU 運算還是一個科幻概念;它的工程優先級是 Vista 的 Aero 特效、是 DirectX 10 的新 shader 模型、是讓遊戲在 Windows 上跑得更漂亮。

科研人員要的那種「對硬體的裸體存取權」,在微軟的產品路線圖上,連一個欄位都沒有。

所以他們走了。

不是憤怒地離開,不是發表宣言、集體杯葛。就是安安靜靜地,一間實驗室接一間實驗室,把工作站從 Windows 換成 Linux。2000 年代中期,全球前五百大超級電腦當中,Linux 的佔比從五成飆升到九成。到了 2010 年,Top 500 榜單上,Windows 剩下不到十台。

那些超級電腦裡面跑的,不只是氣候模擬和基因定序。有一小群人,正在上面做一件當時沒有人看好的事——拿 GPU 來做矩陣乘法。

但這裡要誠實——這不是一場一刀切的革命。

2005 年的大學實驗室裡,Windows 並沒有消失。教授們依然用它開 PowerPoint 報告研究進度,博士生依然用它跑 MATLAB 做矩陣運算和畫圖,儀器控制軟體如 LabVIEW 只有 Windows 版,統計系的人離不開 SPSS。Windows 在學術界的桌面上,依然是那台每天開機八小時的主力機。

真正改變的,是一個很安靜的細節。如果你走到那些博士生的電腦前面,按下電源鍵,你會看到一個黑底白字的選單——GRUB。上面兩行:Windows,Linux。

雙系統。這才是 2000 年代學術界的真實場景。

Windows 負責日常:寫報告、跑 MATLAB 畫幾張圖、回 email、做投影片。但只要工作進入需要壓榨硬體的環節——編譯自寫的核心模組、連上 FPGA 開發板、透過 SSH 登入實驗室的 GPU 叢集——研究生就會重開機,切進那個沒有桌面特效、沒有開始功能表、只有一個閃爍游標的黑色終端。

Windows 沒有被拋棄。它被降級了。 從「萬能的作業系統」降為「文書與展示機」。而真正決定未來的運算——那些需要裸體觸及硬體的工作——全部發生在重開機之後的那個世界裡。

微軟大概沒有注意到這個降級。因為從它的授權費角度看,那台電腦上還是裝著一份 Windows。數字沒有少。但權力已經轉移了——決定下一個十年科技方向的運算,不再發生在 Windows 裡面。


II. 第一個盲區:Ballmer 的癌症論

科研人員安靜離場的同時,微軟做了什麼?

2001 年 6 月,微軟 CEO Steve Ballmer 接受《芝加哥太陽報》訪問。記者問他怎麼看 Linux。他的回答留下了科技史上最昂貴的一句語錄:

「Linux 是一顆癌症。」

Ballmer 的原話比這更精確——他說的是 GPL 授權條款像癌症一樣,會「傳染」碰觸過它的所有智慧財產。這是一個法律論點,在當時的企業法務圈裡不算離譜。但問題不在法律,在信號。

這句話從微軟 CEO 嘴裡說出來,傳遞的信號只有一個:微軟視 Linux 為敵人。

信號被每一個人收到了。

企業資訊長收到了——有些原本在評估 Linux 伺服器方案的公司,被嚇退。Ballmer 大概覺得這是好事。但同時收到信號的,還有另一群人:大學裡寫開源軟體的研究者、矽谷車庫裡用 Linux 跑伺服器的創業團隊、以及那些正在替 GPU 運算寫工具鏈的工程師。他們收到的信號是:微軟永遠不會跟我們合作。

於是他們不再等了。

2003 年到 2007 年之間,幾乎所有後來定義 AI 基礎設施的早期專案,都選了 Linux 作為唯一的目標平台。不是因為 Linux 的桌面體驗好——2005 年的 Linux 桌面,連 Wi-Fi 都經常連不上。而是因為它是唯一一個不會在某天早上醒來,發現平台商突然改了規則、收了租金、或者叫你「癌症」的地方。

同一年——2001 年——微軟的另一支團隊,正在紐約時代廣場遞出第一台 Xbox。第三章講過,Xbox 是一面用來擋住 Sony 的牆。Ballmer 的「癌症論」,是另一面牆——用來擋住 Linux。

兩面牆都擋住了眼前的對手。但兩面牆也一起,把一片正在成形的大陸隔在了外面。


III. 第二個盲區:Intel 殺死自己的 GPU

如果說微軟的錯誤是把 Linux 當敵人,Intel 的錯誤,比這更致命——它殺死了自己的孩子。

2006 年,NVIDIA 發佈 CUDA——一套讓程式設計師可以用 C 語言,直接在 GPU 上做通用運算的工具。第七章會完整講述這個決定的始末與後果。這裡只需要知道一件事:當時全世界沒有人把 CUDA 當回事。GPU 是拿來畫三角形的,不是拿來算矩陣的。Carmack 不在乎,遊戲工作室不在乎,華爾街不在乎。

但 Intel 在乎——只是方向全錯。

2008 年,Intel 公佈了一個叫 Larrabee 的專案。概念極度大膽:一顆完全基於 x86 指令集的 GPU。不是 NVIDIA 那種需要專用語言(CUDA)的架構,不是 AMD 那種傳統繪圖管線的設計——Larrabee 要讓程式設計師用他們已經會的 C++,在一顆長著幾十個小型 x86 核心的晶片上,同時做繪圖和通用運算。

如果 Larrabee 做成了,歷史會完全改寫。

一顆 x86 GPU,意味著 Intel 手上的整個軟體生態——編譯器、除錯器、效能分析工具、幾十年累積的 x86 優化經驗——全部可以直接搬過來。開發者不需要學 CUDA,不需要把程式碼改寫成 GPU 友善的格式。他們只需要寫 C++,剩下的事 Intel 的編譯器幫你搞定。

更關鍵的是:Intel 是 CPU 的霸主。如果它同時擁有 GPU,它就可以做到一件 NVIDIA 做不到的事——CPU 和 GPU 共享同一塊記憶體,用同一條匯流排,跑同一套指令集。 今天 AI 訓練最大的瓶頸之一,就是 CPU 和 GPU 之間的資料搬運。如果 Larrabee 成功,這個瓶頸從架構上就不存在。

NVIDIA 的 CUDA 壟斷,可能永遠不會發生。

但 Larrabee 沒有做成。

2010 年 5 月,Intel 宣佈取消 Larrabee 的消費級顯示卡計劃。官方說法是「架構轉向高效能運算」。殘骸被改名為 Xeon Phi,塞進伺服器市場苟延殘喘了幾年,然後在 2017 年前後被徹底裁撤。

為什麼被殺?

答案藏在 Intel 的財務報表裡。2010 年,Intel 的 CPU 業務毛利率超過 60%。整個公司的營收結構、獎金制度、升遷路徑,全部圍繞這個數字運轉。GPU 是一個全新的市場——毛利率不確定,開發週期長,需要從零建立驅動程式團隊和生態系統,而且短期內會大量消耗工程資源,卻看不到回報。

在一家毛利率 60% 的公司裡,要求董事會批准一個短期虧損、長期不確定的 GPU 專案——這不是技術問題,這是體制問題。

Intel 內部殺死 Larrabee 的人,不是一個名字可以指認的反派。是整個體制的激勵結構:每一個事業部主管都在保護自己的毛利率;每一個季度的財報電話會議都在向華爾街承諾利潤成長;每一位副總裁都知道,把資源從 CPU 移向一個不確定能成功的 GPU,自己的年度考績會受影響。

沒有人做了一個「錯誤的決定」。每一個人都做了在自己位置上最理性的決定。但所有理性的決定加起來,等於一個自殺式的結果。

這個結構性的自殺,會在第九章——Pat Gelsinger 的悲劇——裡再次出現。Gelsinger 2021 年回到 Intel 試圖力挽狂瀾,但他面對的,正是 Larrabee 被殺時種下的因果:Intel 錯過了 GPU,錯過了 AI,錯過了整整一個時代。而那個時代,被 NVIDIA 一家公司獨占了。


IV. 大逃亡

兩個盲區疊在一起,效果是這樣的——

微軟把 Linux 當癌症,意味著 Windows 不會主動去服務那些跑在 Linux 上的科研工具鏈。Intel 殺死 Larrabee,意味著市場上唯一能拿來做通用 GPU 運算的硬體,只剩 NVIDIA。

而 NVIDIA 的 CUDA——從 2007 年到 2012 年那段沒有人看好的漫長等待期——押的注,恰好全壓在 Linux 上。

這不是偶然。CUDA 的目標用戶是科研人員和高效能運算工程師。這群人的機器跑什麼?Linux。他們的程式碼用什麼編譯?GCC。他們的工作流程長什麼樣子?SSH 進伺服器、跑腳本、看日誌、調參數。

NVIDIA 的工程師在 Linux 上做 CUDA 開發,和在 Windows 上做,有一個結構性的差距。Linux 的核心是開源的——NVIDIA 可以自己寫核心模組,繞過作業系統的 GPU 排程器,讓 CUDA 直接控制 GPU 的每一個運算單元。在 Windows 上,同樣的事要透過 WDDM 驅動模型,多經一層微軟控制的排程層。這一層多出來的延遲和限制,在玩遊戲時感覺不到;但在訓練一個需要幾千個 GPU 同步的模型時,每一微秒的額外開銷都會被放大幾千倍。

Linux 不是因為好用而贏。它是因為夠開放而贏——開放到讓 NVIDIA 可以在上面做任何想做的事,而不需要向任何平台商請示。

而 GPU 叢集,只是逃亡的一條路線。另一條路線更安靜,但版圖更大。

如果你走出計算機科學系,走進隔壁電機系或機械系的實驗室,你會看到另一種電腦——不是桌上型 PC,不是伺服器,而是一塊塊裸露的 EVB(Evaluation Board,評估板)。這些巴掌大的電路板,是醫療儀器、工業機器人、農業無人機、自駕車感測模組的大腦。它們的處理器可能是 ARM,可能是 RISC-V,記憶體只有幾百 MB,儲存空間以 GB 計。它們跑什麼作業系統?

全部是 Linux。

不是因為研究者偏愛開源精神,而是因為別無選擇。微軟曾經試過——Windows CE、Windows Embedded,名字換了好幾輪——但 Windows 的核心太龐大、授權費太貴,而且不允許你把系統裁剪到只剩需要的那幾個模組。一塊只有 256MB RAM 的 EVB,塞不進 Windows,但跑得動一個被剪裁到幾十 MB 的 Linux 核心,外加你自己寫的驅動程式和控制程式。

這件事看起來跟 AI 無關,跟遊戲更無關。但它有一個被嚴重低估的後果:每一個在 EVB 上寫過 Linux 驅動的工程師,都是一個懂得「由核心到硬體」全鏈路的人。 這些人後來去了哪裡?有些去做了機器人公司,有些去做了自駕車,有些走進 NVIDIA 寫 CUDA 驅動,有些成了 AI 基礎設施團隊的骨幹。他們帶過去的,不是某一種程式語言的熟練度,而是一種「打開蓋子看裡面」的工程直覺——正是間章要講的那種正在消失的能力。

Linux 的勝利,從來不只發生在資料中心。它同時發生在每一塊被塞進儀器外殼裡的嵌入式電路板上、每一台在田間自動巡航的無人機裡、每一個醫院裡跑著即時影像辨識的超音波探頭裡。這些地方,Windows 從來沒有到達過。

這裡出現了第二章辨識過的那個 pattern 的鏡像——

DirectX 的 pattern 是:微軟用便利吸引開發者進入 Windows,用 API 鎖定箍住他們,最後鎖住消費者。

CUDA 在 Linux 上的 pattern 是:NVIDIA 用自由吸引研究者進入 CUDA,用生態系統鎖定箍住他們,最後鎖住整個 AI 產業。

鎖的機制一模一樣。但鎖的地點不一樣。第二章的鎖裝在 Windows 上;第五章的鎖裝在 Linux 上。微軟花了十年鋪設的 Windows 護城河,在 AI 這個最重要的戰場上,完全沒有派上用場——因為戰場不在這裡。

2012 年 9 月,兩位多倫多大學的研究者——Alex Krizhevsky 和他的指導教授 Ilya Sutskever、Geoffrey Hinton——發表了一個叫 AlexNet 的圖像辨識模型。它在 ImageNet 競賽上把第二名拉開了超過十個百分點。

AlexNet 是用兩張 NVIDIA GTX 580 顯示卡訓練的。跑的是 CUDA。作業系統是 Linux。

那兩張 GTX 580,零售價各約 500 美元。它們本來是設計給遊戲玩家的——玩《Skyrim》、跑《Battlefield 3》。買這張卡的遊戲玩家,替 NVIDIA 分攤了 Fermi 架構的研發成本;Fermi 架構裡的 CUDA 核心,被 Krizhevsky 拿來做矩陣乘法;矩陣乘法的結果,點燃了深度學習革命。

這是第七章的完整故事。但在第五章,我們需要記住的只有一個事實:點火的那一刻,Windows 不在場。Intel 也不在場。

它們不是被打敗的。它們是自己走開的。


V. 結案陳詞

2014 年,Satya Nadella 接任微軟 CEO。他做的第一件引發業界震動的事,是站在台上,對著一塊寫著「Microsoft ♥ Linux」的投影片微笑。

台下的科技記者們笑出聲來。十三年前,這家公司的前任 CEO 管 Linux 叫癌症。

Nadella 不是在搞公關。他是在承認現實。Azure 雲端服務上超過一半的負載跑的是 Linux;AI 研究社群的所有重要框架——TensorFlow、PyTorch、JAX——全都以 Linux 為首要平台;全世界每一間想做 AI 的公司,租的都是跑著 Linux 的 GPU 叢集。微軟如果繼續把 Linux 當敵人,它的雲端業務——整個公司未來最大的成長引擎——就會被 AWS 和 Google Cloud 徹底甩開。

Nadella 的「Microsoft ♥ Linux」,是微軟的無條件投降。

但投降來得太遲了。

AI 的軟體生態已經完全長在 Linux 的土壤上。每一個深度學習框架、每一套訓練工具、每一條從資料前處理到模型部署的流水線——全都假設底層是 Linux。這不是偏見,是工程事實。NVIDIA 的 CUDA 工具鏈在 Linux 上的效能,持續優於 Windows;GPU 叢集的管理工具幾乎全是為 Linux 寫的;容器化技術(Docker)在 Linux 上原生運行,在 Windows 上只是一層模擬。

微軟後來做了很多事來彌補——收購 GitHub、把 WSL(Windows Subsystem for Linux)做到幾乎無縫、花幾百億美元投資 OpenAI。這些動作的每一步都很聰明。但它們解決的是症狀,不是病因。

病因是:當一個生態系統的根長在別人的土壤裡,你可以往上面澆水、施肥、蓋溫室——但你永遠無法把根拔起來,移植到自己的花園裡。

Intel 那邊更慘。Larrabee 死後,Intel 在 GPU 市場消失了整整十二年。2022 年,它終於推出了消費級獨立顯示卡 Arc 系列——但那一年,NVIDIA 的資料中心 GPU 營收已經超過遊戲 GPU 營收,AI 的軍火競賽已經打到白熱化。Intel 帶著一把弓箭,走進了一場飛彈戰爭。

回到這一章開頭那位史丹佛博士生。

她每天從 macOS 連進 Linux 叢集、用 CUDA 訓練模型、把結果推上 GitHub、再用 Weights & Biases 追蹤實驗——整個工作流程裡,Windows 的角色是零,Intel CPU 的角色是「跑跑前處理就好」。她覺得這件事理所當然。

但這件事不是理所當然。它是 2001 年 Ballmer 那句「癌症」、2010 年 Intel 董事會那張否決票、以及 Windows 從 1993 年起就選擇把硬體藏到牆後面——這三個決定的延遲帳單。

帳單的總額,是一整個時代的產業主導權。

微軟付了這筆帳——它用幾百億美元的 AI 投資、一次又一次的組織改造、以及犧牲 Xbox(第十章的故事)作為代價,試圖買回一張已經被撕掉的入場券。

Intel 還在付。可能永遠付不完。


VI. 贓物仍在被瓜分

這裡要畫一條線,把第二章和第五章串起來——因為同一個 pattern 的兩面,在這裡完成了合攏。

第二章的 DirectX,是微軟用來鎖住 PC 遊戲生態的武器。它成功了。到了 2000 年代初,絕大多數 PC 遊戲只跑 Windows,開發者被鎖死在 DirectX 上,消費者被鎖死在 Windows 上。

但鎖住遊戲的那道牆,有一個副作用——它讓 Windows 變得越來越封閉。每一層新的 API、新的驅動模型、新的安全機制,都是為了保護上一層的商業利益,而不是為了讓開發者觸及硬體。需要觸及硬體的人——科研工程師、HPC 工程師、那些日後會成為 AI 研究員的人——不是被微軟趕走的,是被微軟的成功逼走的。

Windows 的護城河太深了,深到連自己人都出不去——而外面的人,根本不想進來。

這就是為什麼 2012 年 AlexNet 點火的時候,火是在 Linux 上燒起來的。不是因為有人刻意選擇 Linux;是因為 Linux 是唯一一個沒有被任何一家公司鎖住的地方。

而一旦 AI 的火在 Linux 上燒起來,它就不會再移動了。因為火焰帶來的整個生態——框架、工具、社群、教學資源、就業市場——全都長在 Linux 上。一個 2025 年的 ML 工程師,就算想在 Windows 上訓練模型,她會發現:教程是 Linux 的,Docker image 是 Linux 的,NVIDIA 的最新 CUDA 版本先在 Linux 上穩定,Stack Overflow 上的除錯經驗全是 Linux 的。

這個鎖定效應,和 DirectX 鎖住遊戲開發者的機制完全一樣——只是方向反過來了。

第二章的 pattern:微軟用便利鎖住開發者 → 開發者鎖住消費者 → 消費者鎖住在 Windows 上。

第五章的 pattern:Linux 用自由吸引研究者 → 研究者建立生態 → 生態鎖住整個 AI 產業 → AI 產業鎖住在 Linux 上。

代價,在三十年後顯形。

微軟花了三十年打造的 Windows 護城河,在 AI 時代被完美地繞過去了。不是被攻破的——是被繞過去的。攻城的人甚至沒有意識到自己在繞路。他們只是去了一個更自由的地方,然後在那裡建了一座更大的城。


但 AI 研究者不是唯一一群被 Windows 的封閉逼到 Linux 的人。

就在 Nadella 站在台上說「Microsoft ♥ Linux」的同一年——2014 年——西雅圖另一棟不起眼的辦公樓裡,一位胖胖的、說話慢條斯理的前微軟員工,正在盯著一組數據。

數據顯示:微軟正在計劃把 Windows 商店做成一個封閉的 App Store,所有在 Windows 上發行的軟體,都要經過微軟審核,微軟抽成。如果這件事成真,他的公司——一家靠在 Windows 上賣遊戲為生的公司——就會從房東變成租客。

他決定做一件比「♥ Linux」激進一百倍的事。

他要在 Linux 上,把整個 Windows 遊戲生態搬過來。不改一行 Windows 的原始碼。不請微軟許可。不跟任何人商量。

他的名字叫 Gabe Newell。他的計劃,需要一群能從系統呼叫寫到 GPU 驅動的全棧工程師——因為他們要做的事,是在 Linux 上架起一座虛擬的 Windows,讓幾萬款 DirectX 遊戲以為自己還跑在微軟的世界裡。

這件事,按照所有合理的工程判斷,不可能做到。