新的 Linux 补丁建议删除对旧 i486 和早期 i586 CPU 的支持
资深 Linux 内核开发者 Ingo Molnar 今天发布了一系列 Linux 内核补丁,旨在移除对“过时”的 32 位 CPU 的支持。具体来说,如果这些补丁被接受,Linux 内核将终止对旧款 i486 CPU 以及早期 i586 CPU 型号的支持。
虽然在现代 Linux 环境中很少提及或使用,许多发行版都终止了对 x86 32 位硬件的支持,但内核仍然保留了对 20 世纪 90 年代初推出的旧款 i486 处理器的支持。不过,今天的补丁系列将终止对 i486 处理器以及早期 i586 处理器的支持。这些内核补丁将移除对缺乏 TSC 和 CX8/CMPXCHG8B 功能的 CPU 的支持。这意味着上游 Linux 内核对 32 位处理器的最低支持将达到支持 CMPXCHG8B 和时间戳计数器 (TSC) 的初代奔腾 CPU 的水平。即便如此,如果听到有人在他们的 i586 / P5 Pentium 上启动现代 Linux 内核和现代软件堆栈,而这些补丁只是为了放弃比这更旧的硬件的 CPU 支持,那还是会令人惊讶的。
Ingo Molnar 在补丁系列中指出,移除对旧版 i486 和早期 i586 处理器的支持将减轻内核开发人员的维护负担。取消这些旧硬件支持还将使内核代码减少一万四千多行。Molnar 在今天上午的RFC 补丁系列中写道:
在 x86 架构中,我们在 x86-32 上提供了各种复杂的硬件仿真工具,以支持那些极少有人在现代内核上使用的老式 32 位 CPU。这种兼容性问题有时甚至会导致问题,人们需要花费大量时间来解决,而这些时间本可以用来做其他事情。正如 Linus 最近所说:
“> 我真的觉得是时候放弃对 i486 的支持了。”
> 根本没有理由让任何人在这种问题上浪费哪怕一秒钟的开发精力。“
本系列增加了最低内核支持功能,包括 TSC 和 CX8 (CMPXCHG8B) 硬件支持,从而移除了 486(及其衍生产品)和早期 586(及其衍生产品)支持。
这样做可以删除大量代码:
修改了 80 个文件,插入了 38 条代码(+),删除了 14104 条代码(-)。
其中大部分是 math-emu/ 库——但即使没有 math-emu,简化也相当显著:
修改了 33 个文件,插入了 38 条代码(+),删除了 1081 条代码(-)。”