随着Linux 7.0内核正式发布,Torvalds的目光已转向即将在数月后推出的7.1版本。目前最引人注目的一项合并内容,是针对Windows默认磁盘格式NTFS的全新内核级可读写驱动程序。Linus将其称为由Namjae Jeon主导的"ntfs复活"计划。尽管部分Linux博客对此大为兴奋,但在我们看来,他们忽略了这件事真正值得关注的地方。
这次更新并不会带来性能上的飞跃式提升。现有的内核NTFS支持本身已经足够高效。此次真正值得学习的地方,在于代码的整洁性、可维护性以及详尽的注释,这使得即便时隔数十年,一位开发者也能顺畅地接手另一位开发者的工作。
为何要做出改变
本站FOSS专栏曾于2025年10月介绍过这一驱动程序,并梳理了其历史背景。该驱动由韩国开发者Namjae Jeon开发,他曾就职于三星,现供职于Samba项目组,正逐步成长为Linux文件系统领域的核心专家之一。早在2022年,他便贡献了允许Linux修复损坏exFAT卷的代码,相信这已为大量大容量闪存用户挽回了不少数据。
这并非一项颠覆性的新功能。早在1997年,Linux 2.1.74内核便已具备读取NTFS卷的能力。十余年后,由Tuxera赞助的FUSE NTFS-3G驱动加入其中。由于NTFS-3G运行于用户态而非内核内部,其速度相对较慢,功能也存在一定限制——例如无法从其启动系统。
这一局面在2021年发生了转变。Paragon Software向内核捐赠了一款新的可读写GPL授权NTFS驱动程序,历经大量讨论与打磨,最终并入了5.15版内核。然而,向Linux内核捐赠一个庞大而复杂的驱动程序并非一锤子买卖,它需要持续的维护投入,而大约六个月后,这一问题便开始显现。
正是在这一时期,Namjae着手对原有的1990年代只读NTFS驱动进行现代化改造,在新增写入支持的同时,将其更新至使用大folios等现代内核文件系统处理特性。
如今,这项工作已经完成:原有的NTFS驱动已被替换。在下一个次要内核版本中,新驱动将以可选形式提供,可通过名为NTFS_FS的Kconfig开关启用。目前,Paragon的NTFS3驱动仍将保留在代码树中,但其被移除似乎只是时间问题。
新驱动在速度上略有提升,且已通过更多合规性测试。合并请求中写道:
稳定性提升方面:新ntfs驱动通过了326项xfstest测试,而ntfs3仅通过273项。ntfs3通过的所有测试均已被新实现完整覆盖。此外,新驱动还新增了对fallocate、idmapped挂载、权限管理等功能的支持。
当年Paragon为使其代码获得接受,耗费了数月时间——在最初提交的2.7万行代码之后,Paragon历经四个版本将其重构为易于管理的模块,最终于次年获得接受。
如今五年过去,所有这些努力或许终将如雨中泪水般消逝于时光。
这才是这件事真正值得铭记的意义所在,每一位热衷于"氛围编程"的所谓"10倍效率开发者"都应该认真思考这一点。当然,他们不会在意——但我们其他人会。
Q&A
Q1:Linux 7.1内核新增的NTFS驱动和原有的NTFS3驱动有什么区别?
A:新NTFS驱动由开发者Namjae Jeon基于原1990年代只读驱动现代化改造而来,新增了写入支持并引入了大folios等现代内核特性。在测试表现上,新驱动通过了326项xfstest测试,而Paragon的NTFS3驱动仅通过273项,且新驱动通过的测试完整覆盖了NTFS3的所有通过项。此外,新驱动还支持fallocate、idmapped挂载和权限管理等功能,整体速度也略有提升。
Q2:Paragon捐赠的NTFS3驱动会被彻底移除吗?
A:目前Paragon的NTFS3驱动仍将保留在Linux内核代码树中,不会立即被删除。但随着新NTFS驱动的正式并入并在功能与测试覆盖上全面超越NTFS3,业界普遍认为NTFS3被移除只是时间问题。Paragon当年为推动NTFS3进入内核耗费了大量精力,历经多个版本重构才获接受,但后续维护问题最终使其陷入困境。
Q3:Linux 7.1中新NTFS驱动如何启用?
A:在Linux 7.1内核中,新NTFS驱动将以可选形式提供,用户可以通过内核配置选项中名为NTFS_FS的Kconfig开关来启用该驱动。这意味着它不会默认强制替换现有配置,而是交由用户或发行版维护者自行决定是否启用。