在Linux计算机上,有两个时间,一个是硬件时间(BIOS中记录的时间),另一个是操作系统时间。硬件时钟由BIOS电池供电,
当计算机关机后,会继续运行。
时间是有时区的,无论硬件时间还是操作系统时间,都有时区,默认情况下,Ubuntu的硬件时间使用UTC时间,配置文件为
/etc/default/rcS,建议使用UTC时间;而操作系统时间的时区对应的配置文件为/etc/timezone,如果你想修改,那最好使用
sudo dpkg-reconfigure tzdata来修改时区,不建议直接修改/etc/timezone文件,如果你想修改为UTC时间,那执行
sudo dpkg-reconfigure tzdata命令时,选择None of the above->UTC 即可
下面说一下硬件时间与操作系统时间的协作流程
1、开机时,操作系统从BIOS中读取硬件时间+时区,根据自己的时区,转换为对应的时间,然后操作系统时间与硬件时间就独
立运行,相互不影响,我们通过应用程序获取的时间用的都是操作系统时间
2、正常关机时,操作系统时间刷入BIOS,更新硬件时间;非正常关机时,操作系统时间很可能不能正确写入BIOS
解决非正常关机时,操作系统时间不能正常写入BIOS的问题的方法是:定时将操作系统时间刷入BIOS,比如一个小时刷入一次,
这样即使非正常关机,那两者的时间差也很小很小。
时间: 2024-10-23 22:33:18