AI劝我放弃,但我没听:Linus 18次重启手撕内核Bug,揭开人机协作的真实分工

AI劝我放弃,但我没听:Linus 18次重启手撕内核Bug,揭开人机协作的真实分工

作为 Linux 之父与开源界的终极守门人,Linus Torvalds 已经很多年不亲自下场写具体的显卡驱动补丁了。

但上周,他在修复 Intel Xe 显卡驱动一个极其恶心的显存越界 Bug 时,经历了一场堪称“地狱级”的调试排查:先后打了 24 个调试补丁、经历了 18 次内核硬重启,最终找出的根本原因,却仅仅只是一行代码——把一个错误的向上取整 `round_up()` 改成了向下取整 `round_down()`。

如果只是修了个 Bug 倒也寻常,真正让整个 Linux 社区与开源世界吵翻天的是:Linus 在 Git Commit 说明中公开承认,这场排查中大量繁琐工作都是 AI 协助完成的,连 Commit Log 都是让 AI 写的。

甚至,Linus 还在提交日志里爆出了一个极具黑色幽默的细节:“在排查陷入死局时,AI 好几次直接劝我放弃,说‘这不可能,无解了,咱们直接写个故障报告吧’;但我猜,训练这玩意儿的人,大概没我这么倔。”

从“AI 自动编程”的幻想,到“人类主导方向、AI 干脏活”的现实

过去两年,各种宣传都在狂吹“AI 已经能全自动接管软件工程”、“程序员马上失业”。但 Linus 这次教科书级的真实 Debug 现场,狠狠撕碎了这种虚假泡沫:

1. AI 擅长穷举脏活,但极度缺乏“工程直觉与韧性”: 在 18 次重启和 24 个探测补丁的漫长拉锯中,AI 承担了大量琐碎的日志分析、插入探针、打桩验证等重体力活;但每当遇到硬件未定义行为与不符合预期的输出时,AI 的统计学本能是“断言无解并提议放弃”。只有当 Linus 凭着数十年的系统级直觉强行 Push 它继续缩小范围时,排查链条才没有断裂。 2. 一行代码背后的深水区逻辑: 这个 Bug 的表面现象是 GDM 显示管理器无限崩溃重启,底层却是因为驱动把本该保留的 CCS(计算命令流)内存多算进了可用显存范围,破坏了 GPU 页表。这种跨越硬件时序、内存映射与内核虚拟文件系统的深层缺陷,目前的 AI 根本无法“一键自主定位”。 3. 人类的决策权是最后一道安全阀: AI 可以为你生成 20 个假设、写 20 段探针代码,但决定哪条假设是死胡同、哪条线索值得继续深挖、何时停止尝试并拍板最终方案的,永远是人类工程师自己

社区争议与道德撕裂:开源界到底在吵什么?

Linus 在 Commit 里肯定 AI 的这一举动,迅速在社区里引发了激烈的两极分化:

原教旨主义者与反 AI 派:质问“厨师从不夸菜刀,凭什么修个 Bug 就要夸 AI?”甚至翻出 Linux 的 AI 贡献政策,指责 Linus 带头在 Commit 里为 AI 站台; – 实用主义开发者:认为在如此底层、枯燥且耗时的硬件调试中,能够利用大模型加速 24 个补丁的迭代验证,本身就是现代工程效率的巨大胜利。

这种争议的本质,其实是技术代际交替时的认知阵痛。很多开源维护者之所以排斥 AI,是因为社区里充斥着大量未经思考、用 AI 批量生成的低劣 PR;而 Linus 恰恰演示了一种高段位的人机协作典范——人类把控核心方向与代码责任,把 AI 当成不知疲倦的打桩机。

Kate 的观点与判断

看完这场风波,我给所有技术从业者三点直接的判断:

1. “AI 替代程序员”是个伪命题,但“会用 AI 当苦力的程序员”正在拉开代际差距。Linus 没有被 AI 牵着鼻子走,而是把 AI 逼成了高效的调试副驾。能在 18 次内核崩溃中压榨出 AI 剩余价值的人,才是真正的技术硬汉。 2. 警惕 AI 在复杂工程中的“退缩倾向(Premature Surrender)”。现在的推理模型虽然学会了长思考,但当遇到缺乏训练集先验的边缘底层硬件 Bug 时,模型极易陷入“过度泛化失败”并提议妥协。永远不要把最终的工程判断权让渡给算法。 3. 开源治理需要拥抱“透明的 AI 协作”。在 Commit 明确写出 AI 的参与,不是宣传作秀,而是一种成熟的工程诚实。与其偷偷摸摸用 AI 糊弄代码,不如坦坦荡荡把 AI 的能力边界与人类的校验责任公开在阳光下。

工具就是工具。决定一个系统是走向卓越还是崩溃的,从来不是你手里的锤子,而是握锤子的那只手有多倔强。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注