sp; 这样就有八个字节了,这是范含省吃俭用的结果,好像不能再少了。
为了以后兼容起来不麻烦,还是要尽可能的照顾方方面面,该浪费的地方就是要浪费。
ix文件系统只保留文件的最后修改时间一个值,没有创建时间、最后访问时间之类的,这次范含也只用一个。只不过,这一个值就占了八个字节,双精度浮点型。公司里面的其他人都觉得这次是过份小心了。
没办法,为了把“千年虫”问题扼杀在萌芽阶段,眼下付出点代价还是值得的。
所谓“千年虫”问题,指的是由于原来dos系统使用两个字节存储年份,使得2000年会被当作1900年对待从而引发的问题。这两个字节,实际上是两个字符,比如1968年会被存储为字符“6”和字符“8”,而并不是数字“六十八”。
二十世纪末,就因为这个原因,全世界着实恐慌了一阵。结果,除了一些小问题,基本上算是平平安安。从某种意义上讲,“千年虫”问题是炒作出来的问题,并不是真得那么严重。
各类unix系统就不存在“千年虫”问题,取而代之的是“2038”问题。
这是因为在unix系统内部,日期和时间是合在一起表示为一个值的。具体说,是采用四个字节32位带符号整数表示从1970年1月1日0时开始流逝的秒数。2的31次方秒大约是68年,所以到了2038年,也面临死线。
这类问题的解决方案没等到2000年就已经提出来了,就是采用双精度浮点型表示日期时间值,数值的意义通常是从某个起始时间开始流逝的天数。计量时间的零点,通常选择在1899年12月31日0时,至标准就是这么确定的。范含这次的选择却是1753年1月1日,即目前历法“儒略历”正式采用的头一个整年。
整数部分很好理解,小数部分也很好理解,05表示半天,不就是12个小时么?采用这种方式,能够以微秒的精度计算宇宙年龄,自然一劳永逸。
业内人士对于这些问题多半是很清醒的,除了一些旧代码和老式的数据库应用之外,影响其实有限。当然,即便如此,解决这个问题也仍然需要很大代价。毕竟热力学第二定律在那儿摆着呢:打烂一个旧世界容易,伟人们大手一挥就能办到,相比之下,建立一个红彤彤的新世界,恐怕不那么简单。
遗憾的是,并非所有人都是“业内人士”。
除了一撮整天宣传“末日审判”的职业传教士,一撮炒作几百年前江湖骗子诺查丹马斯胡言乱语的神秘主义者,一撮唯恐天下不乱以便混水摸鱼多发文章好骗取稿费的“新闻工作者”之外,还有无数对于计算机技术了解甚少却胆量甚大的社会活动家大放厥词。在这种氛围中,真正理智的声音已经被彻底淹没了。
那一阵儿,真是闹得慌。
另外,学术自由已经成为了全球共识,没谁敢规定写手就不能研究计算机。
那还是在1999年的时候,世界同种刊物中发行量最大的《科幻世界》杂志曾经刊登了著名科幻作家何夕的一部著名作品:《祸害万年在》。全文分作上下两个部分和一个尾声。上篇讲述公元1999年底,面对“千年虫”问题,人类在联合国的指挥之下,通过回拨时钟,将问题延迟了六十年,主人公之一何百夕教授带领全球的计算机工作者一同努力,在2060年到来之际终于来得及将两个字符的年份换成四个字符;下篇讲述公元9999年底,面对“万年虫”问题,人类在联合国的指挥之下,通过回拨时钟,这一次将问题延迟了九十年,主人公之一何万夕教授带领全球的计算机工作者一同努力,在10090年来临之际终于来得及将四个字符的年份换成两个字节的带符号短整型;尾声则简略的描写了公元32767年12月31日,已经使用了计算机三万余年的人类面对“32768年虫”问题时那无可奈何的恐慌。行文至此,戛然而止。
虽然不知道其他同行们的反应,不过在记忆里,当时的同学们以及后来的同事们看到此文的时候,无不捧腹狂笑。直到今天,每当想起这篇文章,范含脸上的笑容仍然灿烂得有如那天边的明月。
该操心的都操心了,剩下的就看那帮程序员了。在整个系统没完成之前,自己还能轻松一阵子,这段时间正好可以拿来琢磨琢磨别的。
比如……眼前的这块“板砖”。
一个长方形的木头盒子,下方有十三个按键:09、“+”、“=”、“clear”,还有一个开关;上方是用十四根发光二极管拼成的两个“8”字。
看来这就是“二十以内加法计算器”了。
“实际上是十五以内加法。”法金描述。
“怎么用啊?”范含问。
“先按一个数……”法金回答。
范含按了个“6”。
“按加号……”汤姆提醒。
范含照样按了。
“再按一个数……”杰瑞说。
范含这次按了一个“8”,然后开口问,“最后按等号是吧?”
“嗯。”
结果显示出来了:14。
“不错嘛!”范含言不由衷的称赞几句,“里面的东西就是那个两位的微处理器?”
“呃……不是,”法金回答,“处理器是四位的。”
“哦?”范含诧异,“不是说好先造个两位的玩玩么?”
“试过了,”汤姆回答,“不行。”
“为什么?”
“首先为了表示每个输入的加数,就需要四位。”杰瑞说,“对外的数据线就是四位的。”
“用两位数据线分两次读也可以,不过外部电路就要复杂一些了。”法金解释,“对于这样的应用来说,实在划不来。再说难度也不大,目前的技术完全能办到。”
“其次,为了表示十五以内的数,至少需要四位,”汤姆说,“内部用了一个四位的寄存器。”
“两个两位寄存器和一个四位寄存器是一码事,”法金解释,“没有本质的区别。”
“指令长度如果只用两位,那最多就只有四条。”杰瑞说,“为了这个目标,我们去掉了减法的功能,只剩下复位、赋值、加、取值,刚好四条。”
“虽然如此,但是指令寄存器和其他寄存器一样,都是四位的。”法金解释,“故意留着一半不用,何必呢?”
“如此说来,指令、数据线、字长都是四位,当然算四位处理器了?”范含总结。
“对。”
恐怕这次又是自己的问题,范含想,不能怪他们“抗命不遵”。
勉强用两位的架构实现不是不可以,但是他们三人刚才的话说得已经很明白了,得不偿失。再说,那样造出来的东西还必须附加一大堆外部电路,恐怕就不能算作是“通用处理器”了。
复杂度是一个整体,单纯削减一个方面的工作量只会增加其他方面的工作量而已,在所有方面之间找到一个平衡才是正解。正如拿笔在纸上手算平方根,用十进制阿拉伯数字计算,几乎人人都会。但是用六十进制的巴比伦数字和用二进制数来算,同样的麻烦。
看来这些员工并不是应声虫,像大多数日本人那样,对于上司明显不合理的命令也会不折不扣地执行。不过这也是日本的环境使然,干好了是上司的功劳,干砸了也是上司承担责任,自己尽到了部下的义务就可以了。
“很好很好,干得太好了!”范含大肆赞扬三人,“这才是积极主动的工作态度呀!”
“哪里哪里……”法金谦虚。
是金子就会闪光,法金虽然进公司最晚,表现却最突出,现在已经隐隐约约成为硬件研发部门的领军人物了。
“申请专利了么?”范含赶紧问。
“申请了,也批准了。”法金说,“就是……”
“什么?”
“虽然还没有接到正式的律师函,”法金说,“不过德州仪器扬言要起诉我们侵权。”
“啊?”范含大吃一惊,“不会吧?!”
第贰拾贰章 重组 (上)[2/2页]