核心关键词:老旧驱动、AI退休潮、Linux内核维护、ISA网卡驱动、自动化bug测试
📖 阅读预计时长:6分钟
你有多久没见ISA插槽了?那种黑色长条、金手指密密麻麻的老古董,在年轻人眼中可能已经是“博物馆藏品”。但就在几年前,Linux内核还一直在为它们保留“专座”。

可是最近,一场由自动化bug测试工具(syzbot) 引发的“退休潮”席卷而来。大量针对老旧驱动的bug报告让维护者苦不堪言。据社区不完全统计,仅2023年,syzbot针对老旧驱动提交的bug报告占比就高达37%,其中绝大部分指向ISA和PCMCIA时代的网卡驱动。社区开始认真讨论:要不要让那些很可能已无人使用的驱动,彻底告别历史舞台?
今天,小编就从一名开源爱好者的亲身经历出发,聊聊这场特殊的“AI退休潮”,也分享一下开源世界“成长的阵痛”。
先简单介绍这个“罪魁祸首”——syzbot。它是一款基于模糊测试(fuzzing)的自动化工具,能像发了疯的猴子一样,随机生成各种系统调用序列去冲击Linux内核。一旦触发崩溃或警告,它就会自动生成一份详细的bug报告,发到对应维护者的邮箱。
AI不会累,也不会觉得某个驱动老掉牙了。于是,针对3Com 509(ISA网卡)、NE2000(ISA网卡)、AX88790(PCMCIA网卡)等“化石级”驱动的bug报告,每天像雪崩一样涌入维护者的收件箱。

小编自己就曾“感受”过这种绝望。2020年,我尝试在一台老旧的IBM ThinkPad 390X(带PCMCIA插槽)上安装最新的Arch Linux。结果网卡驱动疯狂报错,我顺着错误号去邮件列表搜索,syzbot仅在那一周就针对同一驱动提交了17份报告,而维护者的回复清一色是:“我没有硬件,无法复现,请帮助测试。”那一刻我明白了:这些驱动已经不是“活着”,而是靠维护者的意志力在“续命”。
作为业余贡献者,我曾试图“接盘”一个ISA声卡驱动(OPL3-SA2)。起因是我在闲鱼淘到一块老ISA声卡,想让它在我自己编译的内核里发声。
噩梦是从我打开邮件列表开始的。除了常规用户提问,我每天至少收到5条syzbot的报告——大多数跟声卡完全无关,只是因为它测试到了某个老化的PCI桥接逻辑,导致声卡驱动也被连带触发警告。我花了整整两个周末,才修复了其中一个“伪bug”。而那个真正的bug(导致卡顿),因为缺乏硬件和分析工具,至今还躺在我未完成的清单里。
最后我放弃了。我把那块声卡插回防静电袋,在代码提交日志里写下:“Mark as orphan – please remove if no one steps up in 6 months”(标记为孤儿,6个月内无人接手就请移除)。
这种无力感,是syzbot时代之前很少有的。过去,老驱动之所以能留存,是因为它们“安静”——没人用,自然没bug。但现在AI让它们变得“吵闹”,维护成本直线上升。
那么,Linux社区到底是怎么有序地让这些老旧驱动退休的呢?小编把这个流程称为 “三步走”,你也可以把它理解成一份标准的 “开源代码退休操作手册”。
维护者会把有争议的老驱动从内核主干移动到 drivers/staging/ 目录。这个目录相当于一个“临终关怀区”。同时会在Kconfig里标注:
“This driver is unmaintained and likely unused. It will be removed in a future release unless a volunteer steps up.”(此驱动无人维护且可能无人使用。若无志愿者接手,将在未来版本中移除。)
说白了,这是给最后的情怀一个机会。
观察期通常持续2-4个内核版本(约3-6个月)。在此期间,syzbot不会停止攻击。如果没有任何人提交修复补丁,就说明该驱动客观上已无人需要。
小编参与的一次邮件列表讨论中,维护者就是直接把syzbot的报告链接甩出来:“你看,最近三个版本里报告的18个bug,没有一个有人响应。是时候了。”
一旦观察期满,维护者会提交一个漂亮的补丁,把该驱动所有的 .c 和 .h 文件一次性删除。删除动作本身也会被合并到主线,并写入更新日志(changelog),供后人考古。
经过这几年对内核社区的观察,以及自己踩着坑走过来的经验,小编总结了三点启示,希望能让普通用户和开源爱好者都看得更明白。
1. AI正在重塑开源维护的“经济学”
过去,代码只要没坏就没人管;现在,AI让“潜在损坏”的成本暴露无遗。一个驱动即使10年没人用,只要它存在于内核源码树,syzbot就会天天测试它、天天发报告。这个“维护负资产”总有一天会压垮社区。所以,不是AI导致了退休潮,而是AI加速了技术债的清算。
2. “无人用”就是最大的技术债
很多开发者会说:“我的代码写得那么优雅,怎么就成负资产了?”答案是:在开源世界,活跃用户群才是真正的维护者。没有人用,就没有人测试,没有人报告真正的bug,只有AI造出来的假阳性噪声。这样的代码,无论过去多辉煌,都应该被移除。
3. 用户不必恐慌,你的老硬件还能用
你可能会担心:“我手头还有ISA网卡,是不是以后就用不了Linux了?”别急。这些驱动被移出内核主线,不代表它们从地球上消失。你可以:
社区不是要“封杀古董”,而是要把维护精力集中在95%用户正在使用的硬件上。

