OpenBSD拒收“AI写的ext4”:这不只是代码之争,更是开源世界的一次法律体检

开发工具 2026年3月28日
一位开发者尝试把由 ChatGPT 和 Claude 辅助生成的 ext4 文件系统实现送进 OpenBSD,结果毫不意外地撞上了这家老牌开源项目最敏感的神经:版权、可维护性和工程信任。表面看是 OpenBSD 对 AI 代码说“不”,更深层则是整个开源社区正在被迫回答一个问题:当代码越来越容易被生成,谁来为它负责?

一段 ext4 代码,点燃了 OpenBSD 最不想碰的火药桶

最近,OpenBSD 社区上演了一场相当有时代感的争论:一位开发者 Thomas de Grivel 向邮件列表提交了一份 ext4 文件系统实现,声称已经支持完整读写,还能通过 e2fsck 检查,只是暂时不支持日志功能。单看功能描述,这本来像是个会让很多用户拍手叫好的补丁——毕竟 ext4 仍是 Linux 世界最主流的文件系统之一,跨系统读写的现实需求从来没有消失。

真正让事情变味的,不是 ext4 本身,而是这份代码的“出身”。de Grivel 后来在博客里承认,这套驱动并没有参考 Linux 源码,“纯 AI”生成,主要使用了 ChatGPT 和 Claude,再加上他自己的审查、编译、重启和测试。这个说法一出来,OpenBSD 社区几乎立刻进入警戒状态。

如果你了解 OpenBSD,就不会觉得这反应夸张。这个项目向来以“保守、严谨、洁癖式工程文化”闻名,它对代码来源、许可证、长期维护都异常敏感。换句话说,你把一大坨来路含糊、法律状态不明、作者自己都未必能完全解释清楚的代码丢进 OpenBSD,基本等于拿着打火机走进火药库,还问一句:大家觉得这火苗漂亮吗?

OpenBSD怕的,不只是 GPL,而是“谁拥有这段代码”

这场争论最容易被误读成“BSD 阵营抗拒 GPL 污染”。这当然是一个重要背景,但事情比“开源许可证之争”更复杂。

ext4 是 Linux 的核心文件系统之一,而 Linux 内核采用 GPL 许可证。OpenBSD 长期对 GPL 风格的强传染性授权保持距离,所以社区里有人担心:既然大模型极有可能在训练时接触过 Linux ext4 的代码和文档,那么它生成的 ext4 实现,会不会构成某种衍生作品?这个问题现在没有清晰答案。更麻烦的是,连“问题该怎么问”都还没形成共识。

Theo de Raadt 的表态其实很有代表性。他并没有说“重新实现 ext4 一定违法”,恰恰相反,他指出,结构和算法的再实现本来就是互操作性的基础,版权法并不禁止你独立实现兼容系统。问题在于,LLM 让“独立实现”这四个字突然变得非常暧昧。你没有直接读 Linux 源码,不代表模型没有“读过”;你没有复制粘贴,不代表生成结果就和训练语料彻底切断关系。过去工程师做 clean-room reverse engineering,可以靠人员隔离、文档隔离、自证流程来建立信任;现在你只说一句“这是 AI 写的”,反而像把所有中间环节都打成了黑箱。

更致命的一点,是 OpenBSD 关心的不是抽象伦理,而是现实分发责任。Theo de Raadt 和 Damien Miller 都提到了一个核心难题:如果 AI 生成代码的版权归属根本不明确,那项目拿什么获得再分发、合并、修改所必需的授权?AI 不能持有版权,人类提示词作者是否自动拥有版权也没有定论,模型公司有没有权利主张更说不清。对于一个要长期发布源代码、打包系统、承担潜在法律风险的项目来说,这不是哲学问题,而是最朴素的风控问题。

OpenBSD 最终的态度几乎没有悬念。de Raadt 说得非常直白:这种版权状态“可疑”的新代码,被接收的可能性是零。这个“零”字,比很多长篇论证都更有力量。

比法律更现实的,是维护地狱正在逼近

有意思的是,LWN 文章下面的讨论区里,很多开发者并不认为版权才是最大问题。有人直接说,如果大家讨论 AI 代码时只盯着版权,那多少有点抓错重点。真正可怕的,也许是另一件事:这些代码到底谁来维护?

这话非常扎心。AI 生成代码最大的诱惑,是它能在很短时间里吐出成千上万行“看起来像那么回事”的实现。第一眼看去,能编译、能跑测试、功能甚至还挺完整,像极了一个勤奋又便宜的初级程序员。但真正的软件工程从来不是“把第一版写出来”就结束了,后面还有重构、修补边界情况、性能调优、接口统一、与旧系统兼容、应对下一轮安全问题。这些活儿既枯燥又昂贵,却决定了代码能不能活过三年。

