linux处理闰秒

闰秒的介绍可以参考维基百科 https://zh.wikipedia.org/wiki/闰秒

linux处理闰秒

Linux使用UTC时钟,并通过NTP (Network time protocol)来进行时间同步,NTP服务器会一级一级地下发闰秒事件通知直到最边缘的NTP服务器,然后NTP就会把闰秒通知给客户端的操作系统,由操作系统来处理闰秒通知。

闰秒会影响部分开启ntp服务的Linux操作系统——会导致Linux内核Crash!Linux kernel在2.6.18-164.e15之后的版本中解决了这个问题。

我们的操作系统是怎么处理正闰秒通知的?通常来说有三种实现:

  1. 后退一秒。
  2. 停止一秒。
  3. 真正的增加一秒。

前两种方式是以一种Workaround或Hack的方式解决这个问题。第一种方式会导致一些基于timestamp的消息通知乱序了,而第二种会导致出现两个一模一样的timestamp。最后一种不会出现timestamp的问题。

时间: 2024-11-01 11:06:47

linux处理闰秒的相关文章

应对linux下的闰秒

文章作者:luxianghao 文章来源:http://www.cnblogs.com/luxianghao/p/6339470.html  转载请注明,谢谢合作. 免责声明:文章内容仅代表个人观点,如有不当,欢迎指正. --- 为什么会有闰秒? 世界上有几种计量时间的方式, 世界时(UT1):是一种天文计量的方式,天文学家通过观测地球的自转,并将自转一周的时间(一天)等分为864000份,每份为一秒, 受潮汐等因素的影响,地球自转一周的时间并不是恒定的,这也是造成闰秒现象的直接原因. 原子时(

每天进步一点点——Linux系统时间来处理

转载请注明出处:http://blog.csdn.net/cywosp/article/details/25839551 在程序中时间处理往往是一个麻烦的事.Linux系统提供了非常多关于时间处理的函数,我们能够用这些函数来完毕我们所须要的功能.那么在程序中通常会关心哪些时间问题呢? 真实时间:程序执行的时间,即程序启动到程序消亡所用时间或程序执行到如今所经过的时间 进程时间:一个进程所使用的CPU时间总量.适用于对程序.算法性能的检查或优化 本文仅仅关注真实时间的处理与转换 一.Epoch 不

每天一个linux命令(9):touch 命令

linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. 1.命令格式: touch [选项]... 文件... 2.命令参数: -a   或--time=atime或--time=access或--time=use  只更改存取时间. -c   或--no-create  不建立任何文档. -d  使用指定的日期时间,而非现在的时间. -f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题. -m   或--ti

每天一个Linux命令(09)--touch命令

linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. 1.命令格式: touch  [选项]··· 文件··· 2.命令参数: -a 或--time=atime或--time=access或--time=use 只更改存取时间 -c 或--no-create 不建立任何文档 -d 使用指定的日期时间,而非现在的时间 -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题 --------难得看到一个 -f 吃瘪,

linux下touch命令修改文件时间戳

linux的touch命令用来修改文件时间戳,或者新建一个不存在的文件. 上图中,access.modify.change分别是访问时间.修改时间.改变时间,即为文件的时间戳. 1.命令格式: touch [选项]... 文件名... 2.命令参数: -a   或--time=atime或--time=access或--time=use  只更改存取时间. -c   或--no-create  不建立任何文档. -d  使用指定的日期时间,而非现在的时间. -f  此参数将忽略不予处理,仅负责解

Linux环境

1. 程序参数 1.1 main 函数的形式 查看C语言最新标准 int main () {/* ... */} // 为C++的标准 int main(int argc, char *argv[]) {/* ... */} // 其中argc是程序参数的个数,argv代表参数自身的字符串数组. main() {/* ... */} // C90标准允许这种形式,但是C99标准不允许.因此即使你当前的编译器允许,也不要这么写. main的参数通过另一个程序提供,这个程序一般为shell.   P

linux学习笔记8--命令touch

linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来:二是用来创建新的空文件. 1.命令格式: touch [选项]... 文件... 2.命令参数: -a   或--time=atime或--time=access或--time=use  只更改存取时间. -c   或--no-create  不建立任何文档.

Linux shell 指令

Linux shell指令运行的原理: Linux严格意义上说的是一个操作系统,我们称之为"核心(kernel)" ,但我们一般用户,不能直接使用kernel.而是通过 kernel的"外壳"程序,也就是所谓的shell,来与kernel沟通.shell对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核.反馈结果在通过内核运行出结果,通过shell解析给用户. ls指令 -a 列出目录下的所有文件,包括以.开头的隐含文件. cd命令

Linux基础命令(6)

三十八 cat命令简介cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用. 1.命令格式:cat [选项] [文件]...2.命令功能:cat主要有三大功能:1.一次显示整个文件:cat filename2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.3.将几个文件合并为一个文件:cat file1 file2 > file3.命令参数:-A, --s