成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Unix時間并沒有出現錯誤

系統
計算從UNIX誕生[注釋1]的UTC時間1970年1月1日0時0分0秒起, 流逝的秒數. UTC時間1970年1月1日0時0分0秒就是UNIX時間0, UTC時間1970年1月2日0時0分0秒就是UNIX時間86400. 這個計時系統被所有的UNIX和UNIX-like系統繼承了下來, 而且影響了許多非UNIX系統. POSIX標準推出后, 這個時間也被稱為POSIX時間.

1234567890是個節日, 一秒鐘的節日. 它不是問題, 不是錯誤, 不是BUG. 我們人類使用的計時系統是相當復雜的:秒是基本單位, 60秒為1分鐘, 60分鐘為1小時, 24小時是一天......如果計算機也使用相同的方式來計時, 那顯然就要用多個變量來分別存放年月日時分秒, 不停的進行進位運算, 而且還要處理偶爾的閏年和閏秒以及協調不同的時區. 基于"追求簡單"的設計理念, UNIX在內部采用了一種最簡單的計時方式:

計算從UNIX誕生[注釋1]的UTC時間1970年1月1日0時0分0秒起, 流逝的秒數. UTC時間1970年1月1日0時0分0秒就是UNIX時間0, UTC時間1970年1月2日0時0分0秒就是UNIX時間86400. 這個計時系統被所有的UNIX和UNIX-like系統繼承了下來, 而且影響了許多非UNIX系統. POSIX標準推出后, 這個時間也被稱為POSIX時間.

UNIX時間錯誤是誤解

可能是因為人類是一種需要精神上的刺激的生物吧, 各種歷法中都存在著各種擁有不同意義的節日. 其中, 很多節日僅僅由于日期的特殊性就被賦予了意義, 例如公歷1月1日的新年, 11月11日的光棍節,愛好節日的人們也沒有放過UNIX時間. UTC時間2001年9月9日1時46分40秒, UNIX時間迎來了第一個"億禧年"(Billennium)[注釋2],  1000000000. UTC時間2005年3月18日1時58分31秒則是UNIX時間的光棍節, 1111111111. 剛剛過去的1234567890, 對應公歷的UTC2009年2月13日23時31分30秒, 對東一區以東的時區來說是2月14日情人節, 以西的時區來說則剛好落在黑色星期五. 傳統上認為黑色星五不吉利的西方媒體, 針對此事進行了玩笑性的報道, 結果被一些居住在其他時區的人們誤讀成了"UNIX時間錯誤"。

  

 丹麥哥本哈根的丹麥UNIX用戶群組織慶祝UNIX"億禧年" 圖為當時所用的倒計時公告牌

無獨有偶, 2012年7月13日也是一個黑色星期五, 而那天的UTC時間11時1分20秒對應著UNIX時間0x50000000(十六進制, 十進制值是1342177280). 不知到了那個時候, 會不會再次有人把它誤解為又一次的UNIX時間錯誤?

2038年的問題才是混亂

UTC時間2033年5月18日3時33分20秒, 是UNIX時間的第二個"億禧年"(Billenniumm), 即2000000000. 然而, 第三個"億禧年"(Billennium)則不會毫無障礙的來臨, 在那之前, 人們先得解決正在變得著名的2038年問題. 和本世紀初的千年蟲(Y2K Bug)問題類似, 2038年問題(Y2K38 BUG)更隱蔽, 而且更難解決. 我們知道計算機內部的一切都是二進制的, 也就是說1234567890在32位系統的內存里實際上是01001001 10010110 00000010 11010010. 這串32位二進制數中, 最高位被用來表示正負符號, 0代表整數, 1代表負數, 所以它能表示的最大數字就是01111111 11111111 11111111 11111111, 即214748367, 對應公歷的UTC時間2038年1月19日3時14分7秒. 到這天的凌晨3時14分8秒, UNIX時間會溢出并變成10000000 00000000 00000000 00000000(十進制值-214748368), 也就是UTC時間1901年12月13日20時45分52秒, 引起和千年蟲類似的混亂.

 

 2038年問題的動畫演示

或許64位可以解決這個問題

2038年問題不僅比千年蟲更隱蔽, 而且它的原因也更接近系統底層. 要解決這個問題, 最簡單的方式是擴展UNIX時間的長度, 用64位數字來表示它. 64位二進制數的實際可用位數是63位, 最大表示到公歷的UTC時間292277026596年12月4日. 如果那個時候人類文明還存在的話, 公元紀年很可能已經因為太難用而被拋棄了. 理想的情況是到2038年, 64位系統已經成為主流, 從而避免特意去修正這個問題所需要的大量開銷. 否則, 人們就必須把新的64位時間拆分成兩部分并分別保存在兩個變量里, 這是一個麻煩而且效率低下的選擇.

[注釋1]: 就像很多其他的節日一樣, 把UNIX的誕生日選在這天只是出于方便. 實際上, 最早的運行在PDP-7上的UNIX在1969年就已經完成了.

[注釋2]: Billennium實際上是"十億禧年", 但是這樣聽起來很奇怪, 所以我用"億禧年"作為暫用名.

【編輯推薦】

  1. 情人節前夕Unix系統將發生時間錯誤
  2. Unix/Linux歷史和大事記(圖)
責任編輯:佚名 來源: cnBeta
相關推薦

2023-08-28 08:24:07

myloaderMySQLGreatSQL

2011-09-23 09:42:25

2009-02-19 20:25:34

SunSolaris發展趨勢

2018-12-18 09:20:06

2020-11-04 10:33:19

數據

2022-07-11 12:37:15

安全運營網絡攻擊

2020-12-14 09:35:20

CentOSRockyLinux

2016-02-15 09:52:21

虛擬現實

2025-03-27 15:21:59

2013-05-06 09:19:36

云應用趨勢云服務云管理工具

2019-12-19 16:46:50

數據恢復軟件云計算技術

2009-03-24 14:16:14

LinuxWindows多核芯片

2022-05-06 08:26:21

babel編譯器

2016-06-03 10:32:53

2010-05-19 09:15:31

云計算

2013-01-06 13:45:14

2017-11-10 09:00:02

Linux桌面版市場占有率

2018-09-26 17:28:15

KubernetesServerless云計算

2021-06-15 16:17:19

Commit報錯事務

2015-03-25 17:57:50

JavaJava糟糕
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一区二区三区日韩精品 | 成人动漫一区二区 | 亚洲天堂影院 | 久久久久久久成人 | 久久久久久国产精品免费免费狐狸 | 精品国产一区二区三区久久影院 | 免费看黄色国产 | 中文字幕一区二区三区四区五区 | 一区二区三区精品视频 | 久久久涩 | 9999视频| 在线观看 亚洲 | 欧美日韩理论 | 日韩欧美不卡 | 精品久久九九 | 中文字幕免费观看 | 国产91在线播放 | 日韩一区二区三区在线看 | 欧美激情精品久久久久久 | 香蕉视频1024 | 51ⅴ精品国产91久久久久久 | 午夜电影福利 | 久久久久久久久久久久亚洲 | 成人黄色电影免费 | 国产区久久 | 国产精品久久久久久久岛一牛影视 | 日韩欧美在线一区 | 亚洲91精品| 日本免费一区二区三区四区 | 精品毛片在线观看 | 国产精品欧美一区二区三区不卡 | 欧美精品片 | 小h片免费观看久久久久 | 国产黄色在线观看 | 淫片专区| 国产午夜精品一区二区三区嫩草 | 日韩欧美三区 | 色综合久 | 91看片免费 | 久久精品久久综合 | 台湾佬成人网 |