Linux一口气删掉近4000行代码!活了40年的苹果协议,最终竟被AI“送走”了……
整理 | 郑丽媛
出品 | CSDN(ID:CSDNnews)
在开源世界里,软件被淘汰通常有两种原因:要么没人用了,要么没人维护了。
但最近,Linux 内核在删除一个拥有 40 年历史的经典协议时,却出现了一个“特别”的新理由——AI 生成的补丁太多了。
日前,Linux 网络子系统维护者 Jakub Kicinski 提交了一项代码变更,正式将 AppleTalk 协议从 Linux 主线内核中移除:近 4000 行相关代码被删除,一个诞生于 1985 年、曾经支撑苹果电脑联网体验的重要技术,终于退出了历史舞台。
在宣布这次调整时,Jakub Kicinski 解释了原因:近期针对 AppleTalk 的 AI 生成修复补丁大量涌入,但几乎没有人真正审查这些代码——也就是说,AppleTalk 并非单纯因为“老旧”被淘汰,而是在 AI 时代的新型维护压力下“被迫”来到终点。
八十年代的“黑科技”,终究敌不过 TCP/IP
对于今天的大多数开发者来说,AppleTalk 可能是一个相当陌生的名字。但在上世纪 80 年代,它却是苹果生态中极具代表性的技术之一。
1985 年,苹果推出 AppleTalk 网络协议套件,目标很明确:让 Macintosh 电脑能够轻松联网。放到今天,这似乎不是什么稀奇事,但在那个网络配置普遍复杂、普通用户很难完成设备连接的年代,AppleTalk 的设计理念堪称超前。
AppleTalk最大的特点是“零配置”。用户不需要填写 IP 地址,不需要配置网关,也不需要理解复杂的网络参数,只要把设备接入局域网,Mac 就能自动发现打印机、文件服务器以及其他网络设备,并直接开始通信。
像如今大家熟悉的 Bonjour、mDNS、Zeroconf 等自动发现机制,本质上都继承了类似思路——而 AppleTalk 诞生的时间,甚至比这些技术早了十多年。凭借这种简单易用的体验,AppleTalk 一度成为 Macintosh 生态的重要基础设施。
然而,随着互联网时代到来,TCP/IP 逐渐成为全球统一标准。相比封闭的专有协议,TCP/IP 拥有更好的兼容性、更广泛的设备支持以及更强的扩展能力。
进入 90 年代后,苹果也开始逐步向 TCP/IP 转型。最终,在 2009 年发布的 macOS X 10.6 Snow Leopard 中,苹果正式移除了 AppleTalk 支持,宣告这一协议完成历史使命。
CSDN 6 月宠粉福利|开发者“神装”补给站
领取地址:https://s.csdn.cn/4nPsOp
苹果放弃 17 年后,Linux 仍在坚持
不过,虽然苹果早已放弃 AppleTalk,但 Linux 却继续保留了它:因为在经典 Macintosh 仍拥有一定用户群体的年代,许多企业、教育机构以及收藏爱好者仍需要与旧设备通信。
为此,Linux 社区保留了相关实现,并通过 Netatalk 等项目支持 AppleTalk 文件共享和打印服务,保证一台 Linux 服务器还能与老款 Macintosh 设备进行通信。
即使使用者越来越少,但因为代码本身运行稳定、维护成本不高,AppleTalk 一直留在 Linux 内核之中——它甚至比苹果自己的支持周期还多活了 17 年。如果没有新的变量出现,这段代码或许还能继续“养老”很多年。
可是,AI 的到来改变了这一切。
AI 时代,维护成本越来越贵
众所周知,这几年 ChatGPT、Claude 等大语言模型逐渐具备代码生成能力,越来越多开发者开始利用 AI 生成补丁、提交 Bug 修复补丁,甚至直接向开源项目发送 Pull Request。
理论上来说,这是件好事,但现实情况却远没有那么理想。
在 AppleTalk 这样的老旧模块上,开始出现一个奇怪现象:AI 持续生成针对各种边缘情况(Corner Case)的修复补丁,并不断提交到 Linux 内核邮件列表。
可正如上文所说,这些补丁对应的代码现在几乎没人用:没有用户验证、没有测试环境验证、也没有维护者长期跟进。于是大量AI 补丁被堆积起来,既无法确认质量,也难以判断价值。
Jakub Kicinski 在提交说明中直接写道:
“最近我们收到了一波针对 AppleTalk 的 AI 生成修复补丁,但没有人对这些补丁进行审查。”
对于 Linux 内核维护者而言,这不仅仅是几封邮件的问题。每一个补丁都需要阅读,每一个问题都需要判断,每一个提交都需要有人负责审核和决策——当这些工作持续发生在一个几乎已经死亡的协议上时,维护成本开始迅速上升。
最终,维护者们得出了一个简单结论:既然没人维护,也没人真正使用,不如就删了。
AppleTalk 并不是唯一“受害者”
这并非 Linux 第一次大规模清理历史遗留代码。
在最近几个开发周期中,Linux 社区已开始系统性地淘汰长期无人维护的网络协议和驱动,已知的就包括 ARCnet 网络协议、ISDN 通信协议、AX.25 业余无线电协议、多个 Ham Radio 驱动模块。毫无疑问,这些技术都曾拥有属于自己的时代,但随着行业标准变化和用户需求消失,它们逐渐成为Linux内核中的“遗留代码”。
不过,被移除并不意味着彻底消亡。根据 Jakub Kicinski 的说法,AppleTalk 代码将被迁移至独立仓库,由经典 Macintosh 爱好者和相关社区继续维护。Linux 内核也暂时保留了对应的用户空间 API(uAPI),以避免对现有用户造成突然冲击。
只是,离开主线内核后,AppleTalk 的未来并不轻松:Linux 内核内部接口经常变化,而且开发者从不承诺向后兼容,所以每次内核升级后,独立模块都可能需要额外的适配工作。
因此,对于这样一个已经退出主流舞台的协议来说,未来 AppleTalk 更多可能是停留在收藏圈、复古计算机社区和技术爱好者的实验环境中。
最后,虽然 AppleTalk 没了,但问题还在:下一个被 AI 补丁淹没的“老旧模块”又会是谁呢?
参考链接:https://pbxscience.com/linux-kernel-drops-40-year-old-appletalk-protocol-ai-generated-patch-flood-was-the-last-straw/#google_vignette
