美文网首页
linux的硬件时钟

linux的硬件时钟

作者: 小胖_20c7 | 来源:发表于2019-07-19 15:25 被阅读0次

什么是硬件时钟?
    记录在CMOS中的时钟,和系统是没有关系的。是靠纽扣电池来保存和计数的。硬件时钟能记录的信息有且仅有一个时间值(注意,和时区没有一毛钱关系)。所以,当我们设置硬件时钟的时候,仅仅是设置了一个数值。当我们读取硬件时钟的时候,也仅仅是一个数值。
    每次操作系统启动的时候,都会读取这个数值,然后同步到系统时钟中。但是光读取这个数值,对操作系统而言毫无意义(它不知道,你这个数值具体是哪个时区下的时间,自然就无法同步到系统时钟)
    那么怎么知道硬件时钟记录的时间是哪个时区的呢(local or utc)?只能是人为指定了(系统启动的时候,自己指定。我认为系统自己指定也是人为指定的一种吧),我们下面看下例子(一个读,一个写),看看怎么解释(网上很多解释我觉的不靠谱)

hwclock(读硬件时钟)
hwclock --set --date="2015-08-14 16:45:05"(写硬件时钟)

这里哪里能看出人为指定的时区是什么呢?
缺省的就是这个文件/etc/adjtime指定的(很多人说centos 6中是/etc/sysconfig/clock这个文件。不解释了,忘记这个文件吧)
看下/etc/adjtime的内容:

0.000000 1563504450 0.000000
1563504450
UTC

这里是UTC,所以上面的读写含义分别是
    读取出来的这个硬件时间是UTC的,直接同步到系统时间(我认为系统时间存的是UTC时间)。如果读取出来的时间是LOCAL的,是不能直接同步系统时间的。先找到系统的时区文件/etc/localtime,根据当前时区计算出UTC时间,再同步到系统时间(还有一点,这里说一下,hwclock读取的时候,最后都是以local时间显示出来的,所以可能还有一层转换)
    把"2015-08-14 16:45:05"这个时间直接写入硬件时钟,同时更新/etc/adjtime的内容(方便下一次读的时候,找到正确的时区)

那怎么覆盖/etc/adjtime的内容呢?
    在读写的时候可以显示指定,例如hwclock --local,hwclock --utc(如果不显示指定,则使用/etc/adjtime的值)

相关文章

  • Linux时钟命令用法及演示

    linux时钟 linux时钟分为系统时钟和硬件时钟。系统时钟是指当前linux kernel中的时钟,而硬件时钟...

  • hwclock显示系统硬件时钟的日期和时间

    ​ 由Linux内核管理的时钟与硬件时钟不同。 硬件时钟运行,即使您关闭您的系统。 硬件时钟也称为BIOS时钟。您...

  • CentOS date,hwclock,cd,ls,pwd,ca

    Linux 的两种时钟: 系统时钟:由 Linux 内核通过 CPU 的工作频率进行的计时 硬件时钟:hwcloc...

  • linux的硬件时钟

    什么是硬件时钟?    记录在CMOS中的时钟,和系统是没有关系的。是靠纽扣电池来保存和计数的。硬件时钟能记录的信...

  • Linux基础命令之-hwclock/date

    hwclock Linux系统里有两个时钟,一个是硬件时钟,一个则是系统时钟。硬件时钟是通过主板的CMOS控制,而...

  • Linux 时间同步

    Linux中时间设置 在Linux系统中存在两个时钟时间,分别是 硬件时钟RTC(Real Time Clock)...

  • Linux系列七之常用命令整理(三):时间日期、磁盘分区、重定向

    一、时间日期类命令 在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在B...

  • 修改linux系统的时区

    Linux机器上的时间比较复杂,有各式各样的时钟和选项等等。机器里有两个时钟,硬件时钟从根本上讲是CMOS时钟,而...

  • Linux 基础7

    Linux操作系统及常用命令: 1.时间管理: 硬件时钟、系统时钟2.获取命令使用帮助:help、--help、m...

  • Linux学习中

    时间函数: Linux 两个时钟,一个是系统中的,一个是硬件的 date clock hwclock 硬件时间 c...

网友评论

      本文标题:linux的硬件时钟

      本文链接:https://www.haomeiwen.com/subject/nvnjlctx.html