我想知道计算机的时间芯片本身是否会更新时间,即使在计算机关闭的情况下(例如,BIOS 或操作系统发送一个命令,当您到达某个时间时,您将后退/前进 3600 秒),或者DST 生效后第一次启动计算机时 BIOS/OS 会更新它吗?
IBM PC/AT 中使用的 MC146818 实时时钟芯片确实具有自行更改 DST 的能力。它只在美国正常工作,即使那样也只能正常工作三年,直到法律改变,而且硬连线到芯片电路中的 DST 规则不再符合实际的 DST 规则。这种在硬件中更新 DST 的功能已经有几十年没有使用过了。
如果您的操作系统是 DOS Think 操作系统,则是的,操作系统会将 DST 更改应用于实时时钟,因此仅当机器完全开机并引导到操作系统时。然而,众所周知,这个系统几乎在同样长的时间里被严重和根本性地破坏了。自 1980 年代以来,在线讨论论坛中就已经对它进行了彻底的讨论。
Unices 和类 UNIX 操作系统以 UTC 时间运行硬件 RTC,并且从不对其应用任何DST 更改。事实上,操作系统内核中甚至没有任何关于 DST 的知识。内核和硬件始终以 UTC 运行,系统库函数根据TZ环境变量和广泛的磁盘时区数据库应用从 UTC 到本地标准时间/夏令时的转换。标准时间和夏令时本身之间没有切换。转换函数只是根据被转换的时间产生正确的本地时间偏移。
是的,BSD 和 Linux 可以以 DOS Think 方式运行,硬件时钟以 UTC 以外的其他方式运行。这不是一个特别好的主意,并且伴随着许多额外的脆弱机制。例如,系统管理员systemd必须确保他们在fsck运行前已将本地时间告知内核,否则在 UTC 之前的时区中的人会遇到由于系统时钟在系统启动期间倒退而导致的奇怪行为。
adjkerntz. FreeBSD 9.2 手册页。| 归档时间: |
|
| 查看次数: |
3921 次 |
| 最近记录: |