我們習慣電腦一打開就顯示出正確時間,那是因為「時區之王」一直在維護這個資料庫

我們習慣電腦一打開就顯示出正確時間,那是因為「時區之王」一直在維護這個資料庫

ADVERTISEMENT

我們已經習慣了電腦一打開就顯示出正確的時間。但這並是非理所當然的,而是有一位名叫保羅·埃格特(Paul Eggert)的電腦科學家一直在負責維護全世界的時區資料庫。本文原文作者,就是這樣意外的發現了這樣一個網路上關於時區的故事。

我開了一個YouTube頻道,不時地錄製一些短片,記錄如何使用Linux做某些事情。因為用Linux來做一些事情,往往是相當複雜的。 創建我自己可以參考的資料或影片是很好的,如果其他人也發現它很有趣就更好了。

我錄了一個簡短的影片,介紹如何在Linux上查找時區資料庫(tzdb),以找到在某個世界時鐘程式(gworldclock)上表示時區的正確方法。

沒想到,這段影片讓我接觸到了一個奇妙而怪異的世界。 

正如大多數技術人員所知,時區設置是電腦的一個相當基本的特性,大多數作業系統都將其寫入圖形化使用者介面(GUI)。時區與地區相關聯,而設置地區通常是基於粗略的地理位置,使用者可以手動重新寫入。一旦設置好,使用者通常不需要更改它,除非使用者去了其他國家。 

當然,Linux提供一個可以高度定制的環境,是大多數程式設計人員比較喜歡的。這樣我們可以近距離觀察一些神秘的技術是如何運作的。 

如果你想知道你的電腦在Ubuntu Linux中配置的時區,你可以在終端中執行「timedatectl」這個指令。 

而這個特殊的製作過程,讓我在昨天淩晨有了一系列完全出乎意料的發現。 

所有基於Linux和mac的電腦都從一個非常重要的資料庫(時區資料庫)中提取時區。定義時區的過程是集中完成的。這實際上是一件大事,因為人們往往嚴重低估Linux對整個網際網路和我們所知的技術的關鍵作用。

Linux可能只占電腦使用者的一小部分,是電腦迷和電腦開發人員最喜歡的作業系統。但在伺服器領域,它實際上是占主導地位的作業系統,特別是在公共雲端基礎設施上,它正在迅速取代本地基礎設施在從主機向使用者獲取資料包方面所扮演的角色。

從天氣預報到模擬物理實驗,世界上幾乎所有的超級電腦都在Linux上運行。Android是Linux的一個分支。如果您曾經使用過Android設備、接收過天氣預報或造訪過網站,那麼您已經從Linux的存在中受益了。 

時區資料庫(有時被稱為Olson資料或zoneinfo資料庫)有一段迷人的歷史。與大多數資料庫不同的是,時區資料庫比較有趣,以至於有一個關於它的維基百科條目

還有奇怪的一點是,這個資料庫成為了訴訟的標的。事實上,它被認為對全球電腦的運行是非常重要的,以至於ICANN(在許多重要的網際網路關係功能中批准頂層網域名)把它納入了自己的支援。這種情況通常只會發生在某些對網路非常重要的事情上。或者更準確地說,資料庫的維護現在是網際網路號碼分配局(IANA)的責任。 

對於電腦開發人員來說,時區顯然是一個長期存在的威脅,而且時區維護社群目前似乎陷入了一些關於「如何最好地維護這個基本資料庫」的爭論中。 

湯姆·史考特的一段影片指出,處理時區的最好方法就是不要透過將庫整合到程式碼中來處理時區。最好不惜一切代價避免這種情況發生,不然會引發各種各樣的問題。他提到一系列令人發狂的問題、例外情況和矛盾。值得慶幸的是,現在任何開發人員都可以透過簡單地整合時區資料庫來避免這些問題。 

這是維護時區資料庫的人做的吃力不討好的工作。湯姆·史考特的影片可能讓他抓狂了五分鐘,但對這些人來說,解決這些問題是他們整個職業生涯的努力。 