而 OpenBSD 这种项目,偏偏最在意“十年后谁来收拾残局”。如果提交者只是借助 LLM 快速生成一批代码,自己对设计没有完整掌控,那之后任何一次 bug 修复都可能像拆盲盒。你今天是合入了 ext4,明天可能合入的是一个没人敢改、没人想碰、每次改都担心牵一发动全身的定时炸弹。

评论区里还有一个细节很有启发:既然 ext4 在很多方面可以视作 ext2/ext3 的演进,为何不在 OpenBSD 现有 ext2fs 的基础上做增量修改,而要“另起炉灶”生成一整套新代码?这正是 AI 时代一个很典型的工程偏差:当生成大量代码变得极其容易,人们就更倾向于用“多写一套”来解决问题,而不是去耐心梳理现有系统、做局部重构、减少重复。代码产量上去了,系统复杂度也跟着水涨船高。

这让我想到今天很多企业内部开发已经出现的苗头:本来一个脚本就能搞定的事,最后变成几千行“AI 帮忙搭的工具”;本来可以复用成熟组件,最后却长出一套半成品的自制轮子。表面上开发速度飞快,实际上维护账单被悄悄推迟到了未来。

这不是 OpenBSD 一家的难题,而是整个开源世界的压力测试

这起风波之所以重要,不在于 ext4 最终有没有进 OpenBSD,而在于它把开源社区接下来几年一定会反复面对的矛盾,提前摊在了桌面上。

过去一年多,围绕 AI 生成代码的争议已经越来越多。有人试图用 LLM“重写”已有项目,以摆脱 copyleft 约束;也有人把模型当成高速代码搬运工,希望绕开传统授权边界。Python 社区此前就因为类似问题出现过争议。现在 OpenBSD 给出的答案非常清楚:在版权状态未明、贡献者责任不清、代码维护能力无法证明之前,宁可不要。

从工程治理角度看,我反而觉得这是一个相当成熟的选择。开源项目不是代码回收站,更不是 AI 生成物的试验田。尤其是操作系统、编译器、加密库、文件系统这种基础设施,一旦收进主干,后面就是持续多年的维护承诺。你当然可以说,法律还没跟上技术,不该太保守;但对于一个以稳定和可信赖著称的项目来说,等法律明朗一些再说,可能恰恰是最负责任的做法。

当然,这并不意味着 AI 代码就注定没有未来。我更愿意把这场争论理解为一次“治理规则补课”。未来真正可行的方向,可能不是简单地禁止或放任,而是建立一整套更严格的来源披露机制:哪些部分由模型生成、生成时参考了什么文档、贡献者是否逐行审阅、是否能解释关键设计、是否愿意承担后续维护责任。换句话说,AI 也许可以成为工具,但不能成为责任的替身。

还有一个更值得深想的问题:当“写代码”越来越便宜,软件世界最稀缺的东西会不会从开发能力,转向审查能力、维护能力和法律判断能力?如果答案是会,那 OpenBSD 这次看似顽固的拒绝,可能恰恰是在提醒整个行业:别只顾着庆祝生成速度,忽略了系统可信度。

在“能不能写”之外,开源还要回答“能不能相信”

这次事件里,de Grivel 后来表示会移除所有 LLM 生成代码,只保留自己亲手写的部分。但坦白说,一旦第一版已经打上“纯 AI 生成”的标签,后续再想让社区完全恢复信任,就会变得异常困难。开源世界表面上靠 patch 和 commit 运转,骨子里靠的是可验证的信任链。

这也是为什么我觉得,这件事的戏剧性远不只是一次邮件列表吵架。它像一面镜子,照出了 AI 编程热潮里最容易被忽视的地方:你可以很快生成一份补丁,却不能自动生成信誉;你可以让模型写出函数,却不能让它替你承担作者义务;你甚至可以让它模仿 ext4 的代码气质,却未必能模仿一个资深维护者对系统边界的敬畏。

技术圈这些年很爱讲“vibe coding”——凭感觉写、靠模型补、先跑起来再说。做原型、做个人项目、做实验工具,这一套确实痛快,甚至让人上瘾。但当场景切换到操作系统底层、文件系统、网络栈、安全组件时,光有 vibe 就不够了。基础设施不是短视频,不能靠情绪价值更新。

OpenBSD 这次把门关得很重,也许会被一些人嫌老派、嫌不够开放。但站在 2026 年这个时间点看,我反而觉得这种“扫兴”很宝贵。因为总得有人提醒大家:代码不是生成出来就算完成,真正困难的部分,才刚刚开始。

Summary: 我的判断是,OpenBSD 不会是最后一个对 AI 生成代码亮红灯的项目,反而可能是最早把问题说透的那一个。未来几年,开源社区大概率会形成更严格的 AI 代码披露和审查规则,尤其是在内核、文件系统、安全库这些基础设施领域。AI 会继续写代码,但能进入主干仓库的,不会是“写得快”的代码,而是“来源清楚、作者负责、社区敢维护”的代码。
OpenBSDAI生成代码开源许可证版权风险ext4ChatGPTClaude可维护性开源社区治理Thomas de Grivel