第一: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年