文章来自于果壳 ,作者Owl
全球末日到底是哪一天?这种没有厘头的难题一直有着各式各类的离奇谜底。当你开启电话,关闭自动设计时间,往未来的方向滑动数字时,你会发觉时间停在了2038年。
小米、华为可行设计到2037年12月31日,iPhone也只多两天
不但是电话,在电脑上,当你尝试将时间从2037年再往上调度时,会发觉不论怎样按设计按键,日期都不会接着改变。
日期调度超越2038年时,会停在2038年1月1日
2038年到底会产生甚么?为何各式设施都没有办法“逾越”2038年?在网上搜寻2038,你还能发觉有人专门设计了倒计时网页。这此中包涵了一种愈加精准的时间:2038年1月19日 3点14分7秒。而下一秒,你的电子设施将来会穿越回到1901年。
著名的“2038难题”,将在现在爆发。
到“2038年难题”产生,还剩……
2038年,时间“摧毁”体系
难题产生在2038年1月19日 3点14分7秒的下一秒。这一天的03:14:08不会到来,应接你的将来会是1901年12月13日20:45:52。
运用脚本模拟体系时间,会显露时间的跳变(平台 Debian GNU/Linux (内核 2.4.22))丨William Porquet/deepsky.com
关于好多电子设施而言,这是个毁灭性的打击。文献的组建与修改、利用软件的运转、网站体系的同步……时间作为一种要害数值,在全个电子体系里起着一律要紧的效用。因而有一阵子苹果电话的语言声音助手Siri,还把这一天当成了“全球末日”。为何是这一天?Siri回答中的要害词也给出了谜底。
早期Siri关于全球末日难题的回答(新版本体系已没有此回答)
Unix、32位,这两个词让2038年的这一天注定成为末日。Unix是一个操作体系,这类体系中计时形式所以1970年1月1日 00:00:00为基准,按秒为单位发展增减。例如到2022年1月1日0点,只要要用基准值加上1640966400秒。而咱们此刻运用的安卓、苹果体系都隶属类Unix体系,采纳了同样的方案。
电子体系运用0和1对数据发展库存,也便是二进制。假如只用1位数,只能显示0和1,假如2位数,则可行用00、01、10、11区别显示0、1、2、3这四个数。随着位数的增添,二进制可行显示的数也越来越大,但总会碰到上限。假如用32个0、1库存数字,第一位显示符号,0代表+,1代表-,则剩下31位第一大可行显示2147483647。在计算机资源十分宝贵的年代,用32位来放置时间,曾经很足够使用了。
1970年1月1日00:00:00 + 2147483647秒 = 2038年1月19日 3点14分7秒。下一秒,数据就会显露“装不下”的概况,产生流出。此时第一位符号位从0变成1,原本的加号变成了减号,时间忽然穿越来过去。
从上到下区别是二进制秒数、对应的十进制秒数、32位Unix体系时间、实质时间。超越2147483647后,符号位会变成1(负号),全个数字会忽然产生翻转,回到1901年。丨Pemu/Wikico毫米ons
这种存留于将来的难题,它会给咱们带来怎么的作用?回溯过往,一次又一次的“千年虫”难题曾经给了咱们少许预告。
千年之外的千年虫
2000年,千禧年。而在好多利用程序看来,这一年会变成1900年。
同样由于硬件资源宝贵,早期程序运用了年份的后两位数字来显示日期,而前两位数都默以为19。这种不起眼的时间难题,在全个全球激发了庞大的关心。政务体系、银行体系、航空体系等若干体系都可能遭到作用而失效。全世界各地对这一难题发展了响应,试图解决这一难题。我们国家屡次发文重申这一难题的要紧性。美国也公布了相关千年虫难题的法案,以敦促各产业共享消息解决此类难题。
全世界各地对“千年虫”采用行动丨国民日报网站版
多亏大家对“千年虫”的高度重视,让得这一难题在聚集爆发前可以解决。但在此以后,相似“千年虫”的事故却依旧层出不穷。
2010年的第一周,德国约3千万张银行卡同一时间“失效”。持卡人不但没有办法干脆刷卡花费,连在自动取款机上取钱都成难题。这不但作用了本国居民的生活,也让得在外度假的德国人滞留在本地。
源于不同编码形式存留差异,2010在德国的银行体系中被错误地辩别成2016。银行卡也因而“被过期”了。同样的概况显露在运用Windows Mobile体系的电话上:你在2010年第一天收到的新年短信,会被体系显现成2016年。
德国提速修缮了银行体系,所幸无形成很大的损耗。但放眼太空,事宜就没那末容易了。2013年9月,航天器Deep Impact忽然失联,迫使美国航空航天局宣告相干探测任务正规完毕。Deep Impact的首席任务科学家 Mike A‘Hearn以为,这是一种“千年虫难题”。航天器的部分软件没有办法正确辩别2013年8月11日以后的日期,导致计算机不停重启。终归,科学家们失去了航天器的信号。
就在本年年初,“2022年虫”让微软的程序员体验了新年大加班。1月1日,微软的邮件效劳体系Exchange忽然中断,运用该效劳的使用者都没有办法发送电子邮件。微软随后给出了证明,称该难题与日期审查不成功以及新年的浮动相关。容易点说,和2038难题一样,时间“流出”了。幸好微软团队加班加点,在当天解决了该难题。
在未来,“类千年虫”难题必定还会显露。关于可行预料的难题,大家曾经最初尝试提供解决方法。例如运用新的格式存储时间消息。与此同一时间,体系团队提供的新内核也在解决32位平台上的“历史难题”。你还不用太担忧,终归到当时,你应当曾经换了好几波电话了。
只是,再碰到相似的突发Bug也很寻常。由于全球上总在产生情理之间、预想之外的事宜。
参考文件
[1]Year 2038 Problem Countdown。 https://gregnk.com/2038/
[2]The Project 2038 Frequently Asked Questions (FAQ)。 http://www.deepsky.com/~merovech/2038.html#What_operating_systems_and_platforms_are_affected_by_it
[3]Why does Siri say the world will end on January 2038? https://www.quora.com/Why-does-Siri-say-the-world-will-end-on-January-2038
[4]Unix time。 https://en.wikipedia.org/wiki/Unix_time
[5]Unix Time Stamp - Epoch Converter。 https://www.unixtimestamp.com/
[6]Unix-like。 https://www.computerhope.com/jargon/u/unix-like.htm
[7]2038年难题。 https://zh.wikipedia.org/wiki/2038%E5%B9%B4%E9%97%AE%E9%A2%98
[8]华夏解决计算机2000年难题的进展概况。 http://www.scio.gov.cn/xwfbh/xwbfbh/wqfbh/1999/1201/Document/328000/328000.htm
[9]话说“千年虫”。 http://www.people.com.cn/item/hs2000/july.html
[10]Clinton Urges Americans To Act On Y2K Problem。 https://edition.cnn.com/ALLPOLITICS/1998/07/14/clinton.y2k/
[11]Y2K-type bug hits German cash, credit cards。 https://www.eetimes.com/y2k-type-bug-hits-german-cash-credit-cards/
[12]Carry cash as well as a card, says German bank association。 https://www.computerworld.com/article/2759697/carry-cash-as-well-as-a-card--says-german-bank-association.html
[13]Windows Mobile Bug Dates Messages from 2016。 https://www.wired.com/2010/01/windows-mobile-bug-dates-messages-from-2016/
[14]NASA Declares End to Deep Impact Comet Mission。 https://www.nationalgeographic.com/science/article/130920-deep-impact-ends-comet-mission-nasa-jpl#:~:text=NASA%20officials%20declared%20the%20Deep,July%204%20of%20that%20year。
[15]Exchange Year 2022 Problem: FIP-FS Scan Engine failed to load – Can’t Convert “2201010001” to long (2022/01/01 00:00 UTC)。 https://borncity.com/win/2022/01/01/exchange-fip-fs-scan-engine-failed-to-load-cant-convert-2201010001-to-long-1-1-2022/
[16]Email Stuck in Exchange On-premises Transport Queues。 https://techco毫米unity.microsoft.com/t5/exchange-team-blog/email-stuck-in-exchange-on-premises-transport-queues/ba-p/3049447
作者:Owl
编辑:窗敲雨
科学审查:Andrija
本文来源果壳,未经受权不得转载。
“掌”握科技鲜闻 (微信搜索techsina或扫描左侧二维码关心)













