第102期 | 微内核不慢,慢的是 Mach
一、Liedtke 的复仇
微内核不慢,慢的是 Mach:1992 年 Tanenbaum 判 Linux 死刑,判词里最硬的一条技术论据,藏在字里行间:微内核=慢。证据是 Mach——80 年代 CMU 的旗舰微内核¹,一次进程间通信(IPC)动辄上百微秒²。函数调用变成跨地址空间的消息传递,过路费贵到没人愿意走,模块化成了奢侈品。
1993 年 12 月,德国 GMD 的 Jochen Liedtke 在 SOSP 上交了一篇论文,标题就带着火药味:《Improving IPC by Kernel Design》²。同样的 i486、同样的 50MHz,他把一次短消息 IPC 从 100 微秒砍到 5 微秒——二十倍。手段不玄:短消息走寄存器不抄内存、一次系统调用办完一件事、能省的抽象一律不做。1995 年他再补《On µ-Kernel Construction》,立下一条"最小化原则":除非搬出去就实现不了,否则一律搬出内核³。判词被撕掉一半:慢的不是微内核这个思想,是 Mach 这个实现。
但快没能赢。L4 快了二十倍,世界还是选了 Linux——赢的是三十年攒下的驱动、发行版和云,是复利,不是道理。2006 年,Tanenbaum 与 Woodhull 的新版教材《Operating Systems: Design and Implementation》第三版问世,配套的正是他亲手写的 MINIX 3:真微内核,带一个"转世服务器"——驱动崩了,内核把它原地复活⁴。判别人的人,自己下场把理论走了一遍。
最妙的转折在 2017 年 11 月。Google 工程师 Ronald Minnich 发现:Intel 芯片深处的管理引擎(ME)里,跑的正是 MINIX 3——带网络栈、文件系统、驱动,甚至一个 web 服务器⁵。Tanenbaum 给 Intel CEO 写公开信,说自己是看新闻才知道的。判 Linux 死刑的人,他的内核住进了数亿颗芯片,只是没人知道。宏内核赢了看得见的地方,微内核赢了看不见的地方。
言外之物是杨振宁 1981 年说的那个中间层。Tanenbaum 做的是原理研究:教学意义上完美的架构。Linus 做的是发展性研究:把成熟原理(Unix)工程化、产品化。原理赢得掌声,工程赢得世界——但反过来说,没有原理层的人把路探明,工程层连方向都没有。吵架的两个人,站在同一条链的两端,只是没认出对方。
二、AI 重做 1991 年的考题
如果 AI 的操作系统先出现,它会选宏内核,还是微内核?
2026 年 10 月 23 日,一份工作论文把 1991 年的题重新摆上桌:《zOS – Zero OS》,副标题直白:An OS for the AI era⁶。方案极简:bootloader 加形式化验证过的微内核(seL4),再加运行 AI agent 所需的最少量。它的第一句话是"减到不能再减",第二句更狠:"它不想让 AI 变得可信,它要在 agent 不可信的前提下保持安全——agent 永远拿不到比人授予的更多的权限,任何动作都走验证过的回路。"三十四年前吵的是"结构纯不纯",今天吵的是"agent 失控了怎么办"。微内核等了三十四年,等来的不是平反,是一道新题。
宏内核也没闲着,学的正是对手的看家本领。2026 年 10 月 26 日前后,Linux 7.4 合并窗口:Google 用 C 写的 Binder 驱动被删,换成 Rust 重写版;同一周期新增约 1.7 万行 Rust 代码,NVIDIA 的 Rust 显卡驱动 Nova 继续长大⁷。看懂这一步:隔离不必非搬进用户态——内存安全可以写在类型系统里。1992 年的二选一,2026 年变成了"你中有我"。
还有第三条路,1995 年 MIT 的 Exokernel 就指出来了:内核只做安全复用,资源管理全部交给应用⁸。宏、微之争吵的是"内核该有多大",Exokernel 问的是"内核该不该管"。AI OS 的选题清单上,三条路都还活着。
三、今晚,给这场论战验尸
找一台手边的 Linux 机器,三件事,亲手摸一遍宏内核里的微内核影子。
看特洛伊木马:grep fuse /proc/filesystems——FUSE(用户态文件系统)就是微内核思想的借尸还魂:文件系统搬出内核,在用户态跑,崩了不连累内核。再跑 mount | grep fuse,数数这台机器上有多少 FUSE 文件系统正在跑。
数一次进出的过路费:strace -c /bin/true——看一次系统调用的时间和次数。微内核把函数调用变成消息传递,多付的就是这类过路费;Liedtke 当年砍的正是这笔账。
读那份新考卷:https://silentzero.ooo/versions/zos-zero-os-2026-10-23-v0.10.pdf ——三十四年前 Tanenbaum 出的题,今天换了一批人重做。注意它的设计清单:seL4、能力(capability)安全、混合关键性、实时——考的全是 1992 年论战里没人答上来的题。
一次 IPC 的代价:Mach(115µs)→ L4(5µs)→ seL4(0.09µs)。Liedtke 1993 年证明的不是"微内核快",而是"慢的从来不是思想,是实现"。数据:Liedtke SOSP'93;Elphinstone & Heiser SOSP'13 回顾。
觉 然 小 注
「应无所住而生其心。」⁹——鸠摩罗什译《金刚经》第四分。做架构,不住于宏内核/微内核之争;做研究,不住于一家之言。Linus 住在了"能跑"上,赢了三十年;Tanenbaum 住在了"纯粹"上,赢了每颗芯片。凡发生必有利于我:吵了三十四年的架,吵出的不是答案,是选题清单。今天轮到我们选题——带着两边的遗产一起选,这本身就需要一点出生勇气。
引 用 与 出 处
- [1] Mach (kernel). 卡内基梅隆大学,1985–1994. https://en.wikipedia.org/w/index.php?title=Mach_(kernel)&useparsoid=0
- [2] Jochen Liedtke. Improving IPC by Kernel Design. Proceedings of the 14th ACM Symposium on Operating Systems Principles (SOSP), Asheville, 1993. https://os.itec.kit.edu/downloads/publ_1993_liedtke_improving-ipc.pdf
- [3] Jochen Liedtke. On µ-Kernel Construction. Proceedings of the 15th ACM Symposium on Operating Systems Principles (SOSP), 1995.
- [4] Andrew S. Tanenbaum & Albert S. Woodhull. Operating Systems: Design and Implementation, 3rd ed. Prentice Hall, 2006.
- [5] BleepingComputer. Intel's Secret CPU-On-Chip Management Engine (ME) Runs on MINIX OS. 2017-11. https://www.bleepingcomputer.com/news/hardware/intels-secret-cpu-on-chip-management-engine-me-runs-on-minix-os/
- [6] Tobias von Dewitz et al. zOS – Zero OS. Working paper 2026-10-23-v0.10, 2026-10-23. https://silentzero.ooo/versions/zos-zero-os-2026-10-23-v0.10.pdf
- [7] PBXScience. Linux 7.4 Brings About 17,000 Lines of New Rust Kernel Code. 2026-10-20. https://pbxscience.com/linux-7-4-brings-about-17000-lines-of-new-rust-kernel-code-with-zerocopy-jumping-eight-versions/
- [8] Dawson R. Engler, M. Frans Kaashoek & James O'Toole Jr. Exokernel: An Operating System Architecture for Application-Level Resource Management. SOSP, 1995.
- [9] 《金刚般若波罗蜜经》第四分,鸠摩罗什译本。
· · ·