我的系统在硬盘上运行,需要一分多钟才能启动到操作系统,现在当我启动任务管理器并转到启动时,它显示 BIOS 时间是 10 秒,但这不对,除非操作系统启动时间和 BIOS 时间不同,Windows 是否会写入从按下电源按钮到系统准备在某处使用的时间,为了测试这一点,我不得不在 youtube 上观看一个视频,其中在硬盘上运行的系统和在 ssd 上运行的系统同时启动,秒表启动,硬盘花费了 1 分 30 秒多的时间才能启动到操作系统,但 ssd 花费了 29 秒。
答案1
它说 BIOS 时间是 10 秒,但这是不对的,除非操作系统启动时间和 BIOS 时间不同
它们完全不同。BIOS 在操作系统启动时离开,因此您测量的“挂钟”时间是和BIOS 时间和 OS 时间。
最有可能的是,Windows 使用 CPU 的时钟周期计数器通过RDTSC
检测 BIOS 时间(至少这是 systemd 在 Linux 上使用的):
- 通电时,TSC 始终重置为零(即 T 1)。
- 一旦操作系统启动管理器启动,它就会记录当前的 TSC 值 (T 2 )。
现在 T 2 −T 1将成为 BIOS 初始化所需的 CPU 周期数。 - 之后,操作系统测量每秒的 CPU 周期数(以 CPU 的默认频率),将周期数转换为秒数并将其显示为“BIOS 时间”。
(Linux 上的“systemd-boot”启动管理器还会在将控制权交给操作系统之前立即记录 TSC 值,以测量显示启动菜单所花费的时间 - 尽管 Windows 可能不会这样做。)
一些较新的基于 UEFI 的系统具有专用的 ACPIFPDT
表,其中固件本身存储了操作系统可以获取的“BIOS 时间”,但这尚未得到普遍支持。