核心系统代码的更新节奏,通常无法与最前沿的“氛围编程”潮流同步,这其实是件好事,因为它需要保持稳定、高效且经过充分实战检验。然而,有时这种延迟会变得有些离谱,比如Linux现代文件系统API的文档更新就是如此。正如Phoronix所指出的,用户等待这些信息出现在标准的man-page(手册页)文档中,耗时超过了六年。

Cover Image

事情是这样的:在2019年,Linux迎来了全新的文件系统挂载API,主要用“fsconfig”“fsmount”“fsopen”等系统调用,取代了旧有的、一体化的“mount”。这使得开发者能更轻松地使用新功能,享受更清晰的代码结构、更好的错误处理能力,并且能够输出恰当的错误信息,而不是过去那种含义模糊的“mount failed”(挂载失败)。

开发者戴维·豪厄尔斯(David Howells)在2020年就起草了相关的手册页,但这些草案从未被合并到官方的man-pages软件包中,因为维护者不希望纳入可能不完整或不精确的草稿。豪厄尔斯显然未能完成这项工作,而也没有其他人接手。

在随后的几年里,想要使用新系统的开发者们,不得不去翻阅内核源代码中一份不美观的文件,在Linux内核邮件列表中寻找讨论,或者“享受”阅读数十份补丁说明的过程。在最好的情况下,鉴于这种状况,一些外部网站反而提供了某种形式的使用指南。

之所以没人接手编写新的手册页,另一个原因在于标准化的格式是Groff。这个格式如今已有35年历史,对人类来说极不友好,读起来简直像是出自克苏鲁(Cthulhu)之手。

文档负责人克里斯蒂安·布劳纳(Christian Brauner)终于在2024年受够了,他表示“多年来编写Groff让我感到厌倦”,于是他创建了自己的代码仓库,用Markdown格式编写了这些页面,终于为开发者们提供了一个查找必要信息的统一去处。最终,截至2025年10月,官方的man-pages软件包现已包含了这些页面。

文档几乎缺失的状况,很可能在一定程度上导致了多个文件系统处理程序采用新API的漫长延迟。老牌的Ext4直到2022年才使用它,CIFS(SMB)在2023年跟进,Btrfs2024年姗姗来迟,而F2FS(闪存文件系统)的实现仍在进行中。这些新的手册页尚未进入常见的发行版,因此只有滚动更新类型的发行版才会拥有它们。


文章标签: #Linux内核 #文件系统 #API文档 #手册页 #开源维护

负责编辑

  菠萝老师先生 

  让你的每一个瞬间都充满意义地生活,因为在生命的尽头,衡量的不是你活了多少年,而是你如何度过这些年。