主题:【原创】中国早期计算机研制中的一些小故事 引子 -- 萨苏
萨弟写过大楼以后,一直想找一张当时大楼的照片,找来找去,只有这一张不完整的,且作参考吧。
计算机的仿制,和仿造步枪手榴弹不一样,这是因为计算机里面要安装程序的。没有程序,即便硬件完全原样仿制成功,计算机照样不会动,即便把里面的程序完全按照物理的方式复制成功(这基本是不可能的),也没法按照我们的要求制作新的程序。弄清它里面的程序是怎样写的,可以怎样修改,是破解台式计算机之谜的关键。
下面这段有些枯燥,不想费脑筋的朋友可以略过。
面对只有使用说明的计算机,夏启胜先生提出的破解方法今天想来还让人不寒而栗 – 读出ROM里面的数据来,一个bit一个bit地还原它的内容,以此为依据就可以揭开国外台式计算机的运转机理和程序设计方法来。
不能不说这是一个天才的想法 – 我们对这套系统一无所知,其存储器里的内容就算读出来,也是一大堆bit,不知所云。这就象给你一篇外星人的文章,然后让你把外星人的语言还原出来一样,这怎么可能呢?!你就是听一千遍,文章再长,也是一团混沌。
但是,假如你知道这篇文章里面每句话会引起什么后果,就有了解决问题的曙光。比如开始第一句一念,就有一个卫兵立正,第二句一念,就有一个大臣跳楼,那事情就好多了,因为你知道这样一句话会导致怎样的后果。以此类推,如果运气好,慢慢地就能把全部的内容破译出来。
远有福尔摩斯破获跳舞的小人,近有郭沫若解析甲骨文,莫不是用这个办法。
在当时的计算机里面,唯有ROM中的数据,算是有迹可循。
这时候就得说说ROM是什么,它是干什么的。所谓ROM,大名“只读存储器”,里面的程序是计算机出厂的时候存在里面的,不能修改。它的功能相当独特,专门执行计算机启动时候检查硬件设备,激活输入输出等工作。换句话说计算机一接电,就会首先运行ROM里面的程序。ROM里面的内容,和硬件结合最紧密,执行的是对计算机最原始的要求。
干了这么多年的计算机,咱们的计算机研究人员,对计算机开机的时候需要ROM里面的程序干哪些“最原始”的事情,还是比较了解的,无非是检查各个接口,初始化各个设备,判断有无故障,发出蜂鸣音之类,万变不离其宗。于是,ROM里面的那些Bit到底是干什么的,就有了判断的依据。
如果弄懂了ROM里面的内容,就为揭开整台计算机的秘密打开了大门 – 第一,它的基本运行模式,比如怎样读写设备,怎样判断故障,我们都能够了解。甚至可以从软件的写法反推对硬件有哪些要求,否则那些电子元件也不是每一个都能从外观就明白该怎样仿制的;第二,以此可以判断该计算机中其他程序的内容,都弄清了,这台计算机也就研究透了,可以仿制了。
但这也是一个疯狂的想法。
把ROM的内容读出来本身就不容易,就算读出来了也是打孔的纸带而已,拿着这个东西琢磨它的编程机理,想想也会让人发狂。这需要极优秀的想象力,然后再用极大的毅力将其验证,每一次验证,失败几乎是必然的,成功若真是失败的儿子,那它的繁殖率足以在自然界被自然淘汰。
这大概可以算作真正的暗算了。
好了,刚才选择略过的朋友可以回来了。
实际上,这个方法后来推广开来,在国际封锁的日子里,我们颇有一些计算机机型,就是用这种方法仿制出来的。
没有的选择,这批无论原来学数学的,学物理的还是学无线电的研究人员,就这样统统投入了疯狂的工作之中。难怪这些父执辈们看到我辈面对汇编语言一筹莫展深感不解 – 就这样简单的玩意儿你们还能玩不转?
这项工作的艰苦,几十年后还让父亲言之胆寒。不过,这倒锻炼了他极强的程序分析能力,他后来专攻软件评价的研究,到德国GMD公司工作的时候,德方人员追着给他做助手,原因就是认为这人的分析能力太强了,他做出来的论文肯定一鸣惊人。事实上到1996年,父亲当时的助手莫妮卡博士还在拿两人合写的论文当敲门砖参加国际会议呢 – 父亲写这论文的时候是1984年,当时和父亲一起在西德的同事都知道,其实,莫妮卡博士,不过是给把它从英文翻译成德文而已。。。
但是,这样干,多少是有点儿超过人类所能承受的限度,所以,中间不出事儿,那才是奇怪的。
[待续]
- 相关回复 上下关系8
🙂那位开车的朋友心里该是何等的沉痛啊~唉... 肖邦 字0 2009-03-30 20:17:58
🙂实际上后来为了责任问题还打了官司 萨苏 字66 2009-03-30 20:20:11
🙂抢沉宝的沙发! 气吞万里如猪 字0 2009-03-30 19:46:33
🙂【原创】中国早期计算机研制中的一些小故事 真正的暗算
🙂记得以前上课的时候 karmin 字61 2011-11-07 21:15:58
🙂智商是天生的 7 艾义 字184 2009-04-16 05:03:38
🙂得,看不懂名词照样花。 养吾斋主 字0 2009-04-03 23:45:07
🙂其实最难的不是读汇编语言 29 eslay 字538 2009-04-02 17:22:42