首頁>資訊 >
今日快訊:定了,這個導致互聯(lián)網(wǎng)崩潰的東西,2035年取消 2022-11-22 21:39:02  來源:36氪

閏秒即將成為歷史。


【資料圖】

現(xiàn)行公歷中,除了有閏年,還有偶爾出現(xiàn)的“閏秒”,每當閏秒來臨,全球的“協(xié)調(diào)世界時”都會同時增加一秒。

然而就在18日,法國巴黎舉行的度量衡大會(CGPM)上,科學家和政府代表投票決定取消閏秒。這項決議到2035年開始實施,具體細節(jié)還在討論中。

加拿大哈利法克斯計量研究中心負責人喬吉特·麥克唐納 (Georgette Macdonald) 評價道,閏秒破壞了基于精確計時的時間系統(tǒng),可能在數(shù)字時代造成嚴重的破壞。

就在不久前,F(xiàn)acebook母公司Meta的工程師們也聯(lián)名發(fā)表了一篇博客,呼吁取消閏秒。包括微軟、谷歌和亞馬遜在內(nèi)的科技巨頭紛紛表示贊同,美國和法國的計時機構(gòu)也認同了這一請愿。

Meta的工程師們發(fā)表的博客|Engineering at Meta

這套已經(jīng)沿用了五十年、寫進了各國中小學課本的閏秒制度,為什么突然就成了各大科技公司的眼中釘呢?

時間加一秒,計算機大崩潰

科學上有兩種時間計量系統(tǒng):基于地球自轉(zhuǎn)的天文測量而得出的“世界時”,和以原子振蕩周期確定的“原子時”。由于兩種時間尺度對秒的測量方法不同,隨著時間推移,兩個計時系統(tǒng)的結(jié)果會出現(xiàn)差異,因此有了“協(xié)調(diào)世界時”的概念。

1972年,國際計量大會決定,當“世界時”與“原子時” 之間的時刻相差超過0.9秒時,就在“協(xié)調(diào)世界時”上加上或減去1秒,以盡量接近“世界時”,這就是閏秒。自1972年至今,閏秒已經(jīng)增加了27次。

這小小的一秒對于我們的生活來說也許并沒有什么影響,很多人甚至察覺不到,但對于計算機來說,這一秒足以令系統(tǒng)大規(guī)模崩潰。

說到因為時間計量造成的計算機崩潰,大家更熟悉的可能是“千年蟲”。

千年蟲(Year 2000 problem)

上世紀60年代,當時電腦內(nèi)存和外部存儲介質(zhì)的成本很高,為了節(jié)省硬件成本,最早的女性程序員之——葛麗絲·霍普開發(fā)了六位數(shù)的日期存儲方式,分別用兩位數(shù)字來表示年、月、日,四位數(shù)的年份,只保留最后兩位的數(shù)字。

這個習慣被COBOL語言繼承了下來,進而傳播到了整個計算機程序界。但當人們步入二十一世紀時,一些使用六位數(shù)日期的電腦很可能無法識別2000年的00究竟指的是1900年還是2000年,從而導致了大規(guī)模的程序錯亂。

每次閏秒的調(diào)整也會給互聯(lián)網(wǎng)帶來類似的麻煩。

和千年蟲不同,由于地球的自轉(zhuǎn)受到海洋、大氣、地核運動等多種因素影響,所以閏秒的增加時機不確定,無法被提前寫進系統(tǒng),一旦互聯(lián)網(wǎng)上的時間突然多出1秒,很多程序會認為“時間沒有繼續(xù)向前走,而是退回去了”,這違反了計算機的內(nèi)在邏輯,錯誤就會由此而生。

閏秒出現(xiàn)時,時鐘在走到一天的盡頭時,不會直接變成0點,而是會多出一個“59分60秒”|Qualys

在互聯(lián)網(wǎng)承載了越來越多功能的今天,這樣的事件屢見不鮮。2012年6月30日午夜,當閏秒被添加入世界原子鐘時,Reddit服務器無法與之同步,整個論壇宕機了40分鐘。Mozilla、Gawker以及使用各種Linux服務器都遭遇了同樣的閏秒問題。

2015年1月,兩家澳大利亞航空公司的系統(tǒng)因為閏秒癱瘓了48分鐘,工作人員只能被迫用紙張辦理登記手續(xù)。2015年的6月30日,閏秒的增加同樣產(chǎn)生了影響,讓推特的推文時間顯示出現(xiàn)了錯誤。Instagram、Pinterest、Netflix和亞馬遜等網(wǎng)站服務器崩潰,多個網(wǎng)站離線了約40分鐘。

還有用戶表示,他們的安卓手機和手表在距離7月1日還有幾個小時時就把日期設(shè)為了7月1日。

哪怕是提前做好準備,也免不了在閏秒來臨時遭遇宕機。2015年6月30日,為了避免閏秒帶來的更不可控的影響,美國洲際交易所集團在經(jīng)歷閏秒時主動停止運營了61分鐘。

