前微软逆向工程师认为 Windows NT 内核优于 Linux 一名曾在微软担任四年逆向工程师的 Google 研究员重新引发了计算机领域最古老的争论之一,而她认为 Linux 正处于下风。
Laurie Kirk 于 2024 年加入 Google,同时运营着 LaurieWired YouTube 频道,订阅者超过 50 万。她在 X 和 LinkedIn 上写道:“NT 内核确实是一项工程奇迹,时至今日在许多方面仍让 Linux 相形见绌。”
Kirk 赞赏的是 Windows 底层的架构,也就是 NT 如何表示资源,以及如何决定谁可以访问这些资源。这里讨论的不是开始菜单、Copilot 或 Windows 中的广告。我之所以强调这一点,是因为 Kirk 将争论延伸到了 2026 年:她质疑 Linux 是否适合 AI 代理,因为这些代理每个月获得的权限都在增加;她还设想了一个另类历史:微软发布了一个名为“Open NT”的系统,允许 Amazon 基于它创建分支。

和每一次关于 Windows 与 Linux 的不加克制的社交媒体发言一样,回复中的资深工程师强烈反驳,认为 Linux 的模块化设计是有意为之,而分支最终会拖垮任何 Open NT。
Windows NT 于 1993 年首次发布,自 2001 年的 Windows XP 起,它一直是所有主要桌面版 Windows 的基础,Windows 11 也不例外。Windows 95、98 和 Me 属于独立的、基于 DOS 的 Windows 9x 系列,而 Windows 2000 则基于 NT。微软于 1988 年 10 月聘请了 Dave Cutler,此前他曾在 DEC 主导 VMS 的开发。
据微软介绍,他带领的小型前 DEC 工程师团队在编写代码前花了六个月制定规范,目标包括可移植性、多处理器支持以及 C2 安全认证。

Dave Plummer 是负责开发任务管理器的退休微软工程师。他回复道:“NT 并不是 Dave Cutler 的第一次尝试,这一点从它当时以及如今都极具前瞻性的设计中可以看出。” 他还补充说:“在 RSX-11M 和 VMS 之后,Windows NT 是他第三次从零开始打造内核。”
不过,NT 并不是套着 Windows 标志的 VMS。它最初名为 NT OS/2,是一款可移植操作系统,最先为 Intel i860 芯片编写,之后转向 MIPS。Windows 3.0 大获成功后,微软将其主要发展方向从 OS/2 转向了 Win32!
至于 Windows 11,Nokia 的 SoC 工程师 Franco Minucci 说得更准确:“Windows 11 的问题更多是外壳问题,而不是内核问题。” 人们对 Windows 11 的大部分批评都集中在 AI 上,从对代理式操作系统的反弹,到微软对高级用户说“我们非常重视你们”,再到其 AI 负责人不理解人们为何觉得 AI 令人失望。
不过,那个微软已经一去不复返了。Copilot 即将迎来大规模更新,功能令人印象深刻,以至于 CEO Satya Nadella 不得不称其为面向工作的操作系统。
全新的 Copilot 超级应用体验。图片:微软当一名用户问 Kirk,既然 NT 内核是闭源的,她凭什么做出判断时,她只是回答:“也许是因为我以前在那里工作过……” 提醒所有人她曾在微软工作了四年。
Kirk 的简短总结是,NT “更像是一门面向对象的语言,从第一天起就拥有强大的安全模型,而 Linux 则非常……不是这样。”
当然,“面向对象”只是一种类比。微软表示,Windows 并不是经典 C++ 意义上的面向对象系统,而是将其称为基于对象的系统。
在 NT 中,进程、线程、文件、设备、注册表项、互斥体、作业和访问令牌等,都是对象,合计超过 25 种对象类型。其中一个组件——对象管理器——负责创建和销毁对象、维护对象命名空间、跟踪每个进程持有的对象,并追踪访问权限。其他组件只能通过对象所有者导出的例程使用对象。微软表示,这使它能够重写某个组件的内部实现,而不会破坏其他部分。
开发者通过句柄使用这一机制。当应用打开文件时,Windows 会返回一个句柄,并将授予的权限与句柄一同保存;之后的每次请求都会根据这些权限进行检查。如果复制一个句柄,可以从副本中移除权限,但能否增加权限则取决于对象类型。
让如此多的资源采用统一模型就像一种奢侈,因此我能理解 Kirk 为什么认为它很优雅。
微软的文档介绍了一种主要基于对象权限、并在此基础上加入少量系统级特权的安全模型。
登录时,Windows 会创建一个访问令牌,其中包含你的安全标识符(SID)、所属组和特权;你启动的进程通常会继承这一安全上下文。每个可保护对象都有一个安全描述符,其中可以包含访问控制列表(ACL),规定哪些 SID 被允许或拒绝哪些权限。当你请求某个对象时,Windows 会将你的令牌与其 ACL 进行比对,然后向你提供一个包含已授予权限的句柄。
该描述符还可以包含用于控制审计的系统 ACL。启用审计后,管理员便可以记录对对象的成功和失败访问。
然而,强大的模型并不等于安全的操作系统。带有 Service Pack 3 的 NT 3.5 于 1995 年获得了 C2 评级,但前提是作为不联网的独立 PC 使用,并且必须收紧默认的文件和注册表权限。曾在 Bloomberg 和 Reuters 工作过的基础设施工程师 Ken C. 要求 Kirk 指出“任何其他需要每月更新……否则就有被黑客入侵风险的产品。” 驱动程序、默认设置以及数十年的兼容性工作,对 Windows 的安全性影响并不亚于内核。
Kirk 的另一个批评对象是 Linux。她问道:“你使用 UID?GID?ACL?CGROUP?策略?SELinux?文件系统模式?” 她认为 Linux 没有“单一且连贯的能力关系图。”
Google 研究员 Laurie Kirk这些机制各司其职。UID 和 GID 用于标识用户和组,文件模式与 ACL 则保护文件。Capabilities 可以拆分 root 的权限,因此 Web 服务器无需获得完整 root 权限,也能绑定 80 端口。命名空间为进程提供独立的挂载点、进程或网络视图,这也是容器的工作方式;cgroups 可以限制 CPU 和内存;SELinux 及其他 Linux 安全模块(LSM)则负责执行额外策略。
Kirk 说大多数机制都是后来加入的,这一点是正确的。内核的 LSM 文档显示,NSA 于 2001 年以独立补丁的形式展示了 SELinux。Linus Torvalds 随后提出了一个钩子框架,任何安全模型都可以接入其中,该框架最终随 Linux 2.6.0 于 2003 年 12 月发布。如今内核已经内置 SELinux、AppArmor、Smack、TOMOYO、Landlock 等机制。
Ken C. 认为这种附加式模型正是 Unix 和 Linux 的统一理念,也是“全部意义所在。” Kevin Faulkner 则补充说,可选的 SELinux 让一些无力承担额外开销的 HPC 项目能够跳过它。
双方都不能垄断对整洁架构的定义。NT 围绕单一对象模型进行集中设计,而 Linux 则在类 Unix 基础上发展出了可组合的机制。
这位 Google 研究员将 AI 问题归结为一句话:“这个 AI 代理究竟被允许做什么?”
管理员已经可以自动化执行任务。AI 代理则能在几分钟内执行数千个操作,运行刚刚编写的代码,读取文件,并在无需征得你同意的情况下串联各种权限。操作系统必须定义、限制并证明这类软件能够做什么。
Kirk 认为,NT “可以采用明确类型化资源的方式”,并在“代理失控时提供非常强大的集中式审计追踪。” 不过,这仍然只是一种观点。

