linux系统时间和硬件时钟时间 FAQ

来源:互联网 发布:vscode 字体设置 编辑:程序博客网 时间:2024/05/18 02:07

Linux有两个时钟, 一个是system time, 一个是hardware clock. 使用date和hwclock命令可分别查看和设定系统时间和硬件时间.
The Hardware Clock: 该时钟通常称为硬件时钟,实时时钟(RTC,real time clock)或CMOS时钟。它独立于任何软件,在关机时仍然运行。
The System Time: 该时钟有Linux Kernel维护,并由时钟中断驱动。只有Linux运行时,该时钟才有意义。系统时间是自00:00:00 January 1, 1970 UTC经过的总秒数. 但是系统时间并不是一个整数, 它的精度是虚拟无穷的.
通常两个时钟是不同步的, 它们之间存在漂移(drift).可以实验一下,分别执行date和sbin/hwclock命令,得到的时间是不同的。
$ date
Thu Jun 15 19:28:49 CST 2006

$/sbin/hwclock
Thu 15 Jun 2006 07:28:40 PM CST -0.079624 seconds
1. 查看和设定硬件时间 - hwclock命令
hwclock命令用于查看或设定硬件时间。该命令的老版本是clock(新的命名更清晰,避免了混淆),为保持兼容,老的命令仍然可用,它只是一个指向hwclock的symbolic link.
hwclock的选项:

--systohc
将系统时间写入到硬件时钟. 也就是说, 将Hardware Clock调整到current System Time的值.
-–hctosys
将硬件时间写入到系统时间. 通常每次linux启动的时候, 都要执行该命令, 将硬件时间的值写到system time中.

--adjust
Add or subtract time from the Hardware Clock to account for systematic drift since the last time the clock was set or adjusted.
硬件时钟通常不太精确, 每天会快或慢一定的时间. 着称为系统化漂移(systematic drift). hwclock的"adjust"功能可以纠正这种偏移.
它的工作原理是, 根据用户多次调用hwclock –-set(或--systohc)跳转硬件时钟的历史记录计算时钟每天的漂移量, 得到一个adjust的值, 从而hwclock --adjust.
这些设定硬件时钟的历史记录由hwclock保存在文件/etc/adjtime中, called the adjtime file.

0 0
原创粉丝点击