震驚!您的 iPhone 和 Mac 或在 2554 年罷工

《點點滴滴》 是每週專欄,專注於每週多個領域的技術進展。我叫亞當·康威,十年來我一直在報道科技並追蹤前沿。如果您對某些內容感興趣並希望看到相關報道,您可以通過 adam@xda-developers.com 聯繫我。

您是否曾看到某個軟件或服務稱某事發生於 1970 年 1 月 1 日?這是 Unix 紀元或 POSIX 時間,很多服務把它用作計算非閏秒的固定點。在 Windows 系統中,微軟採用 1601 年 1 月 1 日,而 Mac 在從 HFS 切換到 APFS 之前使用 1904 年 1 月 1 日,之後切換到 Unix 紀元。然而,蘋果的這種實現方式意味着,一旦到了 2554 年,您的 MacBook 或 iPhone 就會將日期回滾至 1970 年 1 月 1 日。

隨着向 APFS(蘋果文件系統)的過渡,Mac 採用了 Unix 紀元(從 1970 年 1 月 1 日開始)來計時,這與大多數基於 Unix 的系統相契合。然而,macOS 中的 APFS 實現意味着您的 Mac 只能表示到 2554 年 2 月 6 日的日期。在此之後,日期將回繞到 1970 年 1 月 1 日。雖說這是個很遙遠的問題,可它給蘋果當前文件系統中的日期設定了上限,也就意味着到那個時候,您的 Mac 上好多東西或許會出狀況。

當然,讀到這篇文章的人能活到那一年的可能性微乎其微,如果到那時蘋果公司仍然存在並且仍在發佈新的 MacBook 和 iPhone,他們大概率已經想到解決辦法了。然而,這個問題過去嚴重得多。之前,MacBook 和 iPhone 的限制日期曾是 2040 年 2 月 6 日,只有當蘋果轉向 64 位計時的 APFS 時,這種情況才發生了改變。蘋果使用 64 位無符號整數納秒,這就是相比之下限制低的原因。

這種限制在很大程度上也只針對蘋果。雖然 32 位 Unix 機器在 2038 年 1 月 19 日會面臨問題,但 64 位的 Unix 機器能夠計數到 2 的 64 次方秒。這是 1.8446744e+19 秒或 584,542,046,091 年。取決於機器是用秒、毫秒還是納秒來進行測量,會改變它可以計數的年數,而以納秒計數就是蘋果的限制“僅”到 2554 年的原因。

就 Windows 而言,微軟能夠表示從 1601 年 1 月 1 日到大約 30828 年這段時間。這是因爲 Windows 以 100 納秒的間隔計算時間,這種方法唯一的缺點在於,在基於 Windows 的機器上無法進行納秒計數。然而,這種精度水平很少被需要,對大多數用戶來講,100 納秒的滴答已經完全足夠好了。

然而,蘋果用戶實際上沒有什麼可擔心的。蘋果幾乎肯定會更新其操作系統,以支持範圍更廣的日期,而且倘若到 2554 年這真成了問題,大概會提前很多年。我們所談論的是一個 500 多年以後的日期,所以,聲稱這在任何方面、以任何形式或形態是個問題,顯然是極爲誇張的。

既然如此,紀元在計算機中是一種有趣的跟蹤時間的方式,不同的操作系統以不同的方式進行。蘋果的方式在技術上是最準確的,但其有“缺點”,也就是比其他方式結束得更早。

如果您在 2554 年看到這篇內容,並且您有一部舊 iPhone 或 Mac,那麼我覺得您可能得備份您的數據。