计算机的发展历史

一、前言

电子计算机(Computer)可以说是当代社会最重要的工具, 没有之一。
就拿人的基本需求——衣食住行来说, 随便举个栗子。

  • 衣: 电商平台
  • 食: 外卖平台
  • 住: 租售平台
  • 行: 自动驾驶

可以看出当代社会已经无法离开互联网了, 而每一个互联网服务的背后, 都是一台又一台的计算机在处理数据、提供服务。
那么, 计算机的历史, 到底该从何说起呢?

二、计算机历史

2.1 Calculating Tool

计算机, 顾名思义, 首先是一种计算工具, 而最早的计算工具, 可以追溯到何时呢?

  • Abacus(算盘):2500 BCE(before common era)发明于两河流域
  • Astrolabe(星盘)
  • Slide rule(算尺)

2.2 Computer

计算机的英文单词Computer, 实际于1613年第一次出现,那时该词还只是表示一种职业.
或者我们是不是可以说, 人变成了一种计算工具?

2.3 Stepped reckoner(莱布尼茨乘法器)

1694年Gottfried Leibniz(没错, 就是那个莱布尼茨)发明了Stepped reckoner.
这种机器可以做加减乘除四则运算, 而且支持16位结果的显示和8位数的输入
stepped_reckoner

2.4 Difference Engine(差分机)

Charles Babbage于1822年提出差分机, 简单来说, 差分机就是一台多项式求值机, 只要将欲求多项式方程的前3个初始值输入到机器里, 机器每运转一轮, 就能产生出一个值来。
Charles Babbage于1849设计了Difference Engine No. 2(差分机二号), 这台机器可以进行相当复杂的数学计算,具有31位的精度。
这些机器在Babbage生前, 都没有真正地彻底地完成, 只完成了一部分。直到1985年时,伦敦科学博物馆按照Babbage的图纸, 才打造了一台完整的差分机2号, 这台巨大的手摇智能机械计算机, 长3.35米, 高2.13米, 有4000多个零件, 重2.5吨。
difference_engine

2.5 Analytical Engine(分析机)

Charles Babbage在制作差分机的基础上, 于1837提出了分析机的模型。
分析机能用多项式展开的方法计算对数和三角函数, 具体的计算过程则是用打孔卡片输入, 完成类似汇编语言的程序指令。正是因为这种开创性的思想, 虽然Babbage最终没有完成该机器, 只是提出了机器模型, 却仍然被认为是计算机之父。
analytical_engine

而分析机历史上的另一关键人物则是Ada Lovelace, 她于1843为Babbage的分析机模型编写了假想程序,也因此被认为是世界上第一个程序员.

在1842年与1843年期间, Ada花了9个月的时间翻译意大利数学家Luigi Menabrea讲述Charles Babbage计算机分析机的论文。在译文后面, 她增加了许多注记, 详细说明用该机器计算伯努利数的方法, 被认为是世界上第一个计算机程序。因此, Ada也被认为是世界上第一位程序员

PS: 著名的逆向软件IDA Pro的图标, 也是以Ada为原型

还有些值得一提的点就是, 上面提到的这些人物中, Luigi Menabrea是第7任意大利首相, Ada是诗人拜伦的女儿…

2.6 Tabulating machine(穿孔制表机)

从1790年开始, 美国每十年进行一次人口普查, 由于人口越来越多, 1880年开始的第10次人口普查, 历时8年才完成, 为了能够更高效的统计人口, 美国政府向社会招标寻求更高效的方式, 最终Herman Hollerith脱颖而出。
1888年, Herman Hollerith设计完成了穿孔制表机,用于1890年的美国人口普查。
后来, Herman Hollerith成立了相关制表机公司,却因经营不善, 1911年与另外3家公司合并成立CTR公司(Computing-Tabulating-Recording Company), 1924年, CTR更名为International Business Machines Corporation, 缩写就是IBM。制表机公司作为其子公司继续运营到1933年。
tabulating_machine

想要了解更多穿孔制表机的历史, 可以参考制表机:穿孔时代的到来[2] 这篇文章

