返回首页

从 Linux 中移除 i486:莫尔纳尔的补丁

英戈·莫尔纳尔已发布一个补丁,从 Linux 内核中移除 i486 处理器支持,这将通过排除 CX8 和 TSC 仿真器减少 1.4 万行代码。林纳斯·托瓦兹支持这一举措,指出此类 CPU 的无关性。与嵌入式系统的兼容性将得到保留。

莫尔纳尔移除 Linux 内核中 i486 的补丁
Advertisement 728x90

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 行。特别是:

Google AdInline article slot
  • CX8 和 TSC 模拟器将消失。
  • 486SX 上 FPU 的 math-emu 库将消失。

这将优化调度器和锁子系统,减轻开发者的负担。

注意: 没有主流发行版在最近内核中启用 M486=y。目前 32 位 i486 硬件上的 Linux 分支使用率极低。

Linus Torvalds 的立场

Linus Torvalds 已多次提出这个问题。2022 年,他指出在 i486 上模拟 cmpxchg8b 毫无意义:该指令存在于 Pentium 和所有 x86-64 CPU 上。Torvalds 建议遗留系统使用 LTS 分支。

Google AdInline article slot

更早,在 2012 年,i386 支持被移除。十三年前,Torvalds 提议移除 math-emu,但社区因仍在生产的 486SX 克隆而暂缓。如今共识已变。

与嵌入式系统的兼容性

像 Intel Quark(基于 i486)这样的专用芯片原生支持 CX8 和 TSC——该补丁不会影响它们。原始 i486 使用过时发行版和旧内核。

现代 32 位发行版使用 X86_PAE,后者需要 CX8。纯 32 位 x86 支持已很少。

Google AdInline article slot
  • 移除的好处:

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

Advertisement 728x90

继续阅读