麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 操作系統(tǒng) > 正文

如何設(shè)定與維持準(zhǔn)確的電腦時(shí)鐘

2024-07-26 00:31:25
字體:
供稿:網(wǎng)友
作者: Ron Bean, [email protected]
譯者: Da-Wei Chiang, [email protected]
v, December 1996 翻譯日期: 2-16 July 1998 
--------------------------------------------------------------------------------

1. 介紹
個(gè)人電腦(甚至於昂貴的工作站)主機(jī)板上所使用的 real-time-clock 晶片不夠準(zhǔn)確是眾所皆知的事情. 然而 linux 作業(yè)系統(tǒng)提供了一個(gè)簡單的方法來校正這個(gè)不準(zhǔn)確的電腦時(shí)鐘, 使得電腦時(shí)鐘就算是不倚賴外面的校時(shí)源也可以達(dá)到 *相當(dāng)* 準(zhǔn)確的地步. 但是似乎大多數(shù)人都還不知道有這個(gè)方法, 其原因如下: 


在一般 ``如何設(shè)定 linux 作業(yè)系統(tǒng)'' 的文件中并未述及這個(gè)方法, 而且在安裝作業(yè)系統(tǒng)時(shí)很難自動(dòng)地完成設(shè)定 (但是理論上并不是不可能的, 如果你有一臺(tái)數(shù)據(jù)機(jī)的話). 
若你使用``man clock''來查看設(shè)定時(shí)鐘的說明時(shí), 你可能會(huì)取得非預(yù)期的 clock(3) 說明內(nèi)容. (試著使用``man 8 clock''). 
似乎大多數(shù)人并不在意現(xiàn)在的正確時(shí)刻是多少. 
那些少數(shù)在意的人往往會(huì)采用 louie.udel.edu 所提供的 xntpd 程式集以便與外面的校時(shí)源, 例如網(wǎng)路校時(shí)伺服器或無線電時(shí)鐘信號(hào), 取得同步. 
如果各位對(duì)本文所講述的低階的時(shí)鐘設(shè)定方法有著極高度的興趣, 我強(qiáng)烈建議各位花些時(shí)間來瀏覽網(wǎng)頁 http://www.eecis.udel.edu/~ntp/ , 這個(gè)網(wǎng)頁有著各類你所感興趣的內(nèi)容,例如有關(guān)於 xntpd 的完整資訊以及 NIST 與 USNO 等站臺(tái)的超連結(jié). (我在本文後面也對(duì) xntpd 作了些許的簡介.) 


注意
如果你在同一臺(tái)機(jī)器上跑多個(gè)作業(yè)系統(tǒng), 你應(yīng)該只讓其中一個(gè)來重新設(shè)定 CMOS 時(shí)鐘, 如此它們□不會(huì)相互影響而導(dǎo)致混亂. 假使你平常在同一臺(tái)機(jī)器上跑 Linux 和 Windows 二種作業(yè)系統(tǒng), 而當(dāng)你要尋找一些共享的校時(shí)程式便時(shí)可以忽略 Windows 作業(yè)系統(tǒng)的部分 (參考前面所說網(wǎng)頁的超連結(jié)). 


--------------------------------------------------------------------------------
-------------------------------------------------------------------------------

2. 使用``clock''程式
所有你須要知道的內(nèi)容都在 clock(8) 的說明中, 而本文將帶領(lǐng)各位完成整個(gè)設(shè)定程序. 


注意
要執(zhí)行``clock''或是其它會(huì)影響到系統(tǒng)時(shí)間和 CMOS 時(shí)鐘的程式, 你必須擁有 root 的權(quán)限. 

2.1 檢查你的作業(yè)系統(tǒng) 
檢查你作業(yè)系統(tǒng)的開機(jī)執(zhí)行檔中是否有類似``clock -a''或 ``clock -ua''的命令. 這個(gè)命令可能放在 /etc/rc.local ,或 /etc/rc.d/rc.sysinit , 或其它類似的地方, 這要看你安裝的是那一套 Linux 作業(yè)系統(tǒng). 

如果找到的命令是 ``clock -s'' 或 ``clock -us'' , 請(qǐng)將 ``s'' 更改成 ``a'' , 接著檢查看看是否有 /etc/adjtime 這個(gè)檔案, 該檔案的內(nèi)容只有一行看起來像是這樣: 

0.000000 842214901 0.000000

這些數(shù)字依序是校正因子 (每天偏差的秒數(shù)), 上一次校正時(shí)鐘的時(shí)間 (由 Jan 1, 1970 開始起算的秒數(shù)), 上一次校正所扣除的秒數(shù). 如果你找不到這個(gè)檔案, 請(qǐng)以 root 的身份產(chǎn)生此檔案, 其內(nèi)容只有一行看起來像是這樣 (全部是零): 