時區管理社群的菁英們都是很嚴肅的人,是科技巨頭和重量級人物。像是著名的Java專家史蒂夫·科爾伯恩(Stephen Colebourne),他最近在tzdn的一系列更新中受到了抨擊。至少我是這麼理解的。

在一篇名為「時區資料庫的大問題」的部落格中,科爾伯恩(Colebourne宣)稱: 「保羅·艾格特(Paul Eggert)是IANA時區資料庫的專案負責人,該職位被稱為TZ協調員。他是該領域的專家,數十年來一直致力於記錄時區資料。不幸的是,他現在無視所有反對他的行動,似乎只有他決心解決一個虛構的問題,只有他認為這是重要的。 」

科爾伯恩的尖銳批評已經引起了其他時區人的憤怒。他們指責科爾伯恩的聲明過於草率。 

看起來,不僅時區巨人們目前還不能就時區資料庫向前推進的最佳方式達成一致,時區的編纂和標準化的整個過程也是一項具有長期動盪歷史的有爭議的政治事務。 

實際上,時區維護過程被嚴格控制,並與主要的行業利益相關者共用。但最終,時區資料庫代表著對其決定的一種最終仲裁,至少在技術上是這麼解釋時區的。 

很多國家的人都受到時區調整的困擾。一名使用者說:「我們有一個亞塞拜然的客戶,他很生氣自己的時區被顯示為亞洲/葉里溫。」 

此外,我還瞭解到,獨立前的愛爾蘭曾實行過自己的時區,後來又被英國人取消了。 

這就是為什麼世界時區社群的官方原始碼讀起來不太像文本資料庫,我認為它是一種完全自成一體的文學形式。 

大多數電腦使用者可能從未聽說過時區資料庫或它的維護人員,但時區維護人員和他的團隊的決定影響著全世界數億使用者的電腦。

我們習慣電腦一打開就顯示出正確時間,那是因為「時區之王」一直在維護這個資料庫

這個項目的負責人是保羅·艾格特(Paul Eggert),他是加州大學洛杉磯分校電腦科學系的電腦科學家。他多年來一直致力於在電腦上協調時區。 

艾格特的學生談起他時,語氣裡充滿了敬畏,據說他是一個對事情非常苛責的人。 

「時區之王」的工作絕不能掉以輕心。他在這種壓力下生活了十多年。可以說,艾格特是世界時區大師,他致力於維護全球時區系統。 

艾格特和一個小團隊的團隊維護的專案位於一個堆疊的底部,而這個堆疊是數億台電腦的基礎。很多初創公司宣稱他們在現有技術上取得了重大進展,還有一些更狂熱的公司宣稱他們找到了將空氣中的水轉化為石油的方法。許多這樣的創業公司將在短短幾年內消失。但時區資料庫不會,因為它不能。 

那些處於技術堆疊最底層的人,那些不知疲倦、吃力不討好地維護著開源專案的人,也在默默無聞地煎熬著。 

昨天我瞭解到了時區資料庫(tzdb)的存在,它提供了時區配置的權威資料,全世界每天都有數億台電腦在使用它。 

在過去的一年裡,我重新安裝了幾十次電腦。電腦上的許多東西要嘛週期性地失效,要嘛根本不能工作,但時區檢測程式在任何時候都能完美地工作,甚至不受夏令時的影響。 

如果不是時區資料庫的存在,電腦上的時間不可能運行得這麼好,那麼我可能會錯過會議,或者在面試中遲到。如果沒有這個時區項目,我的生活可能會有所不同。 

近年來,該專案已納入ICANN的管轄範圍,它的程式碼讀起來像是JSON檔案和歷史小說的混合體。 

雖然我確信這個專案有很多無私的貢獻者,但最終確實還是只有一個人負責維護它。那就是「時區之王」保羅·艾格特。他是加州大學洛杉磯分校的電腦科學家。我們可能都欠他一聲「謝謝」。

36Kr
作者

36氪(36Kr.com)累計發表超過10.8萬條包含圖文、音訊、影片在內的優質內容。氪原創內容體系涵蓋新創公司、大公司、投資機構、地方產業與二級市場等內容模組,設置有快訊、深度商業報導

使用 Facebook 留言
發表回應
謹慎發言,尊重彼此。按此展開留言規則