Linux系統(tǒng)有兩個(gè)時(shí)鐘:一個(gè)是由主板電池驅(qū)動(dòng)的“Real Time
Clock”,也叫做RTC或者CMOS時(shí)鐘,硬件時(shí)鐘。當(dāng)操作系統(tǒng)關(guān)機(jī)的時(shí)候,用這個(gè)來(lái)記錄時(shí)間,但是對(duì)于運(yùn)行的系統(tǒng)是不用這個(gè)時(shí)間的。另一個(gè)時(shí)鐘是 “System
clock”,也叫內(nèi)核時(shí)鐘或者軟件時(shí)鐘,是由軟件根據(jù)時(shí)間中斷來(lái)進(jìn)行計(jì)數(shù)的,內(nèi)核時(shí)鐘在系統(tǒng)關(guān)機(jī)的情況下是不存在的,所以,當(dāng)操作系統(tǒng)啟動(dòng)的時(shí)候,內(nèi)核時(shí)鐘是要讀取RTC時(shí)間來(lái)進(jìn)行時(shí)間同步(有些情況下,內(nèi)核時(shí)鐘也可以通過(guò)ntp服務(wù)器來(lái)讀取時(shí)間)。這兩個(gè)時(shí)鐘通常會(huì)有一些誤差,所以長(zhǎng)時(shí)間可以導(dǎo)致這兩個(gè)時(shí)鐘偏離的比較多,最簡(jiǎn)單的保持兩個(gè)時(shí)間同步的方法是用軟件測(cè)出他們之間的誤差率,然后進(jìn)行修正。在每次重新啟動(dòng)系統(tǒng)的時(shí)候,系統(tǒng)都會(huì)用hwclock命令對(duì)時(shí)間進(jìn)行同步。如果內(nèi)核時(shí)鐘在每一個(gè)時(shí)間中斷都快或者慢的話(huà),可以用adjtimex命令進(jìn)行調(diào)整,使得RTC和內(nèi)核時(shí)間走的快慢一致.
Linux的內(nèi)核時(shí)間實(shí)際上是記錄從1970年1月1日距離現(xiàn)在的秒數(shù),并且以GMT(格林尼治時(shí)間)(或者叫UTC-
Coordinated Universal
Time)為標(biāo)準(zhǔn),UTC是不隨著DST(夏令時(shí))變換,需要有變化的是由應(yīng)用程序自身來(lái)完成時(shí)間的轉(zhuǎn)換。通常,本地時(shí)間=UTC時(shí)間+時(shí)區(qū)。
從Linux啟動(dòng)過(guò)程來(lái)看,系統(tǒng)時(shí)鐘和硬件時(shí)鐘不會(huì)發(fā)生沖突,但Linux中的所有命令(包括函數(shù))都是采用的系統(tǒng)時(shí)鐘設(shè)置。不僅如此,系統(tǒng)時(shí)鐘和硬件時(shí)鐘還可以采用異步方式。這樣做的好處對(duì)于普通用戶(hù)意義不大,但對(duì)于Linux網(wǎng)絡(luò)管理員卻有很大的用處。例如,要將一個(gè)很大的網(wǎng)絡(luò)中(跨越若干時(shí)區(qū))的服務(wù)器同步,假如位于美國(guó)紐約的Linux服務(wù)器和北京的Linux服務(wù)器,其中一臺(tái)服務(wù)器無(wú)須改變硬件時(shí)鐘而只需臨時(shí)設(shè)置一個(gè)系統(tǒng)時(shí)間,如要將北京服務(wù)器上的時(shí)間設(shè)置為紐約時(shí)間,兩臺(tái)服務(wù)器完成文件的同步后,再與原來(lái)的時(shí)鐘同步一下即可。這樣系統(tǒng)和硬件時(shí)鐘就提供了更為靈活的操作。
posted on 2008-08-10 21:37
chatler 閱讀(351)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
Linux_SysAdmin