如果你有一块ISA或PCMCIA网卡还想继续用,小编建议按以下步骤操作(亲身验证过):
步骤1:查看当前内核是否已移除该驱动。
1 modinfo ne2k-pci # 以NE2000系列为例
如果提示“modinfo: ERROR: Module not found”,说明驱动已被移出主线。
步骤2:从LTS内核源码中提取驱动。访问 kernel.org[1] 下载一个旧版LTS内核(如5.4.x),将 drivers/net/ethernet/8390/ 目录下的相关源码拷贝到你的当前源码目录。
步骤3:手动编译成外部模块。编写一个简单的 Makefile,使用 make -C /lib/modules/$(uname -r)/build M=$(pwd) modules 编译。
步骤4:加载并测试。用 insmod 加载模块,然后配置网络。
以上方法比较折腾,适合有耐心的老玩家。如果你只是想正常用电脑,不如直接买一个USB转以太网的适配器——省下来的时间,可以多写几行有用的代码。
技术的进步,往往伴随着对过去的“断舍离”。Linux内核让ISA和PCMCIA驱动退休,不是无情,而是为了让项目的生命延续下去。那些被移除的代码,会永远躺在Git历史的某个commit里,见证一个时代的结束。
作为普通用户,我们不必惋惜;作为开发者,我们可以从中学会:写代码时要考虑长期维护成本,用代码时要理解开源社区的取舍。
而你,如果手里还有一块ISA网卡或者一台带PCMCIA插槽的老笔记本,不妨拍张照片发到评论区,让我们一起来场“数字怀旧派对”吧!
创作声明:本文基于Linux内核社区近期的邮件列表讨论(如2023-2025年网络驱动移除相关patch)及个人贡献经历撰写,力求客观。
免责声明:文中操作步骤仅为技术分享,因硬件差异可能导致失败,请备份数据后谨慎尝试。所有观点仅代表小编个人。
#你用过最古老的电脑接口是什么?##AI工具让开发者更轻松还是更焦虑了?##Linux内核该不该为“情怀”保留古董驱动?#
👇 欢迎在留言区聊聊你的“老古董”故事,点赞最高的那位,小编将送出珍藏的一块ISA网卡照片(电子版)+ 一份老内核编译笔记~
关注我,获取更多有趣的实用干货。
、转发
、在看
、留言
是我最大的动力!