个人电脑有一个电池驱动的硬件时钟。电池确保即使计算机的其他部分断电,时钟也能工作。硬件时钟可以从 BIOS 设置屏幕或从任何正在运行的操作系统进行设置。
Linux 内核独立于硬件时钟跟踪时间。在启动期间,Linux 将其自身的时钟设置为与硬件时钟相同的时间。此后,两个时钟独立运行。Linux 维护自己的时钟,因为访问硬件速度慢且复杂。
内核时钟始终显示世界标准时间。这样,内核根本不需要知道时区。这种简洁性提高了可靠性,并使更新时区信息变得更容易。每个进程自行处理时区转换(使用作为时区包一部分的标准工具)。
硬件时钟可以是本地时间或世界标准时间。通常最好将其设置为世界标准时间,因为这样您就不需要在夏令时开始或结束时更改硬件时钟(UTC 没有夏令时)。不幸的是,一些 PC 操作系统,包括 MS-DOS、Windows 和 OS/2,假设硬件时钟显示本地时间。Linux 可以处理任何一种情况,但如果硬件时钟显示本地时间,则必须在夏令时开始或结束时对其进行修改(否则它将不会显示本地时间)。