计算机的发展史

计算机发展的早期历史

算盘

最早的计算设备

算盘的出现是因为社会的规模已经超出个人心算的能力。
说明算盘的使用方法和算盘的变种:
image.png

  1. 星盘——让船只可以在海上计算纬度;
  2. 计算尺——帮助计算乘法和除法;
  3. 各种时钟——计算日出、潮汐、天体位置或计时。
  4. ……

这些设备让原先很费力的事变得更快、更简单、更精确,降低了门槛,加强了我们的能力。将多次提到

随着知识的增长和新工具的诞生,人工劳力会越来越少。 ——计算机先驱 Charles Babbage

Computer 从指代职业变成指代机器
image.png
最早使用“计算机”一词的文献,来自1613 年 Richard Braithwait 的一本书。
image.png

步进计算器——第一个可以做加减乘除的机器

步进计算器由德国博学家戈特弗里德 · 莱布尼茨建造于 1694 年
image.png
但是,即使有机械计算器,在许多现实问题上依然需要很多步才能解决。算出一个结果可能要几小时甚至几天。
image.png
并且这些手工制作的机器非常昂贵,大部分人买不起。

计算表——由“人力计算器”编撰

与其花一整天来手摇 “步进计算器”,不如花一分钟在表里找答案。
image.png

射程表——用计算的方法精确瞄准炮弹

根据环境条件和射程查得炮弹的出射角度。
image.png
但如果改变了炮弹的设计就要重做一张新表。耗时,并且容易出错。

差分机

一种更复杂的机械装置,能近似多项式、近似对数、三角函数等。
Charles Babbage 在 1823 年开始建造差分机。在接下来的二十年,制造和组装 25,000 个零件,总重接近 15 吨。不幸的是,该项目最终被放弃。1991 年,历史学家根据其设计草图完成了差分机的制造。
image.png

分析机

在构造差分机期间,Charles Babbage 想出了分析机,分析机是通用计算机。
image.png
分析机是“通用的计算机”,它可以做很多事情,而不只是特定的运算。甚至可以给它数据,然后按顺序执行一系列操作,它甚至也有内存……但像差分机一样,这台机器太超前了而没能建成。
分析机的研究激励了第一代计算机科学家把很多 Charles Babbage 的点子融入到他们的机器,所以 Charles Babbage 经常被认为是“计算之父”

然而,“自动计算机”的概念(计算机可以自动完成一系列操作)具有跨时代的意义,预示着计算机程序的诞生。

世界上第一位程序员——Ada Lovelace

英国数学家 Ada Lovelace 给分析机写了假想的程序。

未来会诞生一门全新的,强大的,专为分析所用的语言 —— Ada Lovelace

打孔卡片制表机

1890 年,美国政府在人口普查中面临着严重的问题,美国宪法要求 10 年进行一次人口普查以分配联邦资金,国会代表名额等。由于美国人口的迅速增长(移民),1890 年的人口普查预计要 13 年才能完成。
image.png
人口普查局找了 Herman Hollerith,他发明的“电动机械式”打孔卡片制表机用传统机械来计数(结构类似莱布尼茨的乘法器),用电动结构连接其他组件。用带有网格的纸卡通过打孔来记录处理数据。

在会计,保险评估和库存管理等行业,企业开始意识到计算机的价值,如通过提升劳动力及数据密集型任务来获得更多的利润)

image.png
为了满足这一需求,Hollerith 成立了制表机器公司,1924 年与其它机械制造商合并为“国际商业机器公司”,简称 IBM。
到了 1900 年代中叶,世界人口的爆炸和全球贸易的兴起,要求更快、更灵活的工具来处理数据。这些都为电子计算机的发展奠定了基础。

电子计算机的发展

20 世纪的要求计算机有更强的计算能力 人类社会的规模在以前所未有的速度增长:20 世纪上半叶,世界人口几乎翻倍。一战动员 7 千万人,二战 1 亿多人。全球贸易和运输更加紧密。工程和科学的复杂度也达到新高。我们甚至开始考虑登陆其他行星。复杂度的增高导致数据量暴增。 人们需要更多的自动化、更强的计算能力,很快,柜子大小的计算机变成房间大小、维护费用高并且容易出错。而正是这些机器,为未来的创新打下基础。

哈佛 Mark 1 号

IBM 在 1944 给二战同盟国建造了哈佛 Mark 1 号,用于给“曼哈顿计划”跑模拟。
image.png

哈佛 Mark 1 号共有 765,000 个组件、300万个连接点和500英里长的导线。还有一个 5 马力的电机驱动 50 英尺的传动轴以保持内部机械装置的同步。

image.png
这台机器的大脑是用电控制的机械开关——继电器。

继电器和水龙头一样,只不过控制的是电流。

继电器

