第一:RTC的作用以及时间简介
“RTC”的英文全称是Reul-Time Clock,翻译过来是实时时钟芯片.实时时钟芯片是日常生活中应用最为广泛的电子器件之一,它为人们或者电子系统提供精确的实时时间,实时时钟芯片通过引脚对外提供时间读写接口,通常内部带有电池,保证在外部系统关电时,内部电路正常工作,时间正常运行.不同的时钟芯片内部机制不一样,时间数据存储格式.读写操作方式也不一样,Linux系统和驱动封装了不同时钟芯片的操作细节,为应用程序提供了统一的时间操作接口.
那么在Linux 世界里,时间是怎么表示的呢?是不是与人们一样用年月日+时分秒来表示时间呢?聪明的程序员自然不会让计算机这么做,正所谓越简单越科学,直接用一个整数表示时间,这个整数代表当前与Epoch Time的时间差(以秒为单位).Epoch Time是指一个特定的时间: 1970年1月1日0时0分О秒.假设现在距离197O年1月1日0时0分О秒走了N秒,在Linuxx 系统里,时间数值就是N.
那么问题来了,为什么要从1970年1月1日0时0分О秒开始呢?那年发生了什么,以至于Unix 系统以它作“纪元”.原来Unix就是在那个时代产生的,1969年发布的雏形,最早是基于硬件60HE的时间计数.1971年底出版的《Unix Programmer's Manual》里定义的Unix Time是以1971年1月1日00-00-00 作为起始时间,每秒增长60.后来考虑到如果每秒60个数字,则1.1年