
Linux 创始人 Linus Torvalds 长期倡导开发者在代码过于复杂时借助现代工具辅助理解。上周,他亲自实践了这一建议,利用大型语言模型(LLM)梳理了一个晦涩难懂的补丁,不仅确认了一个已知缺陷,还额外发现了三个潜伏超过十年的隐藏 Bug。
在名为 assoc-array-fixes 的 Git 标签中,Torvalds 详细记录了这一过程。起因是开发者 Nils Ollrogge 报告了 assoc_array 库中的一个错误并提交修复补丁,但 Torvalds 认为原代码逻辑过于复杂,难以直接评估其正确性。于是,他使用 LLM 将庞大的函数拆解为更小、作用域更明确的单元,显著提升了代码可读性。
用户态测试验证四个深层缺陷
重构后的代码通过一个编译为用户态运行的测试框架进行了验证。这种脱离内核环境的测试方式允许快速迭代,避免了重启系统或引发不稳定的风险。测试结果证实了 Ollrogge 报告的错误,并进一步暴露出另外三个问题。追踪显示,这四个 Bug 均可追溯至该库在 2013 年首次引入内核时的原始代码。
assoc_array 是内核中用于高效查找的通用关联数组库,支持变长索引键存储。尽管其设计巧妙,允许对象同时存在于多个数组中,但实现细节充满复杂性:内部采用 16 指针节点树结构,涉及捷径剪枝和空闲槽位存储等机制。随着时间推移,函数膨胀且逻辑交织,即便对资深维护者而言也变得晦涩难懂。
补丁尚未合并,AI 辅助成新风向
目前,相关补丁仍位于 Torvalds 的个人仓库中,尚未合并到主线版本。鉴于 Linux 7.3 版本发布延迟,这些修复有望在后续的 7.4 版本合并窗口中接受审查并集成。媒体报道指出,截至 2026 年 10 月中旬,这些更改仍处于主分支之外。
这并非 Torvalds 首次公开尝试 AI 辅助开发。就在几天前,他还使用 Anthropic 的 Claude Code 起草了一个旨在将页面缓存小读取吞吐量提升三倍的测试程序。Torvalds 明确表示,他将 LLM 视为增强理解力的辅助工具,而非替代人类判断。
社区对此反应不一。有开发者称赞用户态测试框架是关键亮点,认为这验证了 AI 在梳理遗留代码逻辑方面的价值;也有人质疑该方法在内核严格审查文化中的可扩展性。无论如何,这一案例提供了一套实用模板:识别难懂代码、利用 LLM 结构化整理、通过用户态测试彻底验证,最后经人工审查集成。在长达数十年的 Linux 项目中,借助新工具清除基础库中的深层缺陷,标志着维护流程的渐进式进化。