2017 年 1 月 1 日這一天,全人類都被強續了 1 秒,因為這天有 24 小時 01 秒。
多出這一秒被塞到了北京時間 07:59:60 的位置。
這一秒也叫閏秒。
然而就在前段時間,亞馬遜、微軟、 Meta 、谷歌等國外科技巨頭聯合發起了一項活動,說要取消閏秒。
倒不是說他們不讓人多活一秒,而是因為“ 閏秒帶來的副作用,早超過它本身的價值 ”。
雖說這提議已經得到美國相關機構的支持,但取消閏秒這麼大的事,可不是一個國家說的算。
今天咱們簡單盤盤,閏秒能幹啥,為啥現在又要取消。
>/ 為什麼會有閏秒?
我們之前有 2 種主流時間标準,一種是民用的世界時,一種是高精尖領域用的國際原子時。
世界時也可以說是格林尼治時間,它的一天時長是按地球平均自轉周期算的,時間點和太陽位置保持同步。
比如太陽在正頭頂,那就是中午 12 點。
但世界時有個問題,地球受到氣候、地殼運動各種因素影響,自轉一周時間不一樣。
換句話說,世界時的一天并不是永恒的 24 小時,會有幾毫秒誤差。
這幾毫秒對世超沒啥影響,平時幾秒結束還是幾秒。
但對航空航天、衛星導航等領域來說就不行了。
像衛星定位,每一顆衛星都在不斷發射包含位置和時間的無線電信号,精确度高達一米以内和十億分之一秒。
即使誤差隻有 0.1 秒,再乘以光速,衛星定位就會差之千裡。
所以高精尖領域用國際原子時計時。
國際原子時是通過原子震蕩頻率來計算時間的,可以精确到納秒。
這啥概念呢?我國最新的铯原子鐘(NIM 6),5400 萬年誤差不超 1 秒。
可能有人要問了,既然有原子時,咱老百姓幹啥不用原子時?
因為地球自轉一圈的時間變來變去,時間一久,太陽的位置和原子時差距就越來越大。
一萬年後就可能出現,晚上 11 點頭上頂個大太陽的情況。
然而,世界時也有問題,它每一天,每一秒長度都不一樣。
所以 1972 年,我們老百姓用了一個新标準,叫協調世界時( Coordinated Universal Time 簡稱 UTC )。
你也可以叫它縫合怪。
它用原子時的計時速度,在和世界時誤差達到 0.9秒,就會加減個 1 秒。
這樣一來,平時時間是精準的,日子久了也不會和太陽位置不匹配。
這個為了保持同步,多出或摳掉的這一秒就是閏秒,目前全世界已經加了 27 次閏秒。
>/閏秒帶來的問題
雖說閏秒解決了時間和地球自轉不匹配的問題,但也帶來了新麻煩。
比如我們要加一秒,那時間就會成為 23:59:59、23:59:60、00:00:00。
中間多了奇怪的 1 秒,人麼無所謂,也就是多發一秒呆的事。
但很多服務器就頂不住了。
因為閏秒和閏年不一樣,沒有規律可循,無法提前寫進系統。
如果突然多出 1 秒,很多老程序不知道如何面對它,就會各種報錯。
比如 2012 年,閏秒導緻了 Reddit、Mozilla、 LinkedIn、 Yelp 的服務器大規模宕機。
同年澳大利亞航空公司的一個辦理系統也死機了幾小時,被迫人工檢查乘客登機。
2017年,閏秒還導緻 Cloudflare 一部分客戶服務器離線。
這當中原因有很多,我們簡單說一種。
因為加了一秒鐘,很多任務會因為條件不匹配而啟動失敗,這時它們就會不停嘗試,一直循環,直到把系統塞爆。
打個比方。
一棟樓的每層樓之間有 60 級台階,送貨機器人每爬一層樓就會放一桶水,并收到一個回執單,表示任務完成。
但這時某層有 61 級台階,機器人還是上了 60 級就直接給水放下來,結果沒收到回執單,然後它就一直放一直放,問題不就出現了麼。
此外,還有一些更複雜的情況我們就不讨論了。
雖說現在系統會為閏秒做一定适配,但誰保證一定不會出錯呢。
更關鍵的是下次不一定是加 1 秒,是減 1 秒。這情況目前還沒遇到過,誰敢保證不會有新問題呢。
>/該不該取消閏秒?
看到這裡,大家也能理解這些科技巨頭為啥要取消閏秒了。
他們認為取消閏秒,其實過個 1000 年都沒啥大問題,差不太多。
嗯,話這麼說也沒錯,但後代可能要罵你了,問題丢給他們是吧?
其實早在十幾年前,就一直有人說要取消閏秒,但也有不少人反對。
“ 系統崩潰明顯是自己沒處理好,其他人怎麼就沒問題? ”
“ 閏秒讓大家維持了精确的時間,也讓大家沒脫離世界時,依然可以和地球自轉,和太陽同步。”
還有更騷的反對原因,比如英國是因為閏秒可以讓時間和世界時一緻。
世界時也就是格林尼治時間,取消了閏秒,那引以為豪的格林尼治時間相當于被抛棄了。
英國格林尼治皇家天文台
大門外的24小時制電子大鐘 ▼
>/有沒有更好的方法?
當然,這些科技巨頭也并不是想單純幹掉閏秒,而是想要一種更好的方案。
比如 Meta 提出一個叫 Smearing 的方案,就是把 1 閏秒分散到 17 個小時裡慢慢閏。
此前,谷歌搞的是一種“ 提前閏 ”的方案。
它在服務器時鐘裡每天加個幾毫秒,這樣要加閏秒時,調整幅度就不至于觸發大問題。
還有人提出把閏秒換成閏分,閏時。意思就是每相差 59 秒再加一個閏分,降低一下調整頻率。
但不管怎麼說,我認為不管是閏秒,還是提前閏,“ 閏 ”這種機制一定要存在。
因為人類對于時間的概念,根本上還是來自太陽。
自古以來,咱們擡起頭看到太陽東邊升起就是上午,西邊落下就是晚上。
日出而作,日落而息。人類生活隻要是和太陽綁定的,自然就離不開世界時。
隻是這種和太陽保持聯系的方式,這種“ 閏 ”的機制,或許還需要一個更好的方案。
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!