Linus 让 Claude Code 写了一组内核补丁,评审挑出了竞态条件

源自120位全网作者

10-29 15:25

10 月 10 日,Linux 内核的提交记录里多了一节 Tools 说明。

Linus Torvalds 写:代码、测试程序、清单背后的评审和说明初稿,都由一个 LLM 编程助手在他的指导下完成。他点名 Claude Code。测量在他自己的机器上跑。知乎

分支名也不绕弯:noref-filemap-read-with-llm。IT之家

Linus 让 Claude Code 写了一组内核补丁,评审挑出了竞态条件

补丁动的是 page cache,内核里最忙的地段。文件读写缓存都堆在这儿,多一分开销,整台机器付账。

毛病不新。几个线程同时读同一文件的一小段,每读一次,内核都要给同一页内存加减一次引用计数。线程一多,大家抢的是同一行缓存。2024 年,Matthew Wilcox 从客户负载里捞出了这个瓶颈。知乎

Linus 换了条路。页从 page cache 撤下后不马上释放,先等一个 RCU 周期。读的人在保护区里拿到页,把数据直接抄给用户,不碰引用计数。知乎专栏

代码由 Claude Code 落笔,方向由 Linus 定,数字他自己测。

在他的 i7-8565U 笔记本上,8 个线程对着同一页做 16 字节读,吞吐从每秒约 1000 万次到 3000 万次;每次读的内核周期,从约 2950 降到 725。知乎知乎专栏

这组数只属于那台笔记本和那个 benchmark。核更多、插槽更多的机器他没测。

Linus 让 Claude Code 写了一组内核补丁,评审挑出了竞态条件

10 月 13 日,系列发上邮件列表。LWN 次日称这是 Linus 第一个 LLM 辅助的补丁系列:约十个补丁,commit 里列了八个核心。知乎IT之家

评审很快摸到一个竞态条件。到 10 月中旬,补丁没合并。知乎微博

只看这里,像一次翻车。可它不是。

2024 年 10 月,Linus 还说 AI 是“90% 营销,10% 现实”。知乎

今年 4 月,他和维护者们立了规矩:工具可以用,AI 垃圾不要,出事人背;AI 参与的代码打 Assisted-by。7 月,面对反对者,他的回答干脆——要么 fork,要么走人。CSDN知乎36氪

规矩先立好,他才自己下场。

另一组改动更能看出他要什么。内核里有个关联数组库,逻辑绕、函数大,多年没人细看。Linus 让大模型把函数拆开,再塞进用户空间的测试框架里跑。

测试证实了 Nils Ollrogge 报的缺陷,还翻出另外三个漏洞。它们从 2013 年这个库进内核时就在,藏了十多年。知乎专栏微博

AI 没有忽然看懂代码、灵光一现。它做的是把难读的变可读,让测试照得进去。

内核社区为 AI 吵了大半年,落下的不是禁令,是一条老规矩:谁提交,谁负责。Linus 没躲在工具后面,commit 写清了哪部分由 Claude Code 完成。CSDN

补丁当时还挂在邮件列表里,等一个人把它改对。

内容由AI生成

精选参考来源

1. Linus Torvalds 第一次让 Claude Code 帮他写 Linux 补丁

2. Linus 用 Claude Code 改 Linux 内核:吞吐量提升 3 倍,关键在“在我的指导下”

3. 【Linux 之父#托瓦兹推出首个AI辅助补丁#:并发文件读取吞吐量提升约 3 倍】科技媒体 lwn 昨日(10 月 14 日)发布博文,报道称 Linux 之父林纳斯 · 托瓦兹(Linus Torvalds)在其个人 Git 仓库中推送了一个名为 noref-filemap-read-with-llm 的新开发分支,正式提交了他首个由大语言模型(LLM)辅助开发的内核补丁系列。

4. 那个骂人能骂上新闻的 Linus,自己也用上 Claude Code 了。他的内核仓库里突然冒出个分支,名字直接带 with-llm。提交说明写得很坦白:代码、测试程序,连这段说明的初稿,都是 Claude Code 在他指挥下写的。效果是 8 个线程抢着读同一个文件,速度直接翻了三倍。还没合进主线。但那些年被他邮件骂哭的内核开发者,现在心情大概挺复杂的。

5. 林纳斯·托瓦兹使用 AI 帮助发现了自 2013 年以来一直隐藏在 Linux 内核中的 bug。一切始于开发者 Nils Ollrogge 报告了一个 bug 并提交了一个修复补丁。林纳斯发现这段代码过于晦涩,难以追踪,于是他使用 LLM 工具来理解它,并将较大的函数拆分成更小、更易读的函数。随后进行的测试确认了报告的 bug,并发现了另外三个 bug,所有这些 bug 都可以追溯到该库在 2013 年的首次提交。这些更改尚未合并到主线内核中。林纳斯并不是在让 AI 取代他的判断。他使用 AI 来让困难的代码更容易理解,然后测试结果。

6. Linux创始人林纳斯·托瓦兹(Linus Torvalds)在近期推进的内核开发工作中再次尝试引入人工智能工具。继此前借助Claude Code优化文件读取性能之后,他利用大型语言模型分析了一段长期以来逻辑晦涩的关联数组代码。此次尝试不仅确认了开发者尼尔斯·奥尔罗格此前提交的缺陷报告,还意外发现了另外三个潜伏达十余年的漏洞。托瓦兹在自己的Linux代码仓库中新增了名为assoc-array-fixes的Git标签,用于集中整理针对关联数组代码的修复工作。这项工作源于奥尔罗格报告的错误及相关补丁。由于原始实现过于晦涩难以直接理解,托瓦兹选择借助现代大型语言模型辅助分析,将庞大复杂的函数拆分为更清晰的结构,以便于审查其逻辑正确性。在完成代码结构重构并将其放入用户空间测试框架运行后,测试结果不仅证实了最初报告的错误确实存在,还暴露出另外三个隐藏极深的问题。根据说明,这三个额外发现的漏洞可以追溯到2013年首次将该关联数组库引入Linux内核的时期,在长达十年的时间里一直未被充分暴露。作为服务于内核内部数据管理的基础组件,关联数组涉及树状结构调整与复杂的边界条件,代码维护难度历来较高。此次进展表明AI工具在协助梳理复杂逻辑、拆分大型函数方面具备实际价值。然而实践也显示,AI并非凭借自身超越人类的程序理解能力直接定位缺陷,而是通过改善代码可读性,配合实际执行和可重复的测试框架,最终由人工审查确认问题。这组针对关联数组的修复补丁目前尚未合并到Linux内核主线,预计将在接下来的Linux 7.4合并窗口期间进一步推进。对于维护庞大开源项目的开发者而言,在代码面对严苛稳定性要求时,利用AI梳理结构、结合严格工程验证的模式,提供了一条兼顾效率与安全的可行路径。

7. 吵了几个月,Linus终于拍板,Linux正式为AI代码“立法”:允许用AI,但锅必须人背

8. “Linux不会反AI,不服就Fork或离开,”Linus怒怼反AI开发者:骂AI前先照照镜子,人类也没多优秀

0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章