Linux内核ARM架构维护者Arnd Bergmann近期提交了一项重大清理工作,旨在移除约25万行几乎不再使用的代码。这一举措是内核持续淘汰过时硬件支持长期趋势中的最新一步。

在名为“board-remove-7.3”的Git分支中,Bergmann提交了约300个补丁,删除了约24.7万行代码,仅新增约5000行。净减少量约占整个内核源码树(目前约4100万行)的0.6%。

清理逻辑与涉及平台

此次代码移除直接源于Linux 7.3版本中已落成的弃用措施。此前的补丁已削减了约5.5万行与平台代码本身相关的部分,而真正的“瘦身”来自于那些仅为支持早已过时系统而存在的驱动程序。一旦底层平台被移除,相应的驱动程序便成为“孤儿”代码并被连带删除。

被列入移除名单的平台包括SA1100、Footbridge、RISCPC、Orion、Dove、MV78xx0、OMAP24xx、i.MX31、无MMU的i.MX目标平台、LPC18xx、STM32f4/f7/h7微控制器、Versatile MPS2、AT91 SAMV7、Axxia以及遗留的PXA板级文件。这些名称多对应21世纪初的嵌入式开发板、工业控制器和爱好者项目,多年未在主线上获得有效支持。

时间表与后续计划

Bergmann早在2024年就曾提出广泛的弃用计划,并承认此前在执行跟进上有所滞后。此次重新推动与该年度长期支持内核的结束相吻合。他目前瞄准Linux 7.5作为最终清理节点,以保持依赖链整洁。部分补丁可能会在7.4版本中落地,但多数观察人士预计大部分变更将在稍后版本中实现。

值得注意的是,少数幸存的TI OMAP1和三星S3C64xx部分板级文件得以保留,因为它们仍有已知用户。Cortex-M微控制器支持进行了部分裁剪,而iWMMXt浮点运算和原始ARM1136r0核心等功能也面临消除。大端序ARMv7目前仍标记为损坏状态,但避免了直接删除。

行业趋势与维护减负

此项工作并非孤例。2023年初,Bergmann推动了三星s3c24xx代码及多种旧板级支持文件的移除,删减了15.4万行代码。今年早些时候,Linus Torvalds合并了一个网络拉取请求,彻底移除了ISDN子系统、几款古老的以太网驱动程序以及业余无线电支持,共计删除13.8万行代码,部分动机源于维护无人维护代码所面临的AI生成错误报告负担。

随着存储和内存变得廉价充足,内核大小的重要性已不如从前。真正的价值在于降低维护负担、加快编译速度,并减少晦涩Bug的藏身之处。Bergmann的补丁还移除了不再有任何用途的文档、设备树绑定配置和默认配置文件。

尽管批评者可能争辩称仍有极少数用户在运行基于StrongARM的系统或旧RISC PC,但这种可能性极低。分析指出,到2026年,任何人在这些平台上启动当前上游发布版本的概率趋近于零。这些用户早已转向树外分支、旧版内核或完全不同的操作系统。

与此同时,x86架构也在进行并行清理,Intel 486、早期奔腾芯片以及俄罗斯Baikal CPU的支持已被取消。每一项决定都反映了相同的计算逻辑:有限的维护者时间应投入到当今正在出货的硬件上。

社区共识与未来影响

Bergmann的工作因其规模而引人注目。三百个补丁构成的庞大系列必须经过审查、测试,并在不破坏剩余ARM32支持的情况下集成。目前,该Git分支已公开供检查,感兴趣各方可以在其进入主线之前查看确切的删除内容。

Linux内核邮件列表上的讨论迄今为止几乎没有异议。与几年前类似提案出现时的辩护声音不同,这一次社区似乎接受了不可避免的现实:这些代码仅仅是因老化而被自然淘汰。

未来的内核将在ARM64主机上编译得更快,二进制体积略微缩小,安全审计人员也将少一些需要担心的遗留代码路径。ARM子系统可以更专注于Arm Ltd.及其合作伙伴的新硅片,以及不断增长的嵌入式人工智能领域。随着树的其他角落积累起各自的过时层,这类整理工作很可能再次发生。