悟空学Linux专栏----第10篇

  自从拜了达人先生为师之后,悟空感觉反而好多了,以前有什么问题还要变成猪八戒的样子去请教达人。现在好了有什么问题可以直接向达人请教了,而且达人还免费为他的徒弟开了嵌入式培训班,每周一都可以来培训班听课。

  今天是悟空第一天来培训班,今天培训的是Linux内核的时间子系统。

  达人:人们习惯的时间的表示方式是:年、月、日、时、分、秒。但是Linux内核没有采用这种方式表示时间。

  悟空:老师,那么Linux内核为什么不采用这种方式表示时间呢?

  达人:大家都知道虽然我们是用十进制表示数字,但是计算机却用二进制表示数字。计算机之所以采用二进制表示数字,是因为二进制更适合计算机。而时间的表示也是一样的,虽然我们用年、月、日,还有时、分、秒,来表示时间,但是这种表示方式不利于计算机的识别和计算。而且这种表示的方式粒度也太大了,1秒对于我们很短,但是对于计算机1s却很长,可以干很多事情,这或许就是相对论吧。

  悟空:那么老师Linux内核用什么方式来表示时间呢?

  达人:Linux内核采用表示时间的方式有四种:jiffies、struct timeval、struct timespec、struct ktime。

  悟空:老师,为什么要提供这么多的表示时间的方式呢?干嘛不用一种表示呢?

  达人:这四种表示分别用于不同的场合,jiffies是时间滴答数,相当于内核的脉搏,就像一个健康不健康,把把脉就知道了,同样一个系统稳定不稳定是由jiffies决定的。struct timeval由微妙和秒组成,而struct timespec由纳秒和秒组成,这两个结构体是为了兼容上层应用提供的表示时间的结构体。Linux内核内部表示时间的结构体是struct ktime,这个结构体在64位的系统中,用一个64位的数据表示时间,单位是纳秒,在32位的系统中则被拆分为两个字段:sec和nsec,也就是秒和纳秒。

  悟空:老师,这么多表示时间的方式,那么这些时间直接如何转换呢?

  达人:Linux内核为这些接口之间专门设计了转换函数,通过这些转换函数Linux的这些时间可以很容易转换。

  铛…铛…铛…..

  达人:唉怎么这么快下课的铃声就响了,我还没有开始讲啊…

  画外音:

  某猪:哎呀,下课啦~猴哥你怎么不叫醒我?

  悟空:……

  达人:……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值