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

閏秒即將成為歷史。


【資料圖】

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

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

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

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

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

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

時(shí)間加一秒,計(jì)算機(jī)大崩潰

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

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

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

說到因?yàn)闀r(shí)間計(jì)量造成的計(jì)算機(jī)崩潰,大家更熟悉的可能是“千年蟲”。

千年蟲(Year 2000 problem)

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

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

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

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

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

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

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

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

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

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

你說的秒是什么秒

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

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

但地球自轉(zhuǎn)的周期并不是恒定的,而是在不斷變慢,每天的日子也越變?cè)介L。13億年前,地球每年有500多天,每年有13-14個(gè)月。因?yàn)樘柡驮铝恋某毕ψ饔靡鹆四Σ粒a(chǎn)生的熱量被耗散掉,消耗了地球自轉(zhuǎn)的動(dòng)能,使得其轉(zhuǎn)動(dòng)變慢。

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

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

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

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

不要閏秒,我們?cè)趺崔k?

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

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

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

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

“閏抹”示意圖 | 彭博社

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

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

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

參考文獻(xiàn)

[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)世界時(shí) 地球自轉(zhuǎn) 解決方案

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