0.0 0 0.0

然後透過 shell 手動(dòng)執(zhí)行 ``clock -a'' 或 ``clock -ua'' 以便更新第二個(gè)數(shù)字 (如果你的時(shí)鐘被設(shè)定成協(xié)調(diào)國際時(shí)間而不是本地時(shí)間你得使用 ``u''這個(gè)參數(shù)). 

2.2 量測(cè)時(shí)鐘的偏差率 
首先你得知道現(xiàn)在到底是幾點(diǎn)鐘 :-). 你機(jī)器的本地時(shí)間可能是不準(zhǔn)確的. 我最喜歡的方法是撥電話到 WWV 的 (303)499-7111 電話報(bào)時(shí)臺(tái) (這是個(gè)付費(fèi)電話). 如果你能夠與網(wǎng)路校時(shí)伺服器連上線, 你也可以使用 xntpd 程式集所提供的 ntpdate 程式來校時(shí) (使用 -b 選項(xiàng)以避免系統(tǒng)弄亂 CMOS 時(shí)鐘). 或者使用 ``date -s hh:mm:ss'' 以手動(dòng)方式設(shè)定系統(tǒng)時(shí)鐘, 不論那一種方法最後都得使用 ``clock -w'' 將系統(tǒng)時(shí)間寫入 CMOS 時(shí)鐘. 你必須記得最後一次設(shè)定時(shí)鐘的日期, 所以你得將該日期寫下來放在不會(huì)遺失的地方. 如果你使用的是 ntpdate 程式, 執(zhí)行 ``date +%s'' 然後寫下自從 Jan 1,1970 算起到該程式執(zhí)行的秒數(shù). 

然後等待幾天或幾個(gè)星期後之後再回來看看時(shí)鐘到底偏差了多少時(shí)間. 如果你以手動(dòng)的方式設(shè)定時(shí)鐘, 建議至少得等待二個(gè)星期之後, 再來計(jì)算時(shí)鐘偏差率將可得到趨近 .1 sec/day 的結(jié)果. 幾個(gè)月之後偏差率應(yīng)該會(huì)趨近 .01 sec/day (有些人宣稱應(yīng)該更準(zhǔn)確, 但是我個(gè)人持保留的態(tài)度). 如果你使用 ntpdate 程式來設(shè)定時(shí)鐘你可能不必等待太久的時(shí)間, 然而不論使用那種方式之後都得做些微調(diào)的工作. 

你可以使用 cron 在一定的時(shí)間周期內(nèi)執(zhí)行 ``clock -a'' 以便系統(tǒng)時(shí)間能夠與 (校正過的) CMOS時(shí)間維持一致性. 其實(shí)在你每次開機(jī)的時(shí)候都會(huì)從開機(jī)執(zhí)行檔來執(zhí)行這個(gè)命令, 然而只要常常做上面這個(gè)動(dòng)作就可以達(dá)到你準(zhǔn)確機(jī)器時(shí)間的目的. 

注意如果系統(tǒng)時(shí)間的修正一次超過一秒或是時(shí)間往回修正, 有些系統(tǒng)的 clock 程式可能會(huì)無法執(zhí)行. 如果你有這方面的問題, 則可以使用 xntpd 或 ntpdate 程式來逐步地修正時(shí)間. 

2.3 實(shí)例 
設(shè)定時(shí)間
簽入系統(tǒng)并成為 root. 撥電話至 (303)499-7111 (語音), 來聆聽報(bào)時(shí)的內(nèi)容. 然後使用鍵盤打出下面幾個(gè)字: 

date -s hh:mm:ss

一直等到嗶的一聲□按下 enter 鍵. (如果在此處使用 ``ntpdate'' 程式, 則你可以省略撥電話的動(dòng)作) 這個(gè)步驟在設(shè)定 ``系統(tǒng)時(shí)間''. 接著執(zhí)行: 
clock -w

這個(gè)步驟將系統(tǒng)時(shí)間寫回 CMOS 時(shí)鐘讓二者時(shí)間一致. 接著執(zhí)行: 
date +%j

(如果在前面使用 ``ntpdate'' 程式你得執(zhí)行 ``date +%s'') 將其執(zhí)行的結(jié)果記錄下來. 
重新設(shè)定時(shí)間與檢查偏差率
找出你上次寫下來日期. 簽入系統(tǒng)并成為 root. 然後執(zhí)行: 

clock -a

這個(gè)步驟將 CMOS 時(shí)間寫入系統(tǒng)時(shí)鐘讓二者時(shí)間一致. 撥電話至 (303)499-7111 (語音), 來聆聽報(bào)時(shí)的內(nèi)容. 接著使用鍵盤打出下面幾個(gè)字: 
date

