Linux 内核移除 i486 支持:Molnar 的补丁与历史背景
Linux 内核中的 x86 架构维护者 Ingo Molnar 已准备了一个补丁,完全移除 CONFIG_M486、CONFIG_M486SX 和 CONFIG_MELAN 选项。这将使现代内核构建中排除对 486DX、486SX 和 AMD ELAN 处理器的支持。
移除的技术后果
i486 支持需要模拟关键指令:CX8(cmpxchg8b,用于 64 位原子操作)和 TSC(任务调度器的时钟戳计数器)。这段代码增加了内核复杂度,调试变得复杂,并周期性地触发 bug。
移除这些层将减少代码库 14,104 行。特别是:
- CX8 和 TSC 模拟器将消失。
- 486SX 上 FPU 的 math-emu 库将消失。
这将优化调度器和锁子系统,减轻开发者的负担。
注意: 没有主流发行版在最近内核中启用 M486=y。目前 32 位 i486 硬件上的 Linux 分支使用率极低。
Linus Torvalds 的立场
Linus Torvalds 已多次提出这个问题。2022 年,他指出在 i486 上模拟 cmpxchg8b 毫无意义:该指令存在于 Pentium 和所有 x86-64 CPU 上。Torvalds 建议遗留系统使用 LTS 分支。
更早,在 2012 年,i386 支持被移除。十三年前,Torvalds 提议移除 math-emu,但社区因仍在生产的 486SX 克隆而暂缓。如今共识已变。
与嵌入式系统的兼容性
像 Intel Quark(基于 i486)这样的专用芯片原生支持 CX8 和 TSC——该补丁不会影响它们。原始 i486 使用过时发行版和旧内核。
现代 32 位发行版使用 X86_PAE,后者需要 CX8。纯 32 位 x86 支持已很少。
- 移除的好处:
1. 代码减少超过 14k 行。
2. 调度器和锁简化。
3. 减少模拟相关 bug。
4. 专注于相关架构。
关键点
- Molnar 的补丁移除 CONFIG_M486*、CX8/TSC 模拟器和 math-emu——减少 14,104 行代码。
- i486 不再与现代内核一起使用;发行版已转向 PAE 或 64 位。
- Torvalds 支持:cmpxchg8b 模拟已过时——遗留系统使用 LTS。
- 嵌入式 Quark 不受影响——它们有原生 CX8/TSC。
这些更改将使内核对从事 x86 开发的 mid- 和 senior-level 开发者更清晰。
— Editorial Team
暂无评论。