Torvalds 用 Claude Code 改 Linux 内核 14 天后,r/opensource 禁止 AI 项目
r/opensource 封禁 MCP 服务器并把非英语母语者拒之门外,而 Torvalds 用 Claude Code 让页缓存吞吐量翻了三倍

2026 年 10 月 24 日,Reddit 最大的开源社区禁止了所有与 AI 相关的项目。就在整整 14 天前,Linux 创始人 Linus Torvalds 发布了一个包含八个补丁的实验性系列,注明代码、测试程序和文档都是在他的指导下由Anthropic 的 Claude Code 编写的。这一时间巧合造就了也许是今年开源界最尖锐的讽刺:一个致力于软件自由的论坛,对用同一款 AI 助手开发的项目施加了史上最严格的工具来源审查,而该社区最受尊敬的人物刚刚用这款助手把 Linux 页缓存的读取吞吐量提高到了三倍。
五条规则、一个循环陷阱,以及一个对立的子版块
版主 u/Wolvereness 于 10 月 24 日周六晚发布了新的投稿政策,置顶标题为「Your tokens aren't valuable: No more AI」(你的 token 不值钱:不再接受 AI)。规则的适用范围毫不含糊:任何使用 AI、由 AI 创建或面向 AI 的项目在 r/opensource 都不受欢迎。禁令明确点名模型上下文协议(MCP)服务器,等于覆盖了整个开源智能体工具链,无论许可条款、维护记录或贡献者资历如何,一律排除。
随禁令公布的准入条件立即造成了一个逻辑陷阱。要发帖,项目必须至少有一年历史、在积极维护,并且至少有三名贡献者和一个已经围绕它形成的社区。同一份公告同时禁止开发者发帖招募贡献者或维护者。结果是:一个新的独立开发者,即使有一个有用的、完全由人编写的开源项目,也无法招募到达到发帖资格所需的贡献者,因为在论坛上招募贡献者现在违反规则。此外,账号必须注册满一年并有大量 Reddit 贡献记录;发布大语言模型的输出,或通过版主私信申诉删帖,都会被自动永久封禁。Wolvereness 说,之所以限制版主私信,是因为他们每天会收到约 20 条这样的申诉。
非英语母语者则面临专门的排斥。版主团队表示,他们无法区分 AI 写的文字和 AI 翻译的文字,因此让所有非英语母语者去别的社区。Wolvereness 还说,不会说英语的人也无法核实自己的译文是否准确。按照政策的字面意思,任何一位用翻译工具发布英文项目简介的亚洲、拉美或东欧开发者,无论其代码里是否有一行 AI 输出,都会被视为违规。
该论坛约有 50 万成员,每周活跃访客约 9.8 万。据当时的报道,大约 24 小时内,这条置顶公告就积累了 1,400 多条评论,大多数持反对态度。一个对立社区r/TrueOpenSource 几乎立刻成立,把自己定位为被新限制排除在外的开发者的替代去处。
Wolvereness 承认执行上有选择余地,比如带有附带 AI 无障碍功能(如自动字幕)的软件仍可能符合条件,但没有给出区分附带性与实质性 AI 使用的框架。据对该帖的报道,当被问及 Linux 内核时,Wolvereness 表示,Linux 基金会作为正式注册的非营利组织,不受账号门槛限制,而内核也满足项目年限和贡献者要求。批评者立刻指出其中的自相矛盾:内核之所以满足门槛,部分正是因为 Torvalds 和维护者在使用 AI 工具,而同样的特性会让任何其他项目失去资格。这条规则实际上是在说:使用 AI 的大型老牌机构可以豁免,使用 AI 的新项目或独立开发者不行。
14 天前:Torvalds、一个页缓存瓶颈和 Claude Code
2026 年 10 月 10 日,Torvalds 在他位于kernel.org 上的个人 Linux 内核仓库中发布了一个新的实验分支:noref-filemap-read-with-llm。这个分支名对其来历毫不掩饰。他提交了八个补丁,解决 Linux 页缓存中的一个并发瓶颈;页缓存是内核中把最近读取的文件数据保存在内存里、让后续读取不必再访问磁盘的子系统。
在他的补丁说明信中,Torvalds 写得很直白:「代码、测试程序、上面列表背后的审查,以及这段文字的初稿,都是在我的指导下用一个大语言模型编程助手(Claude Code)完成的。」他还注明:「测量是在我的机器上跑的。」
他和 Claude Code 解决的问题已经困扰内核开发者大约两年。当许多 CPU 线程同时对同一个已缓存文件进行小块读取时,标准页缓存代码要求每次读取都先增加、再减少一个 folio 引用计数,这个计数器记录内核中有多少部分正在使用某个内存页。在多核处理器的系统上,这会造成「缓存行争用」问题:每个核心都必须反复写入同一个共享内存位置来更新计数器,导致处理器核心只能串行访问、互相等待,而不是并行工作。
在 Torvalds 的 Intel Core i7-8565U 笔记本(四核八线程)上,八个线程同时进行 16 字节读取时,缓存行争用占跨核心负载的 99.92%,出现了 30,538 次 load HITM(因远程核心修改而导致的硬件指令级缓存未命中)。
RCU 如何消除引用计数瓶颈
Torvalds 与 Claude Code 开发的补丁系列利用了 RCU(读-复制-更新),这是 Linux 内核多年来用于让多个读者在不获取传统锁的情况下安全访问共享数据的机制。RCU 的原理是让读操作在不修改任何共享计数器的情况下进行,把已释放内存的清理推迟到一个「宽限期」之后,届时所有正在进行的读取都已完成。新代码不再让每个线程在每次读取时增减 folio 引用计数,而是把读操作包在一个 RCU 读端临界区里。线程可以自由读取已缓存的页;只有在内核确认没有读者仍在使用后,内存才会被回收;如果每个 CPU 排队等待延迟释放的页超过 1,024 个,就使用加速的宽限期。
就单台机器而言,测量结果相当可观,不过 Torvalds 明确限定了这些说法的范围:「测量是在我的机器上跑的。」在八个线程进行 16 字节读取时,吞吐量从每秒约 1,000 万次读取升至约 3,300 万次,约为 3.3 倍。每次读取的内核周期数从约 2,950 降到约 725,减少到四分之一。load HITM 事件从 30,538 次降到 101 次。
代价是实实在在的。对于命中未映射页(所请求的数据还不在页缓存中)的读取,补丁会让它变慢,因为基于 RCU 的路径没有立即填充缺失页的机制。这种情况下单线程性能略有下降。延迟释放内存也可能让大量内存堆积起来等待重用。Torvalds 在说明信中公开记录了这些局限,这个分支也被明确标为实验性的,目标是作为 Linux 7.3-rc6 未来可能的贡献,而不是马上合入主线。
延伸阅读:Claude Code 桌面版新增嵌套会话与保存的环境,面向并行智能体工作
提交补丁前两天,Torvalds 作为主题演讲嘉宾出席了在布拉格举行的欧洲开源峰会,于 10 月 9 日与爱立信的 Dirk Hohndel 对谈。2026 年以来,他一直公开坦言自己对 AI 编程工具的立场。在2026 年 7 月发到内核邮件列表的一封邮件中,针对对 AI 生成补丁持怀疑态度的内核贡献者的反对,他写道「Linux 不是那种反 AI 的项目」,并告诉批评者,他们可以复刻内核,或者走人。他也另外承认,在此前的一个开发周期里,AI 生成的漏洞报告让内核安全邮件列表变得「几乎完全无法管理」,这表明 AI 工具是一把双刃剑:即使初衷正当,也会给维护者制造更多需要处理的噪声。
Linux 早已建立的治理框架
Linux 内核社区对 AI 工具的回应不是禁止,而是一个以人的问责为核心的框架,并且有意从强制披露上后退。内核的 Signed-off-by 审查链要求每一个合入主线的补丁都必须有一位人类维护者以自己的名字和判断为之担保。无论代码由什么工具生成,这条链都不变。
内核还曾加入一个 Assisted-by 标签,要求贡献者在补丁中披露 AI 工具的使用,这一政策是随 2026 年 4 月的 Linux 7.0 一起确立的。但内核维护者正在取消这一要求,相关讨论是在10 月 9 日于布拉格举行的 Linux 维护者峰会上进行的,就在 Torvalds 发表欧洲开源峰会主题演讲的同一天。正式删除这一文档要求的补丁于 10 月 14 日被接受,仅比 r/opensource 的禁令早 10 天。内核社区的立场是:质量审查和人的问责才重要,强制披露工具则不重要。Torvalds 本人也遵循了这一原则:即便在正式要求被取消之际,他仍主动披露了 Claude Code 在其补丁中的作用。
谷歌的 Sashiko AI 代码审查工具于 2026 年 3 月发布,由谷歌通过 Linux 基金会资助,从另一个角度说明了内核的做法。Sashiko 会分析提交的补丁,并在内核邮件列表中生成自动标记漏洞的审查意见;根据 1,000 个上游内核问题的样本,作者估计其误报率低于 20%。这个工具是人工审查的补充,而不是替代。
Torvalds 采用的框架,正是内核本来就期待的那一种:AI 生成初稿,人类专家审查并测试输出,再由人类专家用一行 Signed-off-by 签署,并明确披露所用工具。说明信对 Claude Code 角色的透明交代,完全遵循了这一模式。而在 r/opensource 的规则下,这种披露恰恰会成为被排除的依据。让项目得以进入内核审查链的特性,正是让它被这个子版块拒之门外的特性。
Godot 划出了一条不同的线
r/opensource 的禁令并非凭空出现。整个 2026 年,开源社区都在摸索 AI 政策,不同项目的落脚点相差很大。Godot 游戏引擎的管理基金会于 2026 年 6 月 30 日发布了自己的 AI 政策,明确禁止「自主 AI 智能体使用或氛围编程(vibe coding)」,并禁止由 AI 生成「大段代码」用于贡献。与 r/opensource 一样,Godot 把志愿维护者的负担列为核心动机:审查低质量的 AI 生成拉取请求已经变得「令人沮丧」,而被 AI 工具吸收的反馈,也无法培养出未来的维护者。
但 Godot 划线的方式不同。Godot 基金会明确保留了有限的 AI 辅助,比如代码补全、正则表达式生成、查找替换自动化,并允许较大改动中使用 AI 贡献,前提是贡献者能证明自己真正理解所提交的内容,并为此承担全部责任。Godot 区分的是工具辅助下的理解与自动化输出:一个用 Claude Code 帮助理解代码库、写出自己能完整解释的补丁的开发者,与一个不加审查就把智能体输出粘贴进拉取请求的开发者,会被区别对待。这种区分需要版主判断,大规模执行也更难,但它与开源运动一贯关心的东西要一致得多:代码质量和维护者问责,而不是敲键盘的是谁。
r/opensource 选择了相反的取舍:执行更简单,排斥更严厉,规则更容易表述,但在边界上会产生更多矛盾。
一个真实的问题,一件粗糙的工具
禁令背后的挫败感是有据可查的。自 2026 年初以来,前沿 AI 模型的每 token 成本大幅下降,两小时的「氛围编程」会话变得非常便宜,产出的是测试极少、由 AI 生成、配着营销式项目介绍的项目。无偿工作的志愿版主们看到,子版块的投稿中越来越多是简陋的大语言模型套壳和自动生成的推广文案。在 r/opensource 的讨论帖中,一位获得广泛支持的评论者透露,他的项目已经积极维护了九年,在 GitHub 上有 300 多颗星,不含任何 AI 生成的代码,却仍会被排除,因为他一直是唯一的贡献者。
这正是把工具来源规则当作质量过滤器的核心问题:它们衡量的不是质量。项目的年限、贡献者人数和 AI 工具使用情况,都只是间接信号。一个九年历史、单一贡献者、零 AI 的项目被排除在外;而一个十八个月历史、五名贡献者、用 AI 加速开发的项目,只要贡献者是不用翻译工具的英语母语者,按规则字面就符合条件。
规则还有一个没有处理的实际分类问题。Linux 内核的 noref-filemap-read-with-llm 补丁是一个异常透明的案例。大多数 AI 辅助开发不会有一个点名的分支或说明信里的明确披露。r/opensource 的规则只适用于能检测出 AI 使用的项目,而这只是实际存在的 AI 辅助软件中窄得多的一部分。Linux 基金会豁免的讽刺让这一点显而易见:内核之所以符合条件,部分是因为它的披露做法优于平均水平,而没有这些披露规范的小项目,却要和这些规则原本针对的低质量内容一起被一刀切地排除。
只接受英语这条规则的理由,也隐藏着一种不对称。Wolvereness 认为版主无法区分 AI 翻译和 AI 写作的文字。但内核自己的维护者指南明确允许用 AI 工具完成日常翻译工作,比如把贡献者用母语写的提交信息翻译成英文,只要披露即可。一项延伸到翻译的禁令,实际上默认把非英语母语开发者当作 AI 嫌疑人,不是因为他们的代码质量低,而是因为规则是按一个能力有限、又没有可靠检测手段的版主团队来校准的。
离开的社区
也许最重大的直接后果,是迅速出现的r/TrueOpenSource。当一项版务政策立刻催生出一个对立社区时,说明有一批人想要原论坛的受众和曝光度,但不想要它的限制,这些开发者原本会在不同的规则下继续为 r/opensource 做贡献。离开去往 r/TrueOpenSource 的项目,也带走了它们的讨论、互动,以及自然形成社区的潜力。
开源一向以代码能做什么、以何种许可发布来定义自己的价值,而不是以它是如何生产出来的。开放源代码促进会(OSI)的定义中没有任何关于生成软件所用工具的内容。随着 AI 辅助代码与纯人工代码之间的界线变得无法检测,这一原则越来越难以一致地执行;但一致执行的困难,是改用另一种规则的理由,而不是推行一项宽泛禁令的理由,何况这项禁令的主要实际效果,是把 Torvalds 这样的开发者挡在互联网上最大的开源论坛之一门外。
Linux 内核社区已经在用的替代方案(通过审查链实现人的问责、独立于工具的质量标准,以及自愿披露)并不会阻止 AI 辅助开发的发生,而是让它透明、可追溯,并接受和其他一切同样严格的审查。任何 Reddit 子版块能否大规模复制这一点,是一个更难的问题,但这正是未来几年开源治理真正要面对的问题。