Linux 也有强有力的应对方案。Landlock 于 Linux 5.13 中加入,允许即使没有特权的进程限制自身的文件系统访问;后续版本又增加了对某些网络操作的限制。这些规则会传递给子进程,且只能进一步收紧;启用审计后,被拒绝的请求还可以写入审计日志。结合 seccomp、命名空间、cgroups 和 LSM,Linux 同样能够限制 AI 代理。不过,Landlock 文档也承认,命名空间“并不是为访问控制而设计的”,这与 Kirk 的批评颇为相似。
因此,争论的核心在于:围绕代理构建的操作系统,是否能让这些控制机制更容易理解,而微软正在着手解决这一问题。在 Build 2026 大会上,微软宣布了 Microsoft Execution Containers(MXC)SDK 的早期预览版。开发者可以声明代理能够访问的内容,Windows 则在运行时强制执行这些限制。MXC 会话隔离让代理在各自的用户账户下运行,因此每个操作都能追溯到具体代理。Windows 11 的实验性 Agent Workspace 已经使用 ACL 控制代理账户对文件的访问。
Windows 中的代理正在获得 SID、令牌和 ACL,这正是 Kirk 所称赞的 NT 模型。当然,微软推动代理式操作系统,从任务栏中的 AI 代理到能够访问个人文件夹的后台代理,也伴随着相应的恶意软件警告。这些工作并不能证明微软同意 Kirk 对 Linux 的看法,但雷德蒙德确实正在思考她提出的问题。
Kirk 表示,微软早在 21 世纪初就“应该打造一个‘Open NT’”,不必完全采用 GPL 模式,“但应该允许大型组织说……把内存分配器替换成自己的实现。” 她举例说,早期的 Amazon 可以基于 EC2 打造“AmazonNT”,使用自己的调度器或网络栈,同时“安全性和兼容性契约由微软一侧维持稳定基线。”
她承认微软“某种程度上确实这么做过。” 微软的共享源代码计划向约 1600 家符合条件的企业客户提供 Windows 源代码,同时还为大学和政府提供独立计划。2001 年,奥地利内政部成为首个获得 Windows XP 源代码的欧洲政府。2006 年,Windows Research Kernel 允许学术人员修改 NT 的调度器和内存管理器,但仅限于教学和研究用途。
共享源代码计划允许人们研究代码,却不允许 Amazon 发布商业化的 NT 分支。
但微软为什么没有更进一步? 在我看来,这与授权收入、知识产权、支持成本,以及担心破坏让 Win32 应用持续运行三十年的兼容性承诺有关。
最强烈的反驳来自 David Airlie。他是长期从事 Linux 内核开发的开发者,负责维护 Linux 的图形子系统。他写道:“分支并不是那样运作的。随着时间推移,维护成本太高。” 他还让 Kirk 想象一下,20 年后仍然要维护 NT 内存管理器的一个分支。
Kirk 提到了 Java。Corretto、GraalVM、Azul 和 OpenJ9 都提供面向相同 Java 规范的不同发行版或 JVM 实现。Airlie 回应说,这些项目都有付费客户,而没有收入的内部 NT 分支将持续面临被放弃的压力。他补充道:“很多人会分支 Linux,坚持一两年或五年,随后因为成本压力意识到必须将改动提交回上游。”
如果 Amazon 重写了 NT 的调度器,那么相关的微软安全修复就需要持续合并并重新测试,直到这个分支变成第二个内核团队。使用 Linux 时,企业可以将有用的改动提交回上游,由社区负责维护,因此 Linux 的架构与开发模式无法分割开来。
Kirk 假设稳定的 NT 契约能够让分支持续发展。Airlie 则认为,即使源代码完全开放,一个分化的内核依然十分昂贵,至少这是一个相当合理的观点。
拥有多年 IT 和系统可靠性经验的 Ken C. 表示,VMS 的一致性只有一部分延续到了 NT。他质疑如何在不过度购买硬件的情况下,让非实时 NT 实现确定性性能,并表示自己对注册表的评价“不适合在专业场合发表。”

