开源操作系统 ReactOS 近日迎来了一个被媒体视作里程碑的技术动作:用户终于可以直接将系统安装到 NTFS 文件系统 分区上。

Ars Technica 等行业媒体迅速跟进,把它描述为 ReactOS 告别过时 FAT32、走向 Beta 阶段的关键一步。但在欢呼声之外,事实需要被放在更理性的天平上称量。能够在 NTFS 上格式化并写入内核,与普通人能把它当成 Windows 的平替日常使用,中间还隔着一道巨大的工程鸿沟。这次更新不是一次即插即用的产品成熟秀,而是一场由志愿者推进了近十年的逆向工程补课。

从只读到安装:十年的存储栈补课

长期以来,试图通过逆向工程完全复刻 Windows NT 架构的 ReactOS,一直被困在 FAT32 分区里。

存储驱动历经十年补课,最终拼齐直接安装底层代码
存储驱动历经十年补课,最终拼齐直接安装底层代码

这在实际应用中带来了显而易见的窒息感。FAT32 无法处理大于 4GB 的单文件,无法满足现代安装镜像的吞吐需求,更与 Windows 从 1993 年 NT 3.1 奠基、2001 年 XP 确立的 NTFS 事实标准格格不入。要让一个开源系统在 NTFS 上扎根,绝不是写一个读写插件那么简单,它需要自底向上打通引导加载程序(FreeLoader)、卷引导记录(VBR)、磁盘格式化工具以及整个内核级存储驱动栈。

这一条补课之路,ReactOS 走了整整十年:

  • 2016 年.ReactOS 0.4.0 首次合并只读 NTFS 驱动;
  • 2018 年.0.4.8 版本引入了实验性的写入支持,但出于稳定性考虑,默认被锁死在注册表深处;
  • 2021 年.社区通过 PR #3416 艰难摸索 VBR 引导机制,中间历经多次 Google 编程之夏(GSoC)项目的局部迭代;
  • 2026 年 10 月 16 日:主线代码库正式合并关键的 PR #9700(提交哈希 11df3af),系统才算在底层拼齐了直接安装所需的关键拼图。
ReactOS NTFS 文件系统十年演进线 2016 年 0.4.0 版本 仅支持只读 2018 年 0.4.8 版本 注册表开启写 2021 年 PR #3416 攻克 VBR 引导 2026 年 10 月 PR #9700 打通安装流程

这个耗时十余天的连续提交包含了 14 个 commit,真正解决的是困扰社区多年的底层硬伤:实现了缓存读写、延迟写入、预读回调与 Fast I/O 路径,补上了缓存刷新与字节范围锁,并彻底除去了 4GB 的单文件读写天花板。

显微镜下的工程真相:能安装不等于数据安全

从代码合并到媒体曝光,不少围观者产生了一种错觉,以为摆脱微软系统指日可待。然而,只要把视线放回官方的真实状态,就会发现巨大的认知落差。

驱动虽已跑通安装,但缺少日志保护正如未装刹车的改装车
驱动虽已跑通安装,但缺少日志保护正如未装刹车的改装车

官方在 2026 年 8 月 29 日刚发布了正式版 ReactOS 0.4.16,虽然带来了图形化安装界面与基础存储修复,但在其正式发布文档中,完全没有将 NTFS 安装标记为受支持功能。眼下的安装演示,仅仅是主干开发分支上的实验性验证。

跑通安装流程只证明存储管线有路可走,不代表你的文件能够安全存活。

当前的 NTFS 驱动在核心能力上依然存在致命缺失:

  • 缺乏文件系统日志(Journaling):这是 NTFS 对抗意外断电与系统蓝屏的核心武器。缺少日志保护,意味着一旦系统在写入关键元数据时崩溃,极大概率导致整卷损坏。
  • 缺失安全描述符与 ACL 权限模型:它目前无法建立严密的文件访问控制机制,这在现代多任务与网络环境中无异于裸奔。
  • 缺乏成熟的系统级缓存优化.导致现阶段磁盘读写吞吐性能偏低,I/O 延迟明显。
  • 风险.在 PR #9700 的安装测试中,依然暴露出独立兼容器件的缺陷,例如 VMware Tools 在运行中就因缺失系统 DLL 而直接报错中断。
PR #9700:能力落地与安全边界对照 已跑通的底层能力 (PR #9700) • 突破 4GB 读写限制 • 落地 Fast I/O 与字节范围锁 • 支持延迟写入与预读回调 • 支持直接格式化并引导启动 尚未解决的工程隐患 • 无日志机制(Journaling):断电易坏卷 • 缺安全描述符与 ACL 权限体系 • 缺乏系统级缓存优化,吞吐较差 • 依然处于极早期 Alpha 验证阶段

把这样一套驱动装上机器,就如同坐进了一辆底盘刚刚搭好、动力管线刚刚点火,却尚未安装安全带与刹车助力泵的改装车。它证明了这套机构能跑,但绝不保证你能平安抵达终点。


架构的执念:当 Wine 足够好,为什么还要硬啃 NT 内核?

在当下的技术语境下,ReactOS 常被抛出这样一个质疑:既然 Linux 搭配 Wine 或 Proton 已经能流畅运行成千上万款 Windows 桌面软件和 3A 游戏,ReactOS 为何还要执着于从零逆向一套 Windows NT 内核与专有文件系统驱动?

老工控板卡与定制加密狗必须依赖原生的 NT 内核驱动
老工控板卡与定制加密狗必须依赖原生的 NT 内核驱动

答案藏在抽象层的差异里。

Wine 是在类 Unix 系统的用户态建立了一层 API 翻译机制,它管不到系统内核以下的世界。一旦面对老旧工业控制设备的专用 PCI 板卡驱动、定制加密狗,或是依赖深层 NT 内核特性的专有系统服务,跨层翻译往往束手无策。ReactOS 的核心目标不是为普通用户提供一个看视频、玩网游的替代品,而是力求在 二进制级别(Binary Compatibility) 1:1 地还原 Windows Server 2003 的内核行为。

“皮之不存,毛将焉附。”要想彻底继承 Windows 生态下最顽固的专有硬件驱动遗产,就必须拥有一套真实的 NT 内核与原生的存储驱动栈。这注定是一条孤独且耗时的西西弗斯之路。全凭开源社区与志愿者的逆向工程,在不触碰微软专利雷区的前提下,一点点去试探专有协议的黑盒。

  • 结论.对于普通极客而言,眼下完全不必急着用它来组建双系统或拯救旧电脑。接下来最关键的观察窗口,在于这套新驱动何时能合并进日志系统,以及 NTFS 安装选项何时会真正并入下一代正式版(如 0.4.17)的发布镜像中。

这项工程值得最大的敬意,但不需要廉价的浮夸。它是一次硬核的拓荒,而拓荒者推开的第一扇门,目前还只是一间没有门锁的毛坯房。