摘要:Linux 同时在添加 RISC-V 驱动和删除 ISA 语音合成驱动,这两个动作都是健康信号——一个活着的操作系统的新陈代谢,不只靠增长,也靠修剪。DoubleTalk PC 是一张 1990 年代初诞生的 ISA 卡,它不做图形,不做网络,只做一件事:把文本转成语音,让那些看不见屏幕的人也能使用电脑。它的制造商 RC Systems 至今仍保留着一个 1990 年代风格的静态网页,页面底部写着 "© 2005-2025 RC Systems Inc."——公司没有倒,但它的硬件早已成为博物馆展品。Linux 内核里对应的驱动 dtlk 刚刚被提交删除,将随 Linux 7.2 正式退出历史。
删除一行比添加一行更难
Linux 内核的代码量已经超过 3600 万行。维护这些代码不是免费的——每次内核 API 变动、每次架构重构,所有驱动都要跟着更新。一个没有用户的驱动,实际上是在用全体维护者的时间换取一个空洞的"向后兼容"承诺。
提交删除 dtlk 的工程师 Ethan Nelson-Moore 在 commit message 里写道:该驱动"在整个 Git 历史里(自 Linux 2.6.12-rc2 起)只收到了全树范围的修复和顺手清理,几乎可以确定已经完全无人使用。"Git 历史可查,这段代码上一次有人主动改动,是将近二十年前。
技术债不都是烂代码。dtlk 的原始实现逻辑在当时是合理的。但随着时间推移,它变成了另一种债务:维护者每次重构都得检查它是否还能编译,却没有人能验证它是否还能运行。
这张卡曾是为谁服务的
DoubleTalk PC 属于辅助技术(assistive technology)领域,它的用户是视觉障碍者或肢体障碍者,需要屏幕阅读器把文字转成声音。在语音合成芯片还是稀罕东西的年代,一张专用 ISA 卡能以极低的 CPU 占用提供流畅的语音输出,是相当实用的解决方案。
Linux 内核里的 Speakup 驱动(位于 drivers/accessibility/speakup)同样支持这块硬件,且代码质量更高,持续在维护。这是 dtlk 能被删除的前提——不是扔掉用户,而是这批用户已经迁移到了更好的驱动。删除 dtlk,等于正式承认 Speakup 已经赢了这场没有对手的竞争。
与 i486 的告别发生在同一个周期
dtlk 的退出不是孤立事件。Linux 7.1 刚刚合并了 i486 CPU 支持的移除——AMD/Cyrix/Intel 486 系列的 Kconfig 选项被删掉,意味着这一类芯片的硬件支持在 Linux 7.1 及以后彻底没有官方路径。
同一开发周期里,一个 1990 年代的处理器和一张 1990 年代的辅助设备接连退场,不是巧合,而是内核社区正在执行的一次有意识的清库。移除 i486 的讨论持续了多年,最终由 Linus Torvalds 悄然合并,"没有 i486 的情怀或其他原因阻止这次移除。"
与此同时,7.2 周期正在推进 RISC-V 新型号驱动,后量子密码学补丁(ML-KEM/X-Wing)也已进入邮件列表讨论。内核在两个方向上同时运动:删掉 20 世纪的硬件支持,添加 21 世纪的架构支持。
修剪才是成熟的标志
中文技术媒体讨论 Linux 的时候,几乎全部的注意力集中在"新增支持":龙芯驱动、飞腾适配、RISC-V 启动。这当然重要,但它只是内核健康状态的一半图景。
另一半是:社区是否有能力在没有用户抗议、没有厂商施压的情况下,主动移除已经无效的代码?
dtlk 的删除给出了答案:有。这不是无情,这是工程纪律。一个能同时扩张和收缩的代码库,才是一个真正活着的项目。与之对比,那些因为"也许还有人用"而永远不敢删旧代码的工业软件,最终都变成了没有人敢碰的泥潭。
RC Systems 的那个静态网页还在,版权年份还在更新。DoubleTalk PC 的硬件还没死绝。但在 Linux 内核里,它的生命已经平静地画上了句号——不是因为被人遗忘,而是因为它的工作早已被更好地完成了。