Linux中有硬件時鍾與系統時鍾




在Linux中有硬件時鍾與系統時鍾等兩種時鍾。硬件時鍾是指主機板上的時鍾設備,也就是通常可在BIOS畫面設定的時鍾。系統時鍾則是指kernel中的時鍾。當Linux啟動時,系統時鍾會去讀取硬件時鍾的設定,之后系統時鍾即獨立運作。所有Linux相關指令與函數都是讀取系統時鍾的設定。
   系統時鍾的設定就是我們常用的date命令,而我們寫的RTC驅動就是為硬件時鍾服務的,它有屬於自己的命令hwclock,因此使用date命令是不可能調用到我們的驅動的(在這點上開始把我郁悶到了,寫完驅動之后,傻傻的用date指令來測試,當然結果是什么都沒有),我們可以通過hwclock的一些指令來實現更新rtc時鍾——也就是系統時鍾和硬件時鍾的交互。
 
hwclock –r         顯示硬件時鍾與日期
hwclock –s         將系統時鍾調整為與目前的硬件時鍾一致。
hwclock –w        將硬件時鍾調整為與目前的系統時鍾一致。


linux系統有兩個時鍾:一個是由主板電池驅動的“Real Time Clock”也叫做RTC或者叫CMOS時鍾,
硬件時鍾。當操作系統關機的時候,用這個來記錄時間,但是對於運行的系統是不用這個時間的。
另一個時間是 “System clock”也叫內核時鍾或者軟件時鍾,是由軟件根據時間中斷來進行計數的,
內核時鍾在系統關機的情況下是不存在的,所以,當操作系統啟動的時候,內核時鍾是要讀取RTC時間
來進行時間同步。並且在系統關機的時候將系統時間寫回RTC中進行同步。


如前所述,Linux內核與RTC進行互操作的時機只有兩個:
1) 內核在啟動時從RTC中讀取啟動時的時間與日期;
2) 內核在需要時將時間與日期回寫到RTC中。


系統啟動時,內核通過讀取RTC來初始化內核時鍾,又叫牆上時間,該時間放在xtime變量中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM