- +1
因?yàn)榈厍蛟睫D(zhuǎn)越慢,互聯(lián)網(wǎng)可能會(huì)崩潰
原創(chuàng) 莎士比利 果殼
現(xiàn)行公歷中,平年有365天,閏年有366天,這是小朋友們都知道的生活小常識(shí)。但在閏年之外,還有偶爾出現(xiàn)的“閏秒”,每當(dāng)“閏秒”出現(xiàn)時(shí),全球的“協(xié)調(diào)世界時(shí)”都會(huì)同時(shí)增加一秒。
然而不久前,F(xiàn)acebook母公司Meta的工程師們聯(lián)名發(fā)表了一篇博客,呼吁取消閏秒,聲稱在互聯(lián)網(wǎng)時(shí)代“引入閏秒是一種危險(xiǎn)的做法”,這種做法“應(yīng)該被取代”。
包括微軟、谷歌和亞馬遜在內(nèi)的科技巨頭紛紛表示贊同,美國(guó)和法國(guó)的計(jì)時(shí)機(jī)構(gòu)也認(rèn)同了這一請(qǐng)?jiān)浮?/p>
Meta的工程師們發(fā)表的博客|Engineering at Meta
這套已經(jīng)沿用了五十年、寫進(jìn)了各國(guó)中小學(xué)課本的閏秒制度,為什么突然就成了各大科技公司的眼中釘呢?
時(shí)間加一秒,計(jì)算機(jī)大崩潰
科學(xué)上有兩種時(shí)間計(jì)量系統(tǒng):基于地球自轉(zhuǎn)的天文測(cè)量而得出的“世界時(shí)”,和以原子振蕩周期確定的“原子時(shí)”。由于兩種時(shí)間尺度對(duì)秒的測(cè)量方法不同,隨著時(shí)間推移,兩個(gè)計(jì)時(shí)系統(tǒng)的結(jié)果會(huì)出現(xiàn)差異,因此有了“協(xié)調(diào)世界時(shí)”的概念。
1972年,國(guó)際計(jì)量大會(huì)決定,當(dāng)“世界時(shí)”與“原子時(shí)” 之間的時(shí)刻相差超過(guò)0.9秒時(shí),就在“協(xié)調(diào)世界時(shí)”上加上或減去1秒,以盡量接近“世界時(shí)”,這就是閏秒。自1972年至今,閏秒已經(jīng)增加了27次。
這小小的一秒對(duì)于我們的生活來(lái)說(shuō)也許并沒(méi)有什么影響,很多人甚至察覺(jué)不到,但對(duì)于計(jì)算機(jī)來(lái)說(shuō),這一秒足以令系統(tǒng)大規(guī)模崩潰。
說(shuō)到因?yàn)闀r(shí)間計(jì)量造成的計(jì)算機(jī)崩潰,大家更熟悉的可能是“千年蟲(chóng)”。

千年蟲(chóng)(Year 2000 problem)
上世紀(jì)60年代,當(dāng)時(shí)電腦內(nèi)存和外部存儲(chǔ)介質(zhì)的成本很高,為了節(jié)省硬件成本,程序員葛麗絲·霍普開(kāi)發(fā)了六位數(shù)的日期存儲(chǔ)方式,分別用兩位數(shù)字來(lái)表示年、月、日,四位數(shù)的年份,只保留最后兩位的數(shù)字。
這個(gè)習(xí)慣被COBOL語(yǔ)言繼承了下來(lái),進(jìn)而傳播到了整個(gè)計(jì)算機(jī)程序界。但當(dāng)人們步入二十一世紀(jì)時(shí),一些使用六位數(shù)日期的電腦很可能無(wú)法識(shí)別2000年的00究竟指的是1900年還是2000年,從而導(dǎo)致了大規(guī)模的程序錯(cuò)亂。
每次閏秒的調(diào)整也會(huì)給互聯(lián)網(wǎng)帶來(lái)類似的麻煩。
和千年蟲(chóng)不同,由于地球的自轉(zhuǎn)受到海洋、大氣、地核運(yùn)動(dòng)等多種因素影響,所以閏秒的增加時(shí)機(jī)不確定,無(wú)法被提前寫進(jìn)系統(tǒng),一旦互聯(lián)網(wǎng)上的時(shí)間突然多出1秒,很多程序會(huì)認(rèn)為“時(shí)間沒(méi)有繼續(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)承載了越來(lái)越多功能的今天,這樣的事件屢見(jiàn)不鮮。2012年6月30日午夜,當(dāng)閏秒被添加入世界原子鐘時(shí),Reddit服務(wù)器無(wú)法與之同步,整個(gè)論壇宕機(jī)了40分鐘。Mozilla、Gawker以及使用各種Linux服務(wù)器都遭遇了同樣的閏秒問(wèn)題。
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)備,也免不了在閏秒來(lái)臨時(shí)遭遇宕機(jī)。2015年6月30日,為了避免閏秒帶來(lái)的更不可控的影響,美國(guó)洲際交易所集團(tuán)在經(jīng)歷閏秒時(shí)主動(dòng)停止運(yùn)營(yíng)了61分鐘。
為了這一秒鐘的修正,可是耽誤了無(wú)數(shù)程序員和用戶的時(shí)間,更造成了難以計(jì)算的經(jīng)濟(jì)損失。也難怪各大科技公司都呼吁要取消閏秒。
你說(shuō)的秒是什么秒
閏秒這么麻煩的東西,到底為什么存在呢?
遠(yuǎn)古時(shí)期,人們就開(kāi)始用太陽(yáng)的東升西落來(lái)計(jì)算時(shí)間,古代學(xué)者將平均太陽(yáng)日平分為24小時(shí),再以60進(jìn)制為基礎(chǔ),創(chuàng)造了分和現(xiàn)代的秒作為時(shí)間單位,這種以地球自轉(zhuǎn)對(duì)太陽(yáng)的周期為基準(zhǔn)測(cè)量得出的時(shí)間就是太陽(yáng)時(shí)。
但地球自轉(zhuǎn)的周期并不是恒定的,而是在不斷變慢,每天的日子也越變?cè)介L(zhǎng)。13億年前,地球每年有500多天,每年有13-14個(gè)月。因?yàn)樘?yáng)和月亮的潮汐力作用引起了摩擦,產(chǎn)生的熱量被耗散掉,消耗了地球自轉(zhuǎn)的動(dòng)能,使得其轉(zhuǎn)動(dòng)變慢。

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

但隨著時(shí)間推移,國(guó)際原子時(shí)和世界時(shí)這兩個(gè)系統(tǒng)會(huì)出現(xiàn)差異,時(shí)間越長(zhǎng),這種差異就會(huì)越大。于是,國(guó)際計(jì)量大會(huì)在1972年決定,當(dāng)“世界時(shí)”與“原子時(shí)” 之間時(shí)刻相差超過(guò)0.9秒時(shí),就在“協(xié)調(diào)世界時(shí)”上加上或減去1秒,以盡量接近“世界時(shí)”,這就是閏秒。
由于地球自轉(zhuǎn)周期難以預(yù)測(cè),所以國(guó)際地球自轉(zhuǎn)服務(wù)只能每半年宣布一次是否會(huì)在未來(lái)六個(gè)月后插入閏秒。
從1972年到今天,閏秒已經(jīng)增加了27次。
不要閏秒,我們?cè)趺崔k?
哪怕運(yùn)行140億年,原子鐘的時(shí)間精度差也能保持在十分之一秒之內(nèi),為了讓原子鐘和世界時(shí)盡量保持一致,人們只能不斷地插入閏秒,讓程序員們們加班加點(diǎn)地處理bug。
但除了現(xiàn)行的方法,也不是沒(méi)有其他處理閏秒問(wèn)題。
最簡(jiǎn)單粗暴的方法就是在插入閏秒前停止NTP時(shí)鐘同步服務(wù),待閏秒結(jié)束后再開(kāi)啟,斷同步保平安。但這個(gè)方法成本太高,并且可能會(huì)帶來(lái)其他影響。
目前,國(guó)際大公司通用的解決方案就是“閏抹”,提前將一閏秒分成許多份,再平均分配到一大段時(shí)間中慢慢增加。谷歌和亞馬遜會(huì)將一閏秒平均插入到24小時(shí)中,屆時(shí)剛好和“協(xié)調(diào)世界時(shí)”同步。2015年,日本股票交易所提前將這一秒平均分成7200份,分?jǐn)偟絻蓚€(gè)小時(shí)里,在分?jǐn)偨Y(jié)束時(shí)間恢復(fù)同步時(shí),剛好趕上開(kāi)市。

“閏抹”示意圖 | 彭博社
時(shí)間是文明的坐標(biāo),是跨文化地區(qū)合作的基準(zhǔn),因?yàn)橛辛藭r(shí)間的概念,我們才能夠穿越空間相約在一起。時(shí)間不完全準(zhǔn)確就沒(méi)有意義,可以說(shuō)計(jì)時(shí)能力是文明發(fā)展程度的度量衡之一。
如今,我們的文明已經(jīng)走到了能用原子鐘來(lái)計(jì)時(shí)這一步,如果繼續(xù)向下深入,說(shuō)不定還會(huì)有更準(zhǔn)確的方法來(lái)掌控時(shí)間。但目前看來(lái),我們還是只能通過(guò)人工干預(yù)的“笨辦法”讓原子時(shí)和世界時(shí)的差距保持在合理范圍內(nèi),也許在未來(lái),會(huì)出現(xiàn)比閏秒和閏抹更好的解決方案。
參考文獻(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/.
作者:莎士比利
編輯:翻翻,Steed
封面圖來(lái)源:Qualys
一個(gè)AI
雖然至今為止出現(xiàn)的閏秒都是加一秒,但隨著冰川的消融和地球自轉(zhuǎn)周期的變化,有學(xué)者提出,在未來(lái)也可能出現(xiàn)減一秒的“負(fù)閏秒”。負(fù)閏秒的情況更加危險(xiǎn),互聯(lián)網(wǎng)可能真的會(huì)認(rèn)為時(shí)間在向后走而崩潰。有什么解決辦法嗎?

本文來(lái)自果殼,未經(jīng)授權(quán)不得轉(zhuǎn)載.
本文為澎湃號(hào)作者或機(jī)構(gòu)在澎湃新聞上傳并發(fā)布,僅代表該作者或機(jī)構(gòu)觀點(diǎn),不代表澎湃新聞的觀點(diǎn)或立場(chǎng),澎湃新聞僅提供信息發(fā)布平臺(tái)。申請(qǐng)澎湃號(hào)請(qǐng)用電腦訪問(wèn)http://renzheng.thepaper.cn。





- 報(bào)料熱線: 021-962866
- 報(bào)料郵箱: news@thepaper.cn
滬公網(wǎng)安備31010602000299號(hào)
互聯(lián)網(wǎng)新聞信息服務(wù)許可證:31120170006
增值電信業(yè)務(wù)經(jīng)營(yíng)許可證:滬B2-2017116
? 2014-2025 上海東方報(bào)業(yè)有限公司