一直等到嗶的一聲□按下 enter 鍵, 但是當(dāng)你等待的時(shí)候, 寫下報(bào)時(shí)的內(nèi)容, 并且還不要掛上電話. 這個(gè)動(dòng)作是讓你知道目前真正的時(shí)間是幾點(diǎn), 而此時(shí)相對(duì)你的機(jī)器上的時(shí)間是幾點(diǎn). 現(xiàn)在使用鍵盤打出下面幾個(gè)字: 
date -s hh:mm:00

其中分針部分所設(shè)定的數(shù)字就是目前報(bào)時(shí)內(nèi)容 *之後的* 下一分鐘, 一直等到嗶的一聲□按下 enter 鍵 (現(xiàn)在可以掛上電話了). 而 hh 的部分則使用機(jī)器本地的時(shí)針數(shù)字即可. 這個(gè)步驟在設(shè)定 ``系統(tǒng)時(shí)間''. 然後執(zhí)行: 
clock -w

將新的 (校正過的) 系統(tǒng)時(shí)間寫回 CMOS 時(shí)鐘. 然後執(zhí)行: 
date +%j

(或是執(zhí)行 ``date +%s'' ) 
你現(xiàn)在手上有三個(gè)數(shù)字 (二個(gè)校正日期及一個(gè)正確時(shí)間) 於是你可以開始計(jì)算偏差率了. 

計(jì)算校正因子
當(dāng)你在某一分鐘執(zhí)行 ``date'' 程式時(shí), 你機(jī)器的本地時(shí)間是慢還是快呢? 如果是快了, 你必須將之減去一些秒數(shù)以符合正確時(shí)間, 所以你應(yīng)該寫下一個(gè)負(fù)的偏差數(shù)值. 如果是慢了,你必須將之加上一些秒數(shù)以符合正確時(shí)間, 所以你應(yīng)該寫下一個(gè)正的偏差數(shù)值. 

現(xiàn)在將二個(gè)校正日期相減. 如果之前你使用的是 ``date +%j'', 則數(shù)值所代表意義為一年的第幾天 (1-365, 或 1-366 如果是閏年). 如果自從你上一次設(shè)定時(shí)鐘到現(xiàn)在經(jīng)過1 月1 日你還須要將第二個(gè)校正日期加 365 (或 366) 如果之前你使用的是 ``date +%s'' 則數(shù)值的單位為秒數(shù), 你必須將之除以 86400 以便取得日數(shù). 

如果你的檔案 /etc/adjtime 中已經(jīng)有校正因子, 你必須將先前已校正過的秒數(shù)考慮進(jìn)來, 如果你校正過度, 這個(gè)校正因子的正負(fù)號(hào)將與你量測(cè)到偏差數(shù)值相反; 如果你校正不足則二者正負(fù)號(hào)相同. 將舊的校正因子乘以日數(shù), 然後加上新獲得的偏差秒數(shù) (附注-- 如果二者正負(fù)號(hào)相同, 你將取得一個(gè)較大的偏差數(shù)值, 如果二者正負(fù)號(hào)相反, 你將取得一個(gè)較小的偏差數(shù)值). 

接著將這個(gè)總偏差秒數(shù)除以日數(shù)以便取得新的校正因子, 然後將檔案 /etc/adjtime 中舊的校正因子代換成新的. 最後寫下新的校正日期 (以秒數(shù)或日數(shù)為單位) 以便下次使用. 

這里是我的 /etc/adjtime 檔案內(nèi)容: 

-9.600000 845082716 -0.250655

(注意每天 9.6 秒則一個(gè)月將近有 5 分鐘的偏差!) 



--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

3. xntpd 簡介
你的系統(tǒng)實(shí)際上有二個(gè)時(shí)鐘-- 一個(gè)是當(dāng)系統(tǒng)關(guān)機(jī)繼續(xù)使用電池電力維持計(jì)時(shí)功能的 ``real time clock'' (也就是所謂的 ``CMOS 時(shí)鐘'', ``硬體時(shí)鐘'', 或 ``RTC'') 而另一個(gè)是 ``kernel clock'' (有時(shí)稱為 ``軟體時(shí)鐘'' 或 ``系統(tǒng)時(shí)鐘'') 系統(tǒng)時(shí)鐘的跳動(dòng)是以計(jì)時(shí)器的中斷信號(hào)為基準(zhǔn)并在開機(jī)時(shí)從CMOS 時(shí)鐘處載入初始值. 這二個(gè)時(shí)鐘有不同的時(shí)間偏差率, 所以二個(gè)時(shí)鐘上的時(shí)間會(huì)逐漸地產(chǎn)生偏差, 而且也會(huì)與 ``真正的''時(shí)間產(chǎn)生偏差. 

