一、千年虫是什么啊
千年虫主要是因为当时的主板不支持年的四个字节,年头上的两个字19是固定的,就是当年跳为2000年时,其实会变成1900,而不是2000,所以很计算机协及到时间的可能会出现大量的利率等计算错误。
第二是某些软件在调用时间,不自行设计的计算的时间,而在编程时,也是年四位数中前面固定了19。而这些隐患只有程序员才能修改,而且在编写的程序中太部分对源码加密,造成了修改的难度,并且修改也要担心是否有遗漏,这是马虎不行的。
就是把你的计算的计时间的两个字节的单元设成了4个。老机子就把时间锁在了1945年到2045之间了
二、“千年虫”是指什么?
“千年虫”是程序中的一个结构性缺陷。对于一个系统来说
,只要是有程序使用到了日期就有可能因为两位数的年份表示方
式导致这种缺陷。而日期作为我们日常生活中应用最广泛的概念
之一,大量存在于计算机系统各个层面和功能的程序中,从硬件
中的BIOS(微码)到操作系统、商用软件再到应用系统、历
史文件和数据等各个环节的程序中,都要处理和使用日期数据,
也都有受到千年虫影响的可能性;另一方面,在与计算机自动控
制有关的电话程控交换机、保安、工厂自动化等系统,以及使用
了嵌入式芯片技术的大量电子电器设备中,如果存在进行日期处
理的程序,而其中又恰恰使用了两位数来表示年份,也等于是产
生了“千年虫”缺陷。同时,正因为影响范围非常广泛,千年虫
的隐蔽性也是很突出的一个问题。存在广泛、隐蔽性强是千年虫
的一个最大特点,也是最令人头疼的一个问题。从这一点上来说
,越是信息化程度高的国家或部门受到千年虫的影响会越大。特
点二:危害严重
如果一个系统中发挥关键功能的程序存在“千年虫”缺陷,
那么千年虫发作造成的错误结果是致命的,除肯定会招来损失,
而且往往会有严重的后果。特点三:工程浩繁
除虫工作技术上简单,但工作繁杂、工程量大,需要良好的
工程管理解决千年虫的技术和方法都很简单,这是大家的共识。
但千年虫可能存在于系统任何一个部分的程序中,必须确保找出
影响系统正常工作的每一处缺陷并及时修正,才能让系统顺利过
关,这也造成了巨大而且浩繁的工作量。尤其对于那些开发和应
用时间都非常久远、规模庞大的应用系统程序来说,真是一件令
人望而生畏的工作。比如AT&T公司的报告称该公司就有近1
·6亿行的源程序需要进行清查判断是否存在千年虫。繁杂、巨
大的工作量还造成了工程管理和协调上的困难,如果没有良好的
项目管理,又会反过来影响工程的顺利进展,导致一些其他的麻
烦,使情况变得更加糟糕。
值得一提的是,对于国内来说,由于应用程序的规模、数量
以及应用时间同国外比还有很大的差距,反而使得国内的除虫工
作量要小得多,困难也减轻了不少。说真的,真不知道这应该是
高兴还是悲哀。
特点四:时间紧迫
现在离2000年的时间已经不多了,但千年虫又有着不可
改变的时间期限,所有工作必须在1999年12月31日甚至
更早的时间以前完成,无法推迟,这一点对于很多习惯于做能拖
延的工作的人来说,无疑是很头疼的事。
三、千年虫是什么?
什么是千年虫(2000年问题)
在设计计算机的程序时规定了的年份仅用两位数来表示,那么无论遇到是哪一个世纪的,计算机都会老老实实地取年份中的后两位来表示其年份,决不会采取四位数来表示年份的。也就是说,假如是1971年,在计算机里就会被表示为“71”,而假如是2002年,计算机就会将其年份表示为“02”。这样的话假如要计算相差多大,计算机要用02减去71了。这就是千年虫(计算机2000年问题)。
计算机千年虫(2000年问题)的定义:
2000年问题,就是指在某些使用了计算机程序的智能系统(包括计算机系统、自动控制芯片等)中,由于其中的年份只使用两位十进制数来表示,因此当系统进行(或涉及到)跨世纪的日期处理运算(如多个日期之间的计算或比较等)时,就会出现错误的结果,进而引发各种各样的系统功能紊乱甚至崩溃。
另外,更广泛的讲,2000年问题还包括其他两个方面的问题:
一个是在一些计算机系统中 ,对于闰年的计算和识别出现问题,不能把2000年识别为闰年,即在该计算机系统的日历中没有2000年2月29日这一天,而是直接由2000年2月28日过渡到了2000年3月1日;
另外一个是在一些比较老的计算机系统中,使用了数字串99(或99/99等)在程序中来表示文件结束、永久性过期、删除等一些特殊意义的自动操作,这样当1999年9月9日(或1999年4月9日即1999年的第99天)来临时,计算机系统在处理到内容中有日期的文件时,就会遇到99或99/99等数字串,从而将文件误认为已经过期或者将文件删除等错误操作,引发系统混乱甚至崩溃等故障。这个问题有的时候也被称为“9999虫”。
2000年问题(英文为 Year 2000 Problem)在国际上有各种各样的叫法,比较通俗的一种就是“千年虫”,英文为Millennium Bug,其中 Millennium 是“一千年”的意思。而Bug在汉语中是“臭虫”,它是美国常用俗语,在计算机界表示那些程序开发中没有注意到的漏洞和毛病。2000年问题就是当初设计程序时没有注意到的一个毛病,它在2000年来临时才发作,所以我们把他叫做“千年虫”(Millennium Bug)。另外,国外经常把一千(KILO-)简写为K,所以2000年问题(Year 2000 )国际上也简称为Y2K,其中Y是英语单词Year的简写,2K是2000的简写。
同时,从上面的第三个问题中,我们已经看出,假如只用两位数来表示年份的话,当我们在进行不同世纪里的两个年份之间的计算时,我们会得出多么错误的结果。而对于这个结果,我们目前仅仅感觉到的是它的错误可笑,但当这样的错误一旦发生到关键部门的话,其带来的后果又是不可想象的