开源社区

AI正在“入侵”Linux内核!垃圾补丁暴增、小Bug或变安全漏洞维护者:我们快顶不住了……

AI正在“入侵”Linux内核!垃圾补丁暴增、小Bug或变安全漏洞维护者:我们快顶不住了……

  • 发布:
  • 人气: 2
  • 评论: 0

应用介绍

  今年 4 月,微软 CEO 萨提亚·纳德拉曾公开表示,如今微软内部已有约 30% 的代码由 AI 生成。对于一家以商业软件为主的巨头来说,这种转变或许是提高效率的好机会——但在开源世界,尤其是 Linux 内核社区,这个问题要复杂得多。

  目前,AI 代码生成工具正在以前所未有的速度闯入 Linux 内核开发,带来效率提升的同时,也让垃圾补丁、潜在漏洞、版权灰区接踵而至——于是,一场关于“该不该、能不能、如何用 AI”的激烈讨论,正在全球最重要的开源项目中上演。

  例如,cURL 项目的主要维护者 Daniel Stenberg 曾公开批评过:AI 生成的 Bug 报告简直是对项目的“主动攻击”,浪费了开发者大量时间。

  不过,Linux 内核黑客、Nvidia 杰出工程师 Sasha Levin 的态度则相对积极。他在 2025 年北美开源峰会上表示,大语言模型(LLM)更像是一个“花哨的编译器”:

  “上世纪五六十年代,大家还在用汇编写代码,后来 C 语言出现。我们并不是因为 C 语言完美才抛弃汇编,而是因为 C 足够好,能显著提升生产力。目前LLM 的作用也非常类似——它们还不完美,但一旦‘足够好’,就能让我们变得更高效。”

  为此,Sasha Levin 举了个例子:在 Linux 6.16 内核中,他用 AI 写了一个修复 git-resolve 小问题的补丁,自己只需要审核和测试——他认为,虽然这并非是“让 AI 写驱动”这样的大任务,但足以说明 AI 在具体的小场景中已经能够派上用场。

  同时,对于母语非英语的开发者来说,AI 还有个意外的优势:写提交信息(commit message)。在 Linux 内核开发中,提交信息往往比代码本身更难写清楚。Sasha Levin 指出,AI 在这方面能很好地缓解语言障碍,帮助开发者更准确地表达变更理由。

  基于此,Sasha Levin 还描绘了一个未来场景:或许,可以专门训练 LLM 来帮助内核维护。

  如果做到这些,AI 就可以承担一些维护者最头疼的工作,比如将补丁回溯到稳定分支。要知道,Linux 内核稳定分支的维护者几乎每天都得审核几百个补丁,挑出 5-10 个需要回溯的变更——根据 Sasha Levin 的形容,这是一份“繁琐到令人崩溃”的任务。

  目前,Linux 社区已经在用一款叫 AUTOSEL 的工具来处理这类问题。它利用 AI 自动分析提交信息、代码改动和历史回溯模式,来判断哪些补丁需要被纳入稳定分支。

  “Git 历史本身就是一个有限的数据集,它清晰记录了补丁的路径,非常适合用来训练 LLM。人类维护者往往不会仔细看整个补丁路径,只会做一些粗略的范围检查。但 AI 能够足够耐心地逐一分析。”

  在 Linux 世界里,几乎任何 Bug 都可能演变成安全漏洞,因此追踪相关提交对维护者而言是一个沉重负担。过去他们依赖各种 Bash 脚本来跟踪,如今 AI 借助 RAG(检索增强生成) 技术直接从 Git 仓库和文档中学习补丁历史,显著降低了他们的工作量。

  Linux 基金会研究员 Shuah Khan 也证实,AI 工具正在成为内核维护的有力补充:“它们能结合提交信息、代码和历史回溯模式,从而给出更智能的建议。”

  “我认为这些 AI 工具确实能在很多方面增强开发者的能力:简化日常任务、加快输入速度、帮助文档生成…… 但要注意,对于像 C 这样底层的语言,以及像 Linux 内核这样极其复杂的代码库,目前的 AI 工具依然还在‘能力边缘’。”

  他还强调,开发者如果在补丁中使用了 AI 生成的代码(不仅仅是文本补全),应当明确标注出来:“这样审阅者才能调整审核流程,并给出更严格的检查。因为相比经验丰富的人类开发者,这类补丁需要更谨慎地审查。”

  这种担忧并非个例。Linux 内核维护者、甲骨文工程师 Lorenzo Stoakes 也发出了类似警告:

  “Linux 内核对于 Bug 极其敏感。我们使用的编程语言(C 语言)几乎没有安全保护机制。在某些子系统中,补丁只要看上去没问题就会被接受,这会让系统变得非常脆弱。”

  更让人头疼的是,AI 还让一些完全不懂内核开发的人也能轻易生成补丁并提交。早在 2023 年,Linux 稳定版维护者 Greg Kroah-Hartman 就曾抱怨:“我们收到越来越多的‘AI 垃圾补丁’,数量几乎每周都在上升。”

  在这种背景下,SUSE 内核开发者 Jiří Kosina 在 LKML(Linux 内核邮件列表)上提议:必须明确标注哪些代码由 LLM 生成,以及由谁对补丁负责。

  Sasha Levin 在提案中强调,“Linux 内核是基于 GPL-2.0 授权的,任何 AI 代理生成的代码必须遵循这一许可协议,不允许有例外”——可问题是,AI 生成内容的版权在法律上依然模糊不清,这无疑会给后续贡献埋下风险。

  最后,未来 AI 在 Linux 内核中的定位如何,还未有定论。但可以肯定的是:在这个全球最重要的开源项目中,AI 的角色不会只是“可有可无的工具”,而是一个需要被认真对待的新变量。

    相关应用