自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Unix這顆大雷,真的會讓電子設(shè)備癱瘓嗎?

安全
新年伊始,萬象更新,今天不發(fā)那些網(wǎng)絡(luò)安全新聞,聊聊輕松點的話題,給大家在元旦假期里解解悶。業(yè)內(nèi)一直盛傳的Unix時間的雷,真的會讓全球電子設(shè)備癱瘓嗎?

新年伊始,萬象更新,今天不發(fā)那些網(wǎng)絡(luò)安全新聞,聊聊輕松點的話題,給大家在元旦假期里解解悶。業(yè)內(nèi)一直盛傳的Unix時間的雷,真的會讓全球電子設(shè)備癱瘓嗎?

昨天,幾個安全圈好友聚在一起喝酒,不知怎么就聊到了“千年蟲”的問題。當年開發(fā)計算機操作系統(tǒng)的那幫大神們親手埋下的雷,在時間的流逝下慢慢爆出了各種匪夷所思的安全BUG。千禧年Y2K的雷是Windows,而Unix的雷則是在2038年爆發(fā)。

Unix的雷是怎么埋下的?

話說再1969年,貝爾實驗室的大神Ken Thompson曾利用老婆回娘家的假期,開發(fā)了一個操作系統(tǒng),它叫Unix。沒錯,就是咱們現(xiàn)在使用的那個Unix,開發(fā)它大概用了三周(夸張)。看來,老婆回娘家可以大幅提升已婚男人創(chuàng)造力,這在全球范是統(tǒng)一的。

在開發(fā)過程中,他遇到了一個嚴重的問題:如何在Unix中表示日期和時間?最簡單的辦法是用一個字符串來表示,例如1970-09-17 00:00:30.751,但這明顯不是最好的辦法。最后Ken決定用一個整數(shù)來表示日期和時間,也就是Unix 紀元時間,并將1970年1月1日00:00:00設(shè)定為開始時間。

所以Unix 系統(tǒng)的時間計算方法其實是用秒數(shù)來表示系統(tǒng)時間。換句話說當下的時間(2024年1月1日00:00:00)是從1970年1月1日00:00:00走過多少秒的時間,即系統(tǒng)時間 = 基準時間+秒數(shù)。感興趣的朋友,可以訪問time.is/Unix網(wǎng)站,可以知道從1970年1月1日00:00:00到現(xiàn)在一共過去了多少秒。

由于Ken將Unix時間確定為32位整數(shù),這就導致一個很嚴重的系統(tǒng)BUG,32位的有符號整數(shù)最大值是2147483647(距離1970年1月1日00:00:00走過了2147483647秒),簡單換算下Unix時間為2038年1月19號 03:14:07 UTC,再往后就沒了。

一旦越過這個時間最大值,Unix系統(tǒng)時間將會在內(nèi)部被表示為一個負數(shù),并造成程序無法工作,因為它們無法將此時間識別為 2038 年,甚至還有可能調(diào)回到 1970 年。這讓很多人想起了千禧年的“千年蟲(Y2K)”事件,因此Unix系統(tǒng)時間問題也被稱為Y2K38。

當然這也不能完全怪Ken。畢竟那時候主流計算機還都是使用16位,所以使用32位整數(shù)來設(shè)定時間已經(jīng)夠夠的了。在他看來,Unix系統(tǒng)能不能活到2000年都是個問題,更別提2038年。但誰能想到,Unix系統(tǒng)竟是如此的強悍,不僅可以和Windows相抗衡,還統(tǒng)治了服務(wù)器端的OS市場,在計算機操作系統(tǒng)的發(fā)展史上占有重要的地位,此后“簡潔,一致性,易使用”被很多開發(fā)人員奉為圭臬。

問題很嚴重嗎?

扯遠了。。

其實解決方案也不復雜,將32 位有符號整數(shù)修改成 64 位有符號整數(shù)(時間長度近300億)。目前Linux內(nèi)核開始全面支持64位時間戳的系統(tǒng)調(diào)用,記得在升級之后看看原來的程序和庫是否使用32位編譯,如果是則需改成64位,否則依然會產(chǎn)生溢出問題。

雖然很多文章將這一問題描述地很嚴重,甚至會導致大部分電腦癱瘓無法工作。但我們認為,這樣的情況并不會出現(xiàn)。距離2038年還有整整14年的時間,以現(xiàn)在電子設(shè)備迭代的速度來看,那時候還有沒有32位的電腦都是個未知數(shù)。

其次,從千年蟲事件來看,最終結(jié)果沒有產(chǎn)生非常嚴重的影響,部分安全問題都控制在小范圍內(nèi),尤其是并且對現(xiàn)實世界產(chǎn)生嚴重影響,相信Y2K38也不會有太過嚴重的后果。Unix對這一BUG也是心知肚明,不可能找不到一個妥善的解決辦法。

最后,祝大家元旦快樂。2024年,你我皆是黑馬!(狗頭保命)

資源來源于互聯(lián)網(wǎng)

責任編輯:趙寧寧 來源: FreeBuf.COM
相關(guān)推薦

2010-04-09 15:07:26

無線電子設(shè)備輻射

2013-11-26 15:12:40

2009-11-16 19:56:55

英特爾CEO互聯(lián)

2010-05-12 11:34:37

WiFi

2022-01-05 00:05:07

安全設(shè)備網(wǎng)絡(luò)

2023-09-05 07:13:08

2015-01-09 15:46:21

戴爾

2009-08-13 10:29:29

UnixLinux開放源碼

2023-03-01 09:39:05

2010-08-19 09:48:41

Unix

2022-03-25 09:39:50

LinuxLinux top

2022-05-09 14:09:23

多線程線程安全

2023-05-31 15:15:53

2009-06-26 09:50:53

網(wǎng)絡(luò)癱瘓廣東電信騰訊

2022-04-26 21:16:48

物聯(lián)網(wǎng)安全網(wǎng)絡(luò)安全

2010-04-07 13:11:01

Unix操作系統(tǒng)

2021-07-13 06:42:58

JavaEquals方法

2011-06-17 10:50:32

Windows 8Windows Pho

2015-03-11 14:49:47

Apple Watch
點贊
收藏

51CTO技術(shù)棧公眾號