高级软件工程师 Ricardo Bánffy 指出,为了提升图形性能,NT 4.0 将图形驱动程序移入了内核空间。微软文档证实,NT 4.0 将窗口管理器、GDI 和图形驱动程序移入内核,因此有问题的图形驱动程序可能导致整个操作系统崩溃。Windows 2000 随后通过 Windows 驱动程序模型、完整的即插即用支持、电源管理、WMI 集成和作业对象扩展了 NT 系列,而此后的每个版本都继续叠加更多功能。
Windows 11 中的 NT 内核并不是被冻结在琥珀中的 1993 年设计(顺便说一句,这是在引用《侏罗纪公园》)。Kirk 赞扬的是 NT 的初始理念,而微软后来构建的大量内容同样可以接受审视。
Linux 赢得服务器和云计算市场,是因为任何人都可以修改它、在廉价硬件上运行它,并将改动提交回去,这推动了容器、开发者工具和 Android 的发展。在回复中,开发者 Oliver M. S. 将其归功于效率和控制力;创始人兼 CEO Sean Mert 则转述了一名 Nasdaq 系统管理员的观点,认为只有 VMS 能在交易所级别的负载下保持稳定。不过,这两者都只是从业者的个人观点。
讽刺的是,微软在 2026 年一直在努力让 Windows 成为 Linux 更好的运行平台。Ubuntu 通过 WSL 的增长速度超过了原生 Linux PC,WSL 也获得了更快的文件访问速度和更好的网络性能。微软还公布了 WSL Containers,我们曾利用它在无需 Docker Desktop 的情况下运行 Linux 容器。甚至 Google 也在为其 AI 工具加入 WSL 支持。

微软还打造了一款能将 Windows 11 变成开箱即用的编程电脑的工具,以及专为高级用户设计的 Windows 11 版本,但最近的一项调查显示,在受访者中 Windows 的占比仅为 12%。
Kirk 还表示,2026 年构建的内核或许会更接近 NT,“甚至可能是 BSD 的一个分支。” 她称 BSD“在架构上更加整洁”,定义能力的重叠方式更少,并称赞了很早就出现的 jail 机制。
FreeBSD jail 可以隔离进程对文件系统、用户和网络的视图。Capsicum 更接近她所说的方向,因为处于能力模式的进程会失去对全局命名空间的常规访问,只能依赖通过文件描述符或内存映射明确授予的权限。颇为有趣的是,Capsicum 由剑桥大学在 Google 资助下开发。
基于能力的安全机制并非 Windows 的发明,Kirk 的论点实际上关乎操作系统如何表示权限。
NT 认为资源应当拥有明确定义的类型,访问权限应附加在资源上,操作系统则应提供共享机制来检查和审计访问。Linux 以灵活的类 Unix 基础为起点,提供可组合的机制,让发行版和管理员根据需要进行组合。
两者都无法保证操作系统绝对安全。但 AI 将问题从用户是谁,转变为软件代理能够做什么、能够访问哪些资源、可以持续多长时间、代表谁执行,以及如何证明它做过什么。
NT 并没有成为服务器和云计算领域的操作系统,桂冠属于 Linux。然而,NT 3.1 发布 33 年后,对象、句柄、令牌和 ACL 仍在驱动 Windows,而微软如今正重新利用它们来限制 AI 代理。
Laurie Kirk 的 Open NT 或许会一直停留在幻想中,但随着计算机开始代表我们采取行动,而不是等待命令,每个操作系统都需要更清晰地回答:我们究竟应该允许这些代理走多远。