本文分享自中移OneOS微信公众号《Clocksource驱动简介》。
一寸光阴一寸金,寸金难买寸光阴~你知道在内核中是怎样确定时间的吗?
它首先会需要一个时间基线,就是由我们今天的主角clocksource提供,当你获取当前时间,内核会先读取当前的clocksource,再转换并返回合适的时间单位显示。想要知道它怎么做就接着阅读下去吧!
什么是Clocksoure?
首先我们思考一个基础的问题,什么是时间?
时间的一般定义是:物质存在的一种客观形式,由过去、现在、将来构成的连绵不断的系统;是物质的运动变化的持续性和连续性的表现。
大白话一点,可以理解为时间是一条没有起点也没有终点的直线(timeline),为了搞明白我们处在这条时间线的哪个位置,我们会需要一个相对的参考点和划分直线的刻度,例如规定耶稣诞辰的时间为0点,把铯-133原子基态的两个超精细能阶之间跃迁时所辐射的电磁波的周期的9,192,631,770倍的时间定义为1秒(呼,一口气说下来真不容易~)。再将时间按照年、月、日、时、分这些概念划分周期,我们就可以约定时间相遇啦~
那对于内核而言,timeli