关闭

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

标签: linux二进制64位32位嵌入式
144人阅读 评论(0) 收藏 举报
分类:

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

  今天是悟空第一天来培训班,今天培训的是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的这些时间可以很容易转换。

  铛…铛…铛…..

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

  画外音:

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

  悟空:……

  达人:……

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:7311次
    • 积分:545
    • 等级:
    • 排名:千里之外
    • 原创:49篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档