看热闹者终归属于外行,了解内情之人可不会因为测试系统崩溃了,就认为演示搞砸了;恰恰相反,其揭示了“千年虫”的真实存在和可能危害。
瞧着真正的目标群体,无不脸色凝重,主导这一切的首富先生,难免暗爽。
香江的银行多如过江之鲫,虽然在1980年代银行危机当中淘汰了一批,但大多属于运营不规范的华资银行,算是自寻死路地秋后算账,而环境宽松的香江,做为世界金融中心之一的地位并没有改变全球各个主要银行,几乎都在香江设有分支机构。
这就无形当中方便了把眼前这个活生生的实验成果,传递给世界范围内所有银行的总部你们需要升级现有计算机系统,来防范“千年虫”的危害了。
不得不说,为了制造这个it商机,唐焕不是一般地煞费苦心。
要知道,想找一个像香江这样有国际地位的金融中心,来做演示平台并不容易;而让恒生银行和新鸿基银行这样运营公认优秀的机构,冒着影响声誉的风险,联合当试验品,也没有那么简单但不找如此有份量的例子,又怎么会有说服力?
各家银行代表的反应,证明了本次演示取得了理想的震撼效果。
所谓的“千年虫”,源于计算机处理数据的固有方式自然界的数字是连续而无限的,而计算机空间只能离散而有限地表示。
比如,用1个字节即8比特,表示正整数,那只能描述出0到255总共256个数字。
这个现象的实质就是,在编制软件程序解决现实问题的时候,bug往往出现在处理极限数据的时候,诸如数据溢出等等。
在此类情况下,用1个字节表示的正整数255,再往上加1的话,计算机如果不主动报错,那返回的结果往往是0因为真正的二进制数字串里进位到最高位的那个“1”,计算机无法表示,直接截断,只剩下了后面8位的“0”。
这只是一个最抽象、最基础的原理,实际的情况要复杂得多。
在1980年代中期以前,尤其大型机开始兴盛的1950到1960年代,不论内存还是硬盘,存储设备非常昂贵;能够接受的廉价解决方案,也就是穿孔卡片和磁带。
举一个普通人最容易接触到的例子,1977年推向市场的家庭电视游戏机雅达利2600,内存仅为128个字节。
迫于如此沉重的成本压力,计算机表示年月日,通常只有6位,形如1970年1月1日为“”,年份的前两位“19”被省略掉了。
再举一个更广为熟知的例子,那就是原本时空里中国的一代居民身份证相比于后来的二代居民身份证的18位编码,少了3位,其中2位就是省去了4位年份数字的头两位。
基于那个数字溢出原理,这种计算机表示时间方法,到了2000年的时候,得到的结果很可能就是1900年。
由此产生的危害有多严重?
就银行领域而言,不好意思,你要倒闭了,储户利息凭空增加几十年;就税务领域而言,对不起,你破产了,欠国家100年的税;就电信领域而言,你要是敢在1999年12月31日23点59分打两分钟跨世纪的电话,那么恭喜你,电信公司给你的账单,很可能就是一辈子打电话的账单“100年减去2分钟”。
诸如此类的情况,还只是计算机自动执行程序造成的可预料危害,而由于像采用不严格数学算法计算闰年等等的程序员人为失误,会让具体情况更加变幻莫测。
另外,软件系统当中,还有一个习惯,即把“99”之类的极限数字,用于表示档案“删除”、“废弃”等特殊含义。
所以,一旦2000年临近,问题不仅限于莫名其妙地计算错误,还可能伴随着稀里糊涂的数据丢失。
事实上,早在几十年前,asii美国信息交换标准代码之父鲍勃·贝莫,便第一次提出了“千年虫”的问题,并希望ibm这样的大企业、iso之类的国际组织,以及政~府,来关注其危害,但反响寥寥。
毕竟,当时距离2000年还比较遥远,而存储器的成本,实在是难以承受之重。
现在,“千年虫”问题再被正式提出,境遇和之前显然大为不同。
首先,首富先生的影响力不是鲍勃·贝莫这位工程师能比的;其次,今年距离2000年,不能再说“遥远”了;最后,不论半导体存储器还是机电式硬盘,单位成本都在急剧下降,足以容纳那些看起来冗余的数据了。
唐焕把全球各家银行的代表聚到一起,观看一个活灵活现的例子,其结果就是,大家都吓坏了,纷纷表示,要向总部汇报“千年虫”问题给自己带来的冲击。
由于“千年虫”是一个晦涩难懂的问题,利益相关方可以从危害的角度认识它、重视它,但媒体在报道的时候,就肯定没有那么专业了,怎么博眼球怎么说。
其结果就是,恒生银行和新鸿基银行的不少储户,开始人心惶惶。进而跑到柜台取钱。
这个情景,让那些不爽唐焕的人幸灾乐祸不已让你显摆,玩脱了吧,恒生银行和新鸿基银行好不容易养成的名誉,眼瞅着毁于一旦,没准会迎来恐慌性的挤兑浪潮。
早有准备的首富先生,肯定不会让居心叵测者如愿,当即与恒生银行、新鸿基银行发出联合声明两家银行只是使用老设备进行了一次测试,并不表示整个系统真的存在“千年虫”问题。事实上,通过和哲儒、方圆等厂商的合作,“千年虫”问题已经得到了稳妥的预防。为了让储户安心,自己将赠送一份“千年虫”险,以确保存款万无一失。
有了这粒定心丸,恒生银行和新鸿基银行的储户数量,不减反增。