夜雨聆风学习资料网

ARTICLE · 1173171

连 Linus 都用 AI 改内核了,为什么“读个文件”还这么难

连 Linus 都用 AI 改内核了,为什么“读个文件”还这么难
AI 写个网页,你可能已经见怪不怪。
但如果用它的人是 Linux 创始人 Linus Torvalds,改的是操作系统内核呢?
10 月 12 日,Phoronix、It's FOSS 等媒体报道了 Linus 的一个实验分支:他在 Claude Code 的帮助下,尝试解决多线程读取文件时的性能瓶颈。
据报道,Claude Code 在他的指导下参与了代码、测试程序、部分审查和提交说明初稿,性能测量由 Linus 在自己的机器上完成。
这仍是实验分支,不能理解成 AI 写出的补丁已经进入 Linux 正式版本。
但它值得拆开看看:为什么一个看起来简单的“读文件”,需要这么复杂的优化?AI 又能在其中帮到哪一步?
01  /  只是读文件,为什么也会堵车  ◇
先认识一个东西:页缓存。
Linux 处理普通文件读写时,通常会经过页缓存。你可以把它理解成内存里的一份文件数据,方便后续访问。
好比餐厅把常用食材放在操作台上,厨师不用每次都去仓库取。
现在,来了很多厨师,同时要拿同一份食材。
问题可能出在旁边那本登记簿:每个人拿之前登记一次,用完再登记一次。拿食材很快,更新同一本簿子却需要协调。
人多了,登记反而成了瓶颈。
在计算机中,多个 CPU 核心频繁修改同一处共享状态,也可能付出可观的协调成本。
Linux 的 RCU 文档就解释了,减少读侧的原子操作和缓存通信,可以降低这类开销。
报道中,这次实验针对的就是多个线程对同一文件进行小块读取时,围绕页缓存内存块引用计数产生的竞争。
它也提醒我们:增加线程,并不保证程序按比例变快。
如果所有线程都要经过同一个拥挤的环节,再加人,也可能只是让队伍更长。
02  /  拿走登记簿,能够改善吗  ◇
登记不是白做的。
引用计数的一项用途,是帮助管理对象的生命周期:只要还有人需要它,就不能随便回收它。
🤔 想象一下:厨师还在切菜,操作台却已经被清空、挪给了另一道菜。省下登记时间,换来的可能是更严重的错误。
所以,减少读侧开销,必须配套回答另一个问题:怎样保证读取期间,数据仍然有效?
💡 Linux 中有一种重要的思路,叫 RCU。
它把“从数据结构中移除”和“回收内存”分成两步:先让后来的读者不再取得旧对象,再等待已经开始的读者完成,最后回收。
用餐厅的比喻说,就是先停止向新来的厨师提供旧操作台,等之前还在使用的人结束,再把它撤走。
这里讲的是相关技术背景,并不是说所有引用计数都能直接用 RCU 替换。
👉 性能优化最难的地方,往往就是:少做了一步,还能不能保持原来的正确性。
尤其在内核里,读取、修改、回收可能同时发生。
单独看某一段代码没有问题,放进并发运行的系统里,就可能出现新的边界情况。
03  /  AI 能写补丁,谁来证明补丁成立  ◇
这次事件里,值得注意的还有分工。
按照媒体对提交说明的转述,Claude Code 的参与范围包括代码和测试等工作,但方向由 Linus 指导,测量也由他亲自运行。
这让我们看到一个更具体的 AI 编程场景:开发者提出问题,借助 Agent 实现和检查,再根据运行结果继续判断。
放到日常开发中,一次“性能优化”至少应该回答三件事:
⭐ 测了什么? 是某一种读文件场景,还是完整应用的响应速度?

🌙 怎么比较? 修改前后,硬件、输入、并发量和配置是否一致?

🌏 代价是什么? 更快的同时,是否增加内存占用,或影响其他路径?

只看到一张跑分图,很难回答这些问题。
因此,也不能把特定测试场景中的提升,直接写成“整个 Linux 快了几倍”。
对 AI 生成的优化,最有价值的交付应当包括:改动、复现方法、测试结果,以及尚未验证的部分。
“我改好了”之后,还应该接上“这是怎么验证的”。
04  /  普通项目,也需要这一步  ◇
我们大多数人不会每天修改内核,但会遇到类似的判断:
  • AI 加了缓存,旧数据还能及时更新吗?
  • AI 把串行任务改成并发,共享数据会不会被同时修改?
  • AI 说接口更快了,测的是哪组请求?
这些问题,需要回到项目里跑起来看。
使用 MonkeyCode 时,可以把验收要求一起写进任务:
先复现这个问题,再修改代码。修改后运行相关测试,说明如何验证;没有验证的部分,请明确列出来。
让 Agent 读项目、改代码、执行命令,再根据结果继续迭代。交到你手上的,才更容易是一份能检查的成果。
05  /  写在最后  ◇
Linus 借助 AI 做内核实验,值得关注的是他让 AI 参与了哪些工作,又如何检查结果。
越重要的代码,越需要把测试和验证放进任务里。
你用 Agent 做过哪些真实项目?遇到过哪些“AI 说做好了,实际还差一步”的情况?
👉 立即体验 MonkeyCode:
https://monkeycode-ai.com/
👉 下载 MonkeyWork:
https://monkeycode-ai.com/#desktop-client
🌟 欢迎加入 MonkeyCode 社群,分享你的使用经验,也和其他开发者一起交流任务怎么拆、结果怎么验,让 AI 更好地帮你把事情做完。

相关学习资料