手机,作为我们日常使用的电子产品,也可以用来刷电视剧、社交、购物等,但对它的了解不多。
其实手机上也有很多我们不知道的小“秘密”。例如,我想很多朋友不知道,手机的系统时间最晚只能设置到2038年。那么问题来了。2038年会发生什么?
2038年是许多操作系统的“最后一年”
最近小黑在网上看到了一篇很有趣的帖子。有网友发现了自己的手机,想知道系统时间最多可以设置到2038年。2038年会不会有特别的意义?当然这里说的系统时间不是日历上的时间,而是手机设置的系统时间设置。
这也引起了小黑的好奇心:手机的系统时间真的只能设置到2038年吗?带着这些疑问,布莱克特别找到了多台电子产品实验,测试结果使布莱克大吃一惊。
首先,布莱克测试了常用手机操作系统的系统时间设置,发现这是真的。
Android手机的系统时间可以移至2037年12月31日,IPhone手机可以绘制到2038年,但只能停留在2038年1月。布莱克自2038年以来多次尝试设置iphone,但最终手机的时间回到2038年1月,无法再推进。
在计算机操作系统中,这个问题更复杂。MacBook Pro中的macOS只能将时间设置为2038年,但Windows 10中的系统时间可以设置为2052年。另一些朋友说,他们的电脑可能设定在2076年。
为了准确地确定系统的“最后时间”,一些网民将系统限制时间准确地定在2038年1月19日03:14:07秒,下一秒,系统显示时间直接回到了遥远的1901年。
对我们的用户来说,这种事当然最好不要发生。例如,当朋友们醒来发现手机时间是1901年时,他们会认为自己在做梦,或者正在过去。
误以为“通过”是小事,更重要的是,这会给我们的生活和工作带来很多麻烦。(约翰f肯尼迪)。
“2038年的问题”真是个系统性的锅
那么,为什么操作系统有设置系统时间的限制呢?
这个问题要追溯到现在很多操作系统的起源。以我们目前使用的Android和iOS操作系统为例,它们都属于UNIX操作系统,UNIX是20世纪70年代的产物。当时计算机的硬件资源非常有限,为了节约资源,当时程序员采用了“time_t”数据模式存储时间。此模式使用带符号的32位整数,以系统计算时间(秒)、秒(秒)、二进制(二进制)存储时间。
因此,通过此数据模式可以存储的最大“秒”从二进制数转换为32个1,转换为十进制数则为2147483647秒。
UNIX操作系统的开始时间是1970年1月1日,与上述2147483647秒一起设置为2038年1月19日3:14:07秒。
此时时间已经饱和,将于下一秒溢出。比如一碗那么大,你会往里面倒水,当水超过碗的容量时,水就会溢出来。
出,无法再接纳。同样的道理,这时所有的数值都将向前进一,导致符号位被推到1,其他的31位刚好置于0。届时,系统时间就会重回到1901年12月13日20时45分52秒,使得系统出现错误。
由于时间限制出现的问题也有不少,其中著名的“千年虫”事件差点让全世界崩溃。在20世纪80年代之前,由于存储空间有限,程序员就用年的后两位数字代替年份,比如05/12/94,表示的是1994年12月5日,当时间来到2000年时,系统只会显示01/01/00,这里的00,系统无法识别是1900还是2000,就会出现时间错误。
因此受到影响的行业设备有很多,比如自动化仪器仪表、电梯、警报系统等设备以及美国的AT&T电讯公司,它内部就有超过3.6亿行的应用程序需要检测。虽然这个问题当时已经被程序员解决了,但依然有不少人担心2038年是否还会再次发生千年虫事件。
在小黑看来,发生的可能是很小的。现在距离2038年还有16年,那时小伙伴们的手机早已更新迭代了。除此之外,根据相关消息,2038年的问题可比当年千年虫问题好解决多了,它可能只需要给系统换一个新版本的“标准时间库”就可以了,比如将时间存储由4字节32位改为8字节64位。
当年千年虫问题都被程序员们用windowing时间窗口解决,并在之后的时间里也没有出现任何问题。小黑相信在2038年发生千年虫事件的概率也十分小,所以小伙伴也不用过于担心2038年电子产品就不能使用了。
图源:手机截图、pixabay
1.《【2038年】手机只能设置到2038年,那么2039年会发生什么?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《【2038年】手机只能设置到2038年,那么2039年会发生什么?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/2984557.html