2.7 Harvard Mark I

在整个计算机的历史中, 经常能见到IBM的身影, 其中便有这台Harvard Mark I。
Harvard Mark I其实是使用者哈佛大学为该计算机起的名字, 设计生产者IBM称这台计算机为Automatic Sequence Controlled Calculator(ASCC)。
该计算机是1944年IBM为二战同盟国制造的计算机, 是世界上最大的计算机, 也是世界上第一台实现顺序控制的自动数字计算机。
Harvard Mark I主要供海军舰船局(Bureau of Ships)用于计算弹道和编制射击表, 也曾在曼哈顿计划中计算有关原子弹的问题。
而之所以这台计算机体积如此庞大, 是因为该计算机的基本组件是继电器(Relays), 用电磁控制的机械结构, 而不是后来的电子计算机.
havard_mark_i

现代计算机大多用冯诺依曼架构, 而这台计算机用的哈佛架构, 即将程序指令存储和数据存储分开的结构。(哈佛架构这个名字的来源, 应该也不言自明了…

2.8 Harvard Mark II

在Harvard Mark I之后, Howard H. Aiken主持了Harvard Mark II的制造, 并于1947年完成, 因此也被称作Aiken Relay Calculator
关于Harvard Mark II的最重要的一个趣事就是: 1945年9月9日, Harvard Mark II出现故障, Grace Hopper经过一天的检查, 发现是继电器中有一只死飞蛾,这也是术语 Bug 的起源。
havard_mark_ii

而关于Grace Hopper此人, 却是有更多故事了.

Grace Hopper发明了世界上第一个编译器——A-0 系统; 还是COBOL之母; 于1985年11月升职为海军少将, 是美国第一个到达这个官阶的女性。

grace_hopper

2.9 Thermionic valve/Vacuum tube(热电子管/真空管)

刚刚说到, 1945年, 二战时期的Harvard Mark计算机竟然还是电磁机械结构的, 难道是电子计算机所需要的基本元件, 一直还没有发明出来吗?
其实不是这样的, John Ambrose Fleming于1904年就发明出了世界上第一个真空管。
真空管(Vacuum tube)其实概念上很宽泛, 可以泛指二极、三极、多极真空管, 而 Fleming 发明的真空管只允许电流单向流动, 是真空二极管。
实际上任何只允许电流单向流动的电子部件,都叫做二极管, 真空管只是第一次实现了实用的小型的二极管。
thermionic_valve

2.10 Triode vacuum/Audion(三极管)

1906年Lee de Forest在Thermionic valve基础上加入了控制电极,制作了三极管。
而Lee de Forest也因此被誉为是电子学之父
triode_vacuum

2.11 Colossus Mark 1

既然二极、三极真空管早就发明出来了, 为何到20世纪40年代制作的计算机还有电磁机械结构?
其中一个原因就是使用真空管制作计算机成本太高, 一直到40年代, 真空管的成本终于下降。
顺其自然地, 1943年12月, 在Tommy Flowers的主导下, 第一台使用真空管制作的计算机Colossum Mark 1制作完成了, 也被认为是第一台可编程的电子计算机。这个时间点诞生的计算机, 显然都是为二战服务的, Colossum Mark 1就被放置在Bletchley Park, 用于破解德军的加密报文。
说到Bletchley Park(布莱切利园), 它在二战期间, 是英国政府进行密码解读的主要地点, 比如Enigma密码机等。2012年, ITV还出品过一部英剧 The Bletchley Circle (布莱切利四人组), 剧中的主人公便是二战时曾在Bletchely Park工作过的人员。(不过该剧本身却是平平无奇, 并不推荐…)
colossum_mark_i

2.12 ENIAC

Colossus Mark 1及后来的一系列Colossus Mark计算机, 虽然可以说是可编程的电子计算机, 但实际是, 内部具有特定的程序片段, 再通过人工调整开关和插头的组合, 实现不同程序片段的组合, 完成不同的功能, 最重要的是, 它不是图灵完备的, 因此也称不上是可编程的, 只能说是是可组合的。
第一台可编程的电子计算机, 1946年在宾夕法尼亚大学完成,也就是计算机教材中最常提到的ENIAC, ENIAC是第一台真正的通用可编程电子计算机(General Purpose Programmable Electronic Computer), 它是图灵完备的, 虽然在操作上, ENIAC也还是通过机械式的plugboard(插线板)实现不同的程序, 但是在本质上发生了变化。
eniac

2.13 Transistor(晶体管)

基于真空三极管的计算机, 虽然实现了电子化, 但体积还是过大, 从上面每一代计算机的图片上也可以看出。直到1947年,贝尔实验室的John Bardeen、Walter Brattain和William Shockley发明了晶体管(Transistor), 自此之后, 计算机的体积迅速下降,三位也因此共同获得了1956年的物理学诺贝尔奖。
transistor

不过大概是大师总是有点脾性的,三人间的关系并没有维持长久,发明了晶体管后不久,三人小团队便因种种矛盾分崩离析。实际上,1947年Bardeen和Brattain在发表第一个以锗半导体做成的点接触晶体管过程中,申请的专利竟然都没写小组长Shockley的名字,Shockley得知之后十分Shock…一怒之下,一个月后也以自己的名义提出了使用P-N结面制作接面晶体管的方法(其实也是他本人对自己的工作一直做了保密工作,可真是同组异梦呢…)

不过在晶体管以外,这三人单独拿出来,也都有一些有趣的小故事可说,就借此说些题外话叭。

也许你知道中国第一个诺贝尔奖获得者是谁, 但是你知道第一位出生在中国的诺贝尔奖获得者是谁吗?
没错, 就是三人组中的Brattain, Brattain于1902年2月10日出生于中国厦门, 也就成为了第一位出生在中国的诺贝尔奖得主
你知道谁是第一位两次获得诺贝尔物理学奖的人吗?
竟然又是三人组中的一员?! Bardeen因BCS理论对超导电性做出了合理解释,因此获得了1972年的诺贝尔物理学奖,是第一位两次获得诺贝尔物理学奖的人,也是截止本文写作时间(就算作2020年12月31),唯一一位两次获得诺贝尔物理学奖的人
AMD, Intel 乃至 硅谷的一系列公司有什么共性吗? 或者说硅谷为何成为了硅谷呢?
总算得说到Shockley了, Shockley和贝尔实验室分道扬镳后,来到美国西海岸即加州,创建了肖克利半导体实验室(Shockley Semiconductor Laboratory),为了公司的发展,他特意从东部召来八位年轻人(Julius Blank, Victor Grinich, Eugene Kleiner, Jean Hoerni, Jay Last, Gordon Moore, Robert Noyce and Sheldon Roberts)。要知道当初美国的技术中心还在西部,这八位年轻人完全是被Shockley的科学声誉吸引过来的。可是无奈Shockley的确没有管理才能,最终这八位无奈出走,创办了自己的公司Fairchild Semiconductor(飞兆半导体/仙童半导体),获得了成功,且至今仍存活着,而从Fairchild中走出的其他人,又创办了National Semiconductor、AMD、Intel等知名公司,最终造就了硅谷传奇。甚至这八人中,有被称为“硅谷市长”的Robert Noyce,有提出摩尔定律的Gordon Moore…还有很多细节可以看看文章[3]和文章[4]

2.14 TRADIC

转回正题,有了晶体管之后,晶体管计算机的出现也就顺理成章了。
1954年,美国贝尔实验室研制成功第一台使用晶体管线路的计算机TRADIC,装有800个晶体管。不出例外的,TRADIC也被用于军事用途,主要是海军雷达系统中。
tradic

2.15 IBM 608

虽然TRADIC总算用上了晶体管,虽然在此之前,发明了那么多的计算机,但却还没有出现一款可以让普通人接触的计算机,都是用于军方、政府等机构,甚至于都没有很好的量产,给每台研制成功的计算机起名,大概就是基于这种背景叭。
终于到了1957年,IBM发布了IBM 608,第一个完全晶体管构建且可以在市面上买到的电子计算机。它有3000个晶体管,每秒能执行4500次加法,80次左右的乘除法。自此,计算机算是开启了商用化的道路。
ibm608

2.16 Integrated Circuits

当所有技术都已经成熟,物理学难题逐一解决,工程师剩下的追求就是将计算机越做越小,而计算机越来越小的发展历史其实就是集成电路的发展历史。

  • 1903年,Albert Hanson发明了Printed Circuit Boards(PCBs)
  • 1958年, Jack Kilby发明了第一个germanium IC.
  • 1958年,Jay W. Lathrop & James R. Nall发明了光刻技术
  • 1959年,Robert Noyce(也就是上文提到的“硅谷市长”)发明了第一个silicon IC,也因此被称为father of modern ICs.
  • 1965年,Gordon Moore提出了摩尔定律
  • 1968年,Robert Noyce & Gordon Moor创建了Intel
  • 1971年, Faggin完成了Intel 4004 Microprocessor,是Intel第一款推出的微处理器,也是全球第一款商用微处理器
  • 1970s,VLSI(Very Large Scale Integration) Software技术也开始了大规模的发展,最终,让我们现在看到的10nm、7nm等技术成为现实

2.17 Non-volatile Memory

计算机世界中,最重要的就是数据,计算机处理的是信息,而这些信息全部都是用数据来表示的,那么如何来存储这些数据,也是个必然需要解决的问题,在计算机的发展历程里,存储工具也在不停的更新换代。

  • 在计算机发展早期,数据是用Punch cards或者Paper tape存储的
  • 1944年,J. Presper Eckert发明了Delay Line Memory
  • 1940s, Jay Forrester发明了Magnetic Core Memory
  • 1950s, J. Presper Eckert & John Mauchly在UNIVAC计算机中使用了Magnetic Tape
  • 1950s,除了Magnetic Tape,同时也有计算机使用Magnetic Drum Memory,而这一技术实际上是Gustav Tauschek在1932发明的
  • 1956年,IBM 305 RAMAC成为第一个使用了Hard disk drives的电脑
  • 1972年,RAM Integrated Circuits发明,成为Flash和SSD的技术基础

2.18 Program

计算机的发展,除了硬件的推动,软件的发展也是必不可少的一部分,编程语言在计算机硬件发展之初也就随之诞生了。除了最原始的二进制式的指令编制方法,编程语言的发展也是一直与时俱进的。简单罗列下各个时代的编程语言的发展。

  • 1947年,Kathleen Booth发明了汇编语言
  • 1952年,Grace Hopper发明了Arithmetic Language Version 0, 算是世界上第一个高级编程语言,同时创造了第一个编译器
  • 1957年,John Backus发明了Fortran,用在IBM
  • 1959年,在Grace Hopper的建议下,研发了COBOL(Common Business-Oriented Language),实现了上层编程语言的统一, 不同机器不同的编译器
  • 1960s,诞生的有Algol, Lisp, Basic
  • 1970s,Pascal, C, Smalltalk等被发明
  • 1980s,C++, Objective-C, Perl
  • 1990s,Python, Ruby, Java
  • 2000s,Swift, C#, Go……

三、小结

以上所有计算机的发展历程,最终被Kino做成了一张图,仅供参考。
summary

Footnote


  1. 1.Wikipedian. “电子计算机,” November 8, 2020. https://zh.wikipedia.org/wiki/%E7%94%B5%E5%AD%90%E8%AE%A1%E7%AE%97%E6%9C%BA.
  2. 2.逸之. “制表机:穿孔时代的到来,” November 10, 2019. https://www.jianshu.com/p/49f23b77dced.
  3. 3.Martin Groeger. Shockley Semiconductor,” July 8, 2000. http://www.silicon-valley-story.de/sv/shockley.html.
  4. 4.Wikipedian. “硅谷,” January 27, 2021. https://zh.wikipedia.org/zh-cn/%E7%A1%85%E8%B0%B7.