Linux 内核重大变更:TSC 成为 x86 处理器强制要求,老旧硬件支持正式终结
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相关文章
- CachyOS 8 月安装镜像发布:Shelly 包管理器从 C# 迁移至 Zig,系统托盘用 Rust 重写
- BlueFerry 开源项目上线:Linux 通过蓝牙直接收发 iPhone 消息
- OpenSSH 10.5 正式发布:修复多项安全漏洞,新增公钥认证调试命令
- OpenAI 推出 ChatGPT for Linux 桌面端预览版:支持 Ubuntu、Debian、Fedora
- 英伟达 GeForce NOW 原生 Linux 客户端正式发布:结束 Beta 测试,支持 Flatpak 安装
- Epic Games 官方确认:Linux 版游戏启动器正在开发中
- KDE Plasma 6.8 预告:远程桌面终于支持双向复制粘贴
- GNOME 51 Beta 版亮相:新增模糊背景效果、指纹管理界面与减少动态效果选项
- Linux 内核重大变更:TSC 成为 x86 处理器强制要求,老旧硬件支持正式终结
- TUXEDO OS 新版公测启动:底层弃用 Ubuntu 全面转向 Debian Testing