DownOL 软件仓库– 软件下载,字节世界与新知

Linux 内核重大变更:TSC 成为 x86 处理器强制要求,老旧硬件支持正式终结

发表于:2026-08-18 作者:编辑
编辑最后更新 2026年08月18日,Linux 内核最新提交将时间戳计数器(TSC)设为 x86 处理器的无条件要求,移除了不支持 TSC 的老旧处理器兼容代码,标志着对 i486 等古董级硬件支持的正式终结。

Linux 内核近期完成了一项具有里程碑意义的代码清理:将时间戳计数器(TSC)设为 x86 处理器的硬性要求。这项名为"x86/cpu: Make CONFIG_X86_TSC unconditional"的提交,移除了剩余的配置逻辑,使得 x86 内核无法在不支持 TSC 的前提下完成构建。

这意味着,Linux 对极其老旧的 x86 硬件支持,正式画上了句号。

什么是 TSC

TSC(Time Stamp Counter)是一种特殊的 64 位寄存器,自英特尔奔腾处理器时代便已存在。它能够以极高的精度测量经过的时间,且由于本身就是 CPU 寄存器,读取速度远超 HPET(高精度事件计时器)或 ACPI PM(电源管理)计时器等平台级计时器。

所有现代英特尔和 AMD 处理器均配备了 64 位 TSC,可通过 RDTSC、RDTSCP 等指令进行读取。

为何现在移除兼容代码

Linux 内核长期以来一直支持最早可追溯到 i486 时代的硬件,因此需要保留针对无 TSC 或 TSC 不可靠处理器的兼容代码。但随着 Linux 7.0 取消对英特尔 486 处理器的支持,以及后续开发周期移除了其他阻碍 TSC 通用化的处理器配置,这些兼容代码已失去存在意义。

本次修改并非让 Linux 突然依赖某项现代 PC 不具备的功能,而是终于删除了过去几十年来用于兼容老旧硬件的历史遗留代码。目前所有仍受支持的 x86 处理器都已具备 TSC 功能。

与 Windows 的对比

微软更早达到了类似阶段。Windows 2000 和 XP 引入了 QueryPerformanceCounter(QPC)作为高精度性能计数器,Windows 7 和 Server 2008 R2 已使用恒定速率 TSC 作为 QPC 基础,Windows 8 进一步推进了这一做法。

不过,Windows 至今仍保留了对恒定 TSC 和同步 TSC 的检查机制,当 TSC 不适合使用时可回退到 HPET 或 PM 计时器。微软还提醒开发者不要直接读取 TSC,而应使用 QPC 抽象层。

微软倾向于使用 TSC 的原因很明确:读取基于 TSC 的 QPC 仅需几十到几百个 CPU 周期,而回退到主板级计时器则需约 0.8 至 1.0 微秒,差异显著。此外,基于 TSC 的 QPC 可避免进入内核态。

如今,Linux 终于也开始移除这套检测、校准和处理 TSC 可靠性问题的历史代码,迈向更简洁的架构。

2026-08-18 17:52:54
0