再過十多天,靠着GPS校準時間的設備們就要慌了!!_風聞
差评-差评官方账号-2019-03-24 09:23
最近馬上要發生一件不大不小的事兒。
事件類似 2000 年時的千年蟲事件。
在計算機被髮明出來的 20 世紀,大家一開始想問題比較簡單,覺得軟件不會用很久,於是用兩位數字代表年份。
很顯然。。。在 19XX 年的時候沒啥事兒,但是 2000 年會出現問題:計算機碰到 “ 00 ” 會理解為 1900 年。
很多程序運行可能會出現問題,設備甚至可能停止運轉。。。
不過因為政府企業高度重視這個問題,所以最後沒有鬧出大規模故障。
現在的服務器普遍使用的 Unix 系統用的是 32 位二進制整數表達時間,足夠用到 2038 年 ~
不過差評君這回要説的問題是迫在眉睫的,GPS 授時翻轉問題。
GPS 大家應該都聽過,是美國國防部為了給軍隊定位而發射的衞星組,共有 24 顆衞星組成,後來漸漸轉給全世界民間使用。
這套系統除了定位,還有個作用就是授時。
全球各地能在一起通信,工作,有一個很重要的因素需要維持,便是時刻。
也許各地會存在時差,但我們這兒説的是時間流逝的誤差。
同樣過了一天小時,不能我這兒時鐘顯示過了 23 小時 59 分 59 秒,你那兒過了 24 小時 00 分 01 秒。
日常生活差個一兩秒關係不大,但是時間久了以後,銀行系統,航班系統,股市開盤等等都會受很大影響。
説白了,大家的時鐘要保持一致。
會造成時鐘差異的原因很簡單,現在的計時方法本質上還是測震動頻率,比如常用的石英鐘就是給晶體導電後測振盪次數 -- 每隔 1431 萬 8180 次就記一秒。
原子鐘會更精確一些,例如銫原子鐘的頻率是每 9192631770 次振盪記一秒。
但各地用不同的時鐘難免會有其他因素,例如電流影響,磁場影響,人為影響。。。當你在做一個精確度要求極高的事情時,屁大的事兒都是干擾。
或者説。。。相對論:你坐了一天飛機,處於高速移動的狀態,因此時間會過得慢一些,宅家裏一天的我過了 1 秒,但你可能是 0.999912345 秒。
好吧。。。既然誤差難以規避,那咱們不管誤差,大家用同一個鍾。
或者説得實際一點,大家都拿自己的表和同一個來源校準。
這就是 “ 授時 ” ,我國就有個 “ 中國科學院國家授時中心 ” 。
那麼問題來了,當地球距離比較遠的兩地要校準時間時,會發生什麼?
假設我們放在中國,那麼美國人發送授時請求時就會這樣:
信息傳遞速度的極限是光速,我們湊個整算它 30 萬千米/秒。
中國和美國的地理位置中心相隔 11657 千米。
11657 千米 ➗ 300000 千米/秒 = 0.039 秒
一次授時發送請求,再反饋授時,花在路上的時間就有大約 0.08 秒誤差,一天多次授時下來,誤差還挺可觀的。。。
這麼看來,地面授時有一些侷限性。。。
那在天上呢?
這兒就可以説回剛才提到的 GPS 授時了,GPS 不僅可以拿來定位,也可以授時。
每個 GPS 衞星上都帶有高精度的原子鐘,他們互相備份和糾正時間,並且定期和地面控制站通信授時。
考慮相對速度和信號傳輸速度, GPS 授時還會通過一些公式消除誤差,既精確,對全球來説又很公平。
GPS的時間計數由周和秒組成,一週等於 604800 秒,也就是説每當秒數記錄到 604800 就會歸零,周計數會 +1 周。
但可能是資源有限,GPS 裏周的計數只用了 10 位二進制數字來表達,也就是説上限只能計 2 的 10 次方 -- 1024 周。
坑爹的是。。。周計數滿了之後沒地方進位了,還是會照常歸零。。。
如果接收 GPS 授時設備的廠商沒有提前做準備,那可能一個不留神設備的時間就滾回 19 年前了。
在例如航天,電力,金融等對時間很敏感的領域裏,時間錯誤就是災難。。。
這一次的回滾時間點,是北京時間 2019 年 4 月 7 日早上 7 時 59 分 42 秒。
看起來是不是離得超近了呀。。。
其實也沒那麼可怕,有很多方法去規避,1999 年就發生過一次,啥事兒也沒。
一般解決方法就是更新一下軟件,注意授時有沒有滾動,有的話注意計時開始時間點要更新。
近幾年研發的設備一般都會考慮到這個問題,如果沒有的話聯網滾動更新一下就好。
稍微麻煩一些的嵌入式系統則需要和廠家聯繫,如果沒有提前準備那就得抓緊時間啦。( 雖然差評君相信以他們的專業水平,老早就注意到這個問題了 )
一些設備廠已經提醒客户注意更新
有的新聞説在那一天飛機不能坐了,但現在的飛機其實不完全依靠 GPS 數據,只是做一個位置參考,不會干擾飛行安全。( 此説法來自紅星新聞對民航資深機長陳建國的採訪 )
你要是覺得 GPS 老因為這個缺陷麻煩人很不爽的話。。。用北斗呀 ~ 我國的北斗系統現在非常成熟了,不少國內廠家都已經開始轉北斗授時了 ~
所以在那一天,其實你啥也不用幹,不要輕信什麼謠言,好好過一個清明節假期就行啦 ~