继电器内的机械臂有质量而无法快速开关。1940 年代的一个好的继电器 1 秒内也只能翻转 50 次。

  • 速度慢:哈佛马克一号,1 秒能做 3 次加法或减法运算,一次乘法要花 6 秒,除法要花 15 秒。而更复杂的操作(如三角函数)可能要一分钟以上。
  • 易磨损:哈佛马克 1 号有大约 3500 个继电器,哪怕假设继电器的使用寿命是 10 年,也意味着平均每天得换一个发生故障的继电器。这是很严重的,因为有些重要运算要运行好几天。
  • 吸引 Bug:这个巨大、黑色、温暖的机器也非常吸引昆虫而导致继电器故障。Grace Hopper 曾说:“从那时起,每当电脑出了问题,我们就说它出了 bug(虫子)”。这就是术语“bug”的来源。

image.png

真空管

真空二极管

在 1904 年,英国物理学家“约翰 · 安布罗斯 · 弗莱明”把两个电极装在一个气密的玻璃灯泡里,发明了一种新的电子组件——热电子管——世上第一个真空二极管。
image.png
其中一个电极可以被加热后发射电子(热电子发射),另一个电极会吸引电子,形成单向流动的电流。

真空三极管

二极管发明后不久,1906 年,美国发明家“李 · 德富雷斯特”在二极管的两个电极之间加入了第三个“控制”电极。
image.png image.png
向“控制”电极施加正电荷,将允许电子流动;施加负电荷,将阻止电子流动。
image.png
因此通过控制线路,可以断开或闭合电路。这和继电器的功能一样。

但真空管内没有会动的组件而不会产生磨损。 并且,每秒可以开闭数千次。

随后,“三极真空管”成为了无线广播、长途电话,以及其他电子设备的基础,持续了近半个世纪。
尽管当时三极管同样很脆弱而昂贵,像灯泡一样会烧坏,但比起机械继电器时代,这是一次巨大进步。
随着成本的减少和可靠性的改进,计算机里百上千个的开关被三极真空管替代,标志着计算机从机电时代向电子时代的飞跃。

巨人 1 号

首次大规模使用真空管的计算机

计算机在英国 布莱切利园 。但编程麻烦,还要配置
巨人 1 号由工程师 Tommy Flowers 于 1943 年 12 月设计完工,布置在在英国的“布莱切利园”,用于破解纳粹通信。
image.png

2 年前,计算机科学之父——阿兰 · 图灵也在“布莱切利园”做了台机电装置——Bombe。 Bombe 的设计目的是破解纳粹“英格码”的通讯加密设备。但严格来说 Bombe 不是计算机

巨人 1 号有 1600 个真空管,总共造了 10 台巨人计算机来破解密码。
“巨人计算机”被认为是第一个可编程的电子计算机。虽然可编程,但繁琐而需要配置。

编程方法:把几百根电线插入插板来让计算机执行正确操作。

通用可编程计算机 ENIAC

1946 年,John Mauchly 和 J. Presper Eckert 设计的电子数值积分计算机——ENIAC 在“宾夕法尼亚大学”诞生。成为了世界上第一个真正的通用、可编程的电子计算机。
image.png
ENIAC 每秒可执行 5000 次十位数加减法。这比前辈快了很多倍。运作了十年完成的运算,比全人类加起来还多。真空管众多让故障很常见(ENIAC 每半天就会出现一次故障)。

1950 年代,真空管计算机都达到了极限。

晶体管

1947 年,贝尔实验室科学家 John Bardeen、Walter Brattain、William Shockley 发明了晶体管,又标志着一个全新的计算机时代的来临。这种新的电子开关,降低了成本和大小,提高了可靠性和速度。
image.png
贝尔实验室的第一个晶体管就展示了巨大的潜力

每秒可以开关 10,000 次; 固态的晶体管体积远远小于继电器或真空管; 更耐用而不易损坏。

这些原因都让计算机更小而便宜。
IBM 很快把所有产品都转向了晶体管,1957年发布的 IBM 608 有 3000 个晶体管,每秒可执行 4500 次加法运算
或 80 次左右的乘除法。
image.png image.png image.png
晶体管有两被半导体材料分隔的电极,和与半导体相连的电极,可以通过改变“门”的电荷控制半导体材料的导电性(有时候导电,有时候不导电)。
如今,计算机里的晶体管小于 10 纳米(而一张纸的厚度大概是 10 万纳米),每秒可以开关上百万次,并且能工作几十年。

晶体管和半导体最初在“旧金山”和“圣荷西”间的加州”圣克拉拉谷“开发。由于生产半导体的常见材料是“硅”,所以这个地区被称为“硅谷”。

肖克利半导体 → 仙童半导体 → 英特尔:后来 William Shockley 搬去了硅谷,创立了“肖克利半导体”。不久,里面的员工成立了“仙童半导体”并创立了当今世界上最大的计算机芯片制造商——英特尔公司。

计算机的应用