你知道吗?全球最重要的开源项目,终于对AI生成代码下手了。上周,内核官方文档库悄悄更新了一份文件,名叫《AI Coding Assistants》。翻译成人话就是:AI编程助手使用指南。这份文件一出,整个技术圈都在转发。但你可能不知道的是,这背后其实是一场持续了大半年的"宫斗大戏"。今天咱们就好好聊聊,Linux这波操作,到底划了哪些重点,又给整个行业带来了什么启示。事情是怎么开始的?
2025年6月,有个叫Sasha Levin的工程师——这人来头不小,是NVIDIA的工程师,同时也是Linux LTS共同维护者——在一场技术大会上放了个"深水炸弹":就是那种,你让ChatGPT或者Claude帮你写代码,它啪嗒啪嗒给你吐出来,你检查了一下能跑,然后就提交了。更劲爆的是,这个补丁已经被合并进内核主线了。也就是说,全球几十亿台安卓手机、服务器、超级电脑上跑的Linux系统里,可能就有这段"AI写的代码"。有人觉得牛大了——AI都能写内核代码了!也有人吓出一身冷汗——你连自己写了啥都不知道,就敢往全球最核心的系统里塞?吵了半年,都吵了啥?
Sasha Levin这一炸,引来了一场持续半年的大讨论。要不要禁止AI?
一派说,干脆禁止AI生成的代码进内核得了。你想想,内核代码可不是普通的业务代码——内存管理、驱动程序、系统调度,稍微出点岔子就是灾难。AI那玩意儿,动不动给你"幻觉"一个根本不存在的API,用着心里不踏实。另一派说,禁止个锤子。你禁止得了吗?人家偷偷用,你根本看不出来。这派还举了个例子:cURL项目(就是那个处理网络请求的著名工具)的维护者Daniel Stenberg,直接把bug赏金计划关了。为啥?因为收到的报告里,大概20%都是AI瞎编的,根本找不到真正的漏洞。要不要强制披露?
但Linus Torvalds本人跳出来说了句话,把这个提案直接打回去了:"AI垃圾代码的人根本不会标注。你搞这个文档,就是给守规矩的人看的,对垃圾提交者一点用都没有。"
Torvalds出手:一锤定音
吵到最后,Linus Torvalds终于亲自下场了。简单粗暴:AI只是工具,用工具的人负责,就这么回事。翻译一下就是:提交垃圾代码的人本来就不守规矩,你封禁AI他们照样提交垃圾。你与其管人家用什么工具,不如直接追责"提交者"。新规矩到底说了啥?
Signed-off-by只能人类签。这是个法律签名,用来证明"这段代码是我写的,或者我有权限提交"。AI不能签,也无权签。因为只有人类才能在法律上对这个《开发者原创声明》(DCO)负责。用了AI要标注。文档要求在提交时加一个"Assisted-by"标签,写清楚用了什么AI工具、哪个版本、用了哪些辅助分析工具。格式大概是这样的:Assisted-by: Claude:claude-3-opus coccinelle sparse
代码质量一个都不能降。不管你是自己写的还是AI帮忙的,代码风格要符合内核规范,要通过测试,要能回答社区的提问。别想着"反正AI写的,出问题不赖我"——不存在的。AI不能代替人工review。有人想偷懒,让AI自己写、自己审、自己提交。这不行。AI可以帮忙,但最终把关的还得是人。跟其他项目比,Linux算哪一派?
NetBSD和Gentoo直接禁止AI代码,前者甚至把AI生成的内容定性为"可能被污染的代码"。QEMU也说NO,理由是AI没法满足"这是我原创"的法律声明。curl呢?允许用,但维护者被AI生成的垃圾报告搞得快疯了。一句话总结:Linux是实用主义者,NetBSD是理想主义者。AI写代码这事,到底靠谱吗?
说了这么多,你可能最想问的是:AI到底能不能写内核级别的代码?AI适合干啥呢?写测试用例、写文档、帮你理解某段老代码在干啥、生成一些模式固定的样板代码。这些活儿,AI干得挺顺手。但内核开发有几个领域,AI是真搞不定:内存模型和并发控制、硬件交互和驱动开发、跨越几十年的历史兼容性、那些"为什么这么干"的隐性知识。这些地方,还得靠人脑子。Torvalds自己打过一个比方:现在的AI编程,更像是高级自动补全,能帮你写套路化的东西,但涉及到底层系统编程,AI还差得远。有意思的是,Torvalds本人对AI审查代码反而更乐观。他举过一个例子:有个AI在审查代码时,把Linus自己发现的问题全找出来了,还额外发现了几个Linus漏掉的。这让他觉得,AI做reviewer可能比做writer更有前途。这事对普通人有啥影响?
你用的设备更安全了。虽然AI能帮忙写代码,但出了事有人兜底。这个"人"就是提交者,他得对自己的代码负责到底。相比"AI写的,出了事找不到人",这显然是个进步。开源社区的游戏规则变了。以前开源项目的规矩是"谁贡献谁负责"。现在变成了"谁点提交谁负责"。别看就差一个字,这意味着AI工具带来的责任归属问题,开始被正式纳入考量。其他项目可能会跟进。Linux是全球最大的开源项目,它的做法往往会被其他项目参考。可以预见,接下来会有更多项目出台类似的AI使用规范。写在最后
其实这件事最有意思的地方,不在于AI技术本身,而在于面对新技术时的态度选择。Linux给出了一个很"Linux"的答案:欢迎工具,但工具不承担责任,责任永远在人。这背后其实是一种很朴素的技术哲学:技术是服务于人的,不要把责任外包给工具。有意思的是,Torvalds自己也在用AI。他开源过一个叫AudioNoise的小项目,README里就大大方方写了"用了Claude帮忙"。预告一下:明天,也就是4月14日,GPT-6将正式发布。到时候咱们再聊聊,这代模型又会给代码开发带来什么新变化。你平时写代码会用AI辅助吗?你觉得AI写的代码靠谱吗?遇到bug你会怪AI还是怪自己?评论区聊聊~