欢迎光临散文网 会员登陆 & 注册

计算机date时间和‘千年虫事件’

2023-02-26 22:24 作者:linuxcv8868  | 我要投稿

一、千年虫事件

1、‘千年虫事件’名词解析。

千年虫事件,又叫做。别名:Y2K bug。

首先,要明确一点:‘千年虫事件’是一种程序处理日期上的bug(计算机程序故障),而非病毒。

千年虫问题产生的原因是:使用计算机程序的智能系统,它的年份使用两位十进制数来表示,因此,当日期从后,系统将无法正常识别“00”表示的2000年还是1900年,从而在跨世纪的年份、日期处理时产生计算错误,引发各种各样的计算机业务处理系统和控制系统的功能紊乱。

如果’千年虫‘问题没有得到及时的解决,那么我们的生活将出现意想不到的混乱……

怎么样,看过这些例子,即使你还没有买电脑,也不会觉得千年虫与你一点关系没有吧?……

2、应对2000年计算机问题的解决方法。

此时,有的小伙伴可能会说“ 怕个锤子”,我用的是Linux系统。

^_^,别着急,您往下看:

二、Unix/Linux 2038问题

如同Windows的‘千年虫事件’,Linux也将遇到同类问题:

‘2038问题’ 即 32位的Unix/Linux操作系统时间溢出问题。我们知道Unix系统的‘生日’是,该bug隐患也是由此产生。因为当时用来写Unix/Linux的是C语言,C语言中用 time_t 来代表时间和日期,time_t 是整数int 型的,它用来记载

这个数据是以32位存储的,第一位是符号位,其余的31位用来存数字,所以它的最大值为:2^32-1 = 2147483647。也就是说,从Unix系统的 生日 算起,最多可以用到03时14分07秒。

到时数字不会自动增加,而是会变为-2147483648,而这串数字代表的时间是1901年12月13日20时45分52秒,这会导致很多的程序出现问题,甚至崩溃。

Linux系统的几种时间:

1、时间戳:(date)

2、UTC时间和本地时间。(timedatectl)

Linux UTC时间是指格林威治标准时间,同时是世界标准时间,不受地理位置的影响。

本地时间是指不同地区的本地时间,它受地理位置的影响,比如中国的本地时间是东8区,而美国的本地时间是西6区。

3、避免因时间问题而造成错误。

(特别是docker容器服务内,外时间/时区的同步问题。)

4、clock或hwclock 查看硬件时间。

2038这个bug不仅比千年虫更隐蔽,而且会影响系统最底层的时间控制功能。

所以,相比会导致应用层程序出现问题的‘千年虫事件’,业界公认  会更具有破坏力。

相信随着科技的进步,UNIX的‘2038年问题’将会迎刃而解。

但就事实而言,目前许多UNIX系统都有足够的能力服役到2038年而毫无问题。~

因此,如果有意添购电脑主机,而且有预期会使用到那个时候,最好是选购电脑。

关于 您还有什么大胆的想法?欢迎留言评论 ~

                                                                                                                   

                                                                                                            bilibili@隔壁de老樊

计算机date时间和‘千年虫事件’的评论 (共 条)

分享到微博请遵守国家法律