為了這一秒鐘的修正,可是耽誤了無數(shù)程序員和用戶的時間,更造成了難以計算的經(jīng)濟損失。也難怪各大科技公司都呼吁要取消閏秒。

你說的秒是什么秒

閏秒這么麻煩的東西,到底為什么存在呢?

遠古時期,人們就開始用太陽的東升西落來計算時間,古代學者將平均太陽日平分為24小時,再以60進制為基礎(chǔ),創(chuàng)造了分和現(xiàn)代的秒作為時間單位,這種以地球自轉(zhuǎn)對太陽的周期為基準測量得出的時間就是太陽時。

但地球自轉(zhuǎn)的周期并不是恒定的,而是在不斷變慢,每天的日子也越變越長。13億年前,地球每年有500多天,每年有13-14個月。因為太陽和月亮的潮汐力作用引起了摩擦,產(chǎn)生的熱量被耗散掉,消耗了地球自轉(zhuǎn)的動能,使得其轉(zhuǎn)動變慢。

隨著時代發(fā)展,傳統(tǒng)的世界時計量法很難再滿足人們的需要,特別在太空探測、通信導航、天文觀測、工業(yè)自動化等對時間精確度要求極高的領(lǐng)域更是如此。所以人們發(fā)明了計時更準確的原子鐘。原子內(nèi)部震蕩不受外界環(huán)境影響,因此非常穩(wěn)定和精確,以這種固定秒長計量的時間,其精確度每天快慢不超過千萬分之一秒。

但隨著時間推移,國際原子時和世界時這兩個系統(tǒng)會出現(xiàn)差異,時間越長,這種差異就會越大。于是,國際計量大會在1972年決定,當“世界時”與“原子時” 之間時刻相差超過0.9秒時,就在“協(xié)調(diào)世界時”上加上或減去1秒,以盡量接近“世界時”,這就是閏秒。

由于地球自轉(zhuǎn)周期難以預測,所以國際地球自轉(zhuǎn)服務只能每半年宣布一次是否會在未來六個月后插入閏秒。

從1972年到今天,閏秒已經(jīng)增加了27次。

不要閏秒,我們怎么辦?

哪怕運行140億年,原子鐘的時間精度差也能保持在十分之一秒之內(nèi),為了讓原子鐘和世界時盡量保持一致,人們只能不斷地插入閏秒,讓程序員們們加班加點地處理bug。

但除了現(xiàn)行的方法,也不是沒有其他處理閏秒問題。

最簡單粗暴的方法就是在插入閏秒前停止NTP時鐘同步服務,待閏秒結(jié)束后再開啟,斷同步保平安。但這個方法成本太高,并且可能會帶來其他影響。

目前,國際大公司通用的解決方案就是“閏抹”,提前將一閏秒分成許多份,再平均分配到一大段時間中慢慢增加。谷歌和亞馬遜會將一閏秒平均插入到24小時中,屆時剛好和“協(xié)調(diào)世界時”同步。2015年,日本股票交易所提前將這一秒平均分成7200份,分攤到兩個小時里,在分攤結(jié)束時間恢復同步時,剛好趕上開市。

“閏抹”示意圖 | 彭博社

時間是文明的坐標,是跨文化地區(qū)合作的基準,因為有了時間的概念,我們才能夠穿越空間相約在一起。時間不完全準確就沒有意義,可以說計時能力是文明發(fā)展程度的度量衡之一。如今,我們的文明已經(jīng)走到了能用原子鐘來計時這一步,如果繼續(xù)向下深入,說不定還會有更準確的方法來計量時間。

雖然閏秒即將退出歷史舞臺,但世界時與原子時之間的微小差異仍然存在,解決方案仍在討論中。

有專家認為,可以等時間差異累計到一分鐘的時候再做統(tǒng)一更改,也有人認為可以把太陽時和協(xié)調(diào)世界時分離開,各走各的。但可以確定的是,當時間差異拉大到一秒以上,我們就能有更多的余裕去調(diào)和這種差異。

參考文獻

[1]"Leap Second - Wikipedia". 2022. En.Wikipedia.Org. https://en.wikipedia.org/wiki/Leap_second.

[2]Phillips, By Alexa, By Hannah Furness, By Chanel Zagon, By Gareth Davies, By Raven Saunt, and By Gary Buchanan. 2015. [3]"Leap Second Confuses Twitter And Android ". The Telegraph. https://www.telegraph.co.uk/news/science/science-news/11710148/Leap-Second-confuses-Twitter-and-Android.html.

[4]"Bloomberg - Are You A Robot?". 2022. Bloomberg.Com. https://www.bloomberg.com/news/articles/2015-06-28/with-61-seconds-in-a-minute-markets-brace-for-trouble.

[5]Nast, Condé. 2012. ""Leap Second" Bug Wreaks Havoc Across Web". WIRED. https://www.wired.com/2012/07/leap-second-bug-wreaks-havoc-with-java-linux/.

關(guān)鍵詞: 協(xié)調(diào)世界時 地球自轉(zhuǎn) 解決方案

相關(guān)閱讀:
熱點
圖片 圖片