写在前面——欢迎来到神奇的01世界
笔者从小对计算机痴迷,它实在过于神奇,能打字,能游戏,能传讯于千里,但除了比同龄人接触早、用得溜,其实也并无多少了解。后来如愿进入这个专业,然而大学的教程也并不系统,东拼西凑学了些知识,对计算机仍然知之甚少。如今越了解越觉得,计算机真真是人类最了不起的发明,而且在我看来没有之一,以它庞大的结构设计、高深的数学理论、精湛的制作工艺、天文级的运行速度,叫任何其他人造物都好不黯然失色。
这就是我为何喜欢计算机的原因,就像崇拜一个圣人,从小至今不渝。
然而计算机本身浩瀚如海,发展速度更是惊世骇俗,对于绝大多数从事本专业的人来说怕是穷尽一生也无法知其全部。有一天基友又犯抽了,摁开光驱时突然说,计算机只能识别0和1,怎么就能靠这两个数,摁一下,它就弹出来了。我知道完了,这家伙又在提最简单却最难答的问题,便只好随便扯一下门电路,除此之外脑子里一片浆糊。后来我又拿这问题转问他人,所得答案也并不比我的好出多少。网上一搜,即便有些零散的优质内容,也并不完整,或者未能达到我的预期。是啊,计算机归根究底是怎么实现的,大家搞了那么多年的计算机,怕是没几人能有模有样地回答上来。
嗯,计算机归根究底是怎么实现的?
这是一个细思极恐的问题:一恐你身为专业人士最终竟对它几乎一无所知;二恐哪怕你略知一二,也表达不清,你所知那些恐怕别人也都知道,而若要将其描述给外行人,更是不知从何说起。
于是我给自己挖了巨坑——写个详介计算机实现原理的科普系列,研究研究0和1究竟如何改变了世界。
经过初期的资料整理,发现要讲清楚这件事,最好的方式不是像多数教材那样直接拿现代的机器开刀,而是从最古老的计算方法说起,看看人类是怎样一步步从蒙昧无知的状态到构筑如今神乎其神的01世界的。把历史看透了,计算机里头纷繁复杂的原理也便一目了然。
从最原始的结绳与契刻,到古代主流的算筹与算盘,再到后来渐渐自动化的机械式与机电式计算机,早在电子计算机出现之前人类历史就经历过了浩浩荡荡的工具变迁,每一种计算工具的发明、计算思维的产生、计算方法的运用,都是人类思想的质跃,每个节点看似是令人惊叹的神迹,却又是历史必然。
在发展分期上,我参考了一本前苏联专著——1984年中译的《计算机发展史》,根据组成原理的本质差异,将计算机的发展阶段分为手动时期、机械时期、机电时期和电子时期。