在 xntpd 文件中所述及的 ``the clock'' 就是指 ``kernel clock''. 當(dāng)你執(zhí)行 xntpd 或 timed 程式時(shí) (或是其他使用到 adjtimex 系統(tǒng)呼叫的程式) linux 作業(yè)系統(tǒng)會(huì)假定系統(tǒng)時(shí)鐘比 CMOS 時(shí)鐘準(zhǔn)確, 而且會(huì)在開機(jī)後每隔 11 分鐘重新設(shè)定一次 CMOS 時(shí)間 (一直到重開機(jī)為止). 這意味著 ``clock'' 程式不再知道上一次重新設(shè)定 CMOS 時(shí)鐘的正確時(shí)間, 所以你不可以使用檔案 /etc/adjtime 中的校正因子. 你可以在開機(jī)執(zhí)行檔上使用 ntpdate 程式以便在初次執(zhí)行 xntpd 程式之前與校時(shí)伺服器對(duì)時(shí). 如果你在開機(jī)的時(shí)候一直無法連上準(zhǔn)確的校時(shí)源, 這可能會(huì)讓你面臨到一些困境-- 實(shí)際上 xntpd 不是被設(shè)計(jì)來在那種情況之下使用的. 

Xntpd 包含了許多無線電時(shí)鐘的驅(qū)動(dòng)程式, 并且也可以被設(shè)定在一定的周期內(nèi)撥電話至 NIST 的電話撥接電腦校時(shí)服務(wù) (當(dāng)你設(shè)定好電話撥接的周期之後最好先計(jì)算一下電話帳單的花費(fèi)). 在與其他的校時(shí)源失去聯(lián)絡(luò)一段時(shí)間之後這個(gè)方式也能提供系統(tǒng)時(shí)鐘一個(gè)校正因子. 

大部分的無線電時(shí)鐘大約要花費(fèi) $3-4K, 不過你可以采用較便宜的 ``gadget box'' 方案 (實(shí)際上是一個(gè) 300 baud 的數(shù)據(jù)機(jī)) 他被放在你的電腦與一臺(tái)短波無線電接收器之間頻道調(diào)至 Canada 的 CHU 校時(shí)無線電臺(tái) (參見網(wǎng)址 ftp://ftp.udel.edu/pub/ntp/gadget.tar.Z). 而Heathkit WWV 接收器 (``最準(zhǔn)確的時(shí)鐘'') 仍然買的到 (但不是一組套件), 大約要花費(fèi) $4-500. 目前GPS 的訊號(hào)里仍然包含有校時(shí)的資訊, 而且部分的 GPS 接收器可以接上電腦的串列埠. 在最近的未來這可能會(huì)成為低價(jià)位的解決方案. 

理論上, 一般人可以自己寫程式來使用 NIST 的電話撥接電腦校時(shí)服務(wù)以便自動(dòng)計(jì)算 CMOS 時(shí)鐘與系統(tǒng)時(shí)鐘的偏差率. 雖然我不知道是否有單獨(dú)的程式能夠達(dá)到這個(gè)目的, 但是大部分的程式碼應(yīng)該可以借用自 xntpd 程式集. 


--------------------------------------------------------------------------------
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美人与牲禽动交精品一区 | 奇米888一区二区三区 | 91精品国产综合久久婷婷香 | 禁漫天堂久久久久久久久久 | 在线播放污 | 中文字幕在线观看网址 | chinesehd天美原创xxxx | 午夜影院a | 粉嫩av一区二区三区四区在线观看 | 91在线色| 久久91久久久久麻豆精品 | 香蕉黄色网 | 色网站免费观看 | 日本aaaa片毛片免费观蜜桃 | 黄色1级视频 | 欧美日韩在线免费观看 | 亚洲日本韩国精品 | 久久精品女人天堂av | 国产欧美日韩视频在线观看 | 羞羞电影在线观看 | 免费a网| www国产成人免费观看视频,深夜成人网 | 欧美视频在线一区二区三区 | 中文字幕1区2区 | 成人在线视频一区 | 久久久精品视频免费看 | 一级免费视频 | 日韩激情一区 | 91九色网址| 亚洲精品一区中文字幕 | 国产69精品久久久久孕妇黑 | 国产一区精品视频 | 久久不射电影网 | 黄网站免费在线看 | 日韩视频一区二区 | 一级电影免费在线观看 | 国产在线1区| 亚洲国产精品久久久久久久 | 55夜色66夜色国产精品视频 | 日本在线播放一区 | 国产成人视屏 |