硅谷之火:个人计算机的诞生与衰落(第3版)
上QQ阅读APP看书,第一时间看更新

巴贝奇的梦想

上帝保佑,我真希望计算能利用蒸汽进行。

——查尔斯·巴贝奇,19世纪发明家


诗人拜伦和雪莱注意到了科学所带来的变化。在一个大雨倾盆的夏日,他们俩在瑞士消磨时光,就这样讨论起人工生命和人工思维,思考着是否能“制造出某个生物的各个零件,将它们拼凑起来并赋予其体温”。当时在现场的雪莱夫人玛丽·雪莱记住了这场讨论,并在自己后来著名的小说《弗兰肯斯坦》中展开了这一主题。

对蒸汽时代的读者来说,玛丽·雪莱笔下的科学怪人实在令人毛骨悚然。19世纪早期迎来了机械化时代,而机械化动力的主要标志是蒸汽机。蒸汽机最初安在轮子上,是为了推动轮子行进的。1825年,世界上的第一条公共铁路投入运营。蒸汽给当时的人们带来的神秘感,恰似后来的电力和原子能给后世人带来的神秘感。

“蒸汽朋克”计算机

1833年,英国数学家、天文学家及发明家查尔斯·巴贝奇谈起用蒸汽驱动计算,并真的开始设计这么一台机器。巴贝奇声称,这机器若是做出来,可将计算行为机械化,甚至将思维机械化。当时的许多人将巴贝奇当作真人版的弗兰肯斯坦。虽说巴贝奇的设计并未变为现实,但他绝非一名光说不练的空想家。在1871年逝世之前,巴贝奇一直致力于研究他所谓的“分析机”,并从逻辑学和数学最先进的思想中汲取营养。巴贝奇的目的是做出一台能将人们从重复枯燥、令人厌倦的脑力劳动中解放出来的机器,正如当时一些新机器让人们免去了耗体力的苦差一样。

巴贝奇有一位搞科学编年史的同事,同时也是他的赞助人,叫奥古斯塔·艾达·拜伦。她是拜伦勋爵的女儿,师从代数学家奥古斯塔斯·德·摩根,后来成为洛夫莱斯伯爵夫人。奥古斯塔·艾达·拜伦本身既是一名作家,又是一名业余数学家。因此,她能够通过文章和论文向受过高等教育的公众和英国贵族中的潜在赞助人解释巴贝奇的想法。此外,她还撰写了不少文章来介绍巴贝奇的分析机是如何解决高等数学问题的。因为奥古斯塔·艾达·拜伦所做的这些工作,许多人视她为世界上第一位计算机程序员。20世纪80年代初,美国国防部用她的名字命名了Ada编程语言,以此肯定艾达在计算机编程方面的贡献。

查尔斯·巴贝奇19世纪数学家、发明家,早在计算机成功问世100年前就设计了一台“能将思维机械化”的机器。(资料来源:美国圣何塞计算机博物馆历史中心)

玛丽·雪莱创作的《弗兰肯斯坦》引起了当时的公众对新技术的恐惧。因此,奥古斯塔·艾达·拜伦认为,最好能让自己的听众放心,巴贝奇的分析机并没有独立思考的能力。她向他们保证,这台机器本身不会思考,只能根据人的指令行事。其实,巴贝奇的分析机与真正的现代意义上的计算机十分类似,而“根据人的指令行事”这个概念实际上就相当于我们今天所说的计算机编程。

从巴贝奇的设计来看,分析机是一台体型巨大、噪声不小、昂贵无比、外观漂亮且因用了黄铜和钢铁制造而闪闪发光的大家伙。数字存储于由齿轮构成的暂存器上,而数字的加法和转存则通过凸轮和棘轮的运行来完成。根据设计,分析机可以存储1000个数字,每个数字最多50位数。内置存储器容量如今被称为机器的内存大小。按如今的标准来说,巴贝奇分析机的运行速度可以说是龟速——1秒内都无法完成一个加法运算,但实际上它的内存比20世纪四五十年代的第一批可用的计算机以及20世纪70年代的早期微型计算机都要大。

尽管巴贝奇为分析机设计了3种详尽的方案,但他始终未能造出这台机器。他设计的差分机虽简单但也体现了他的雄心壮志,同样也未能造出。在他之后的100多年里,人们普遍认为,当时的机械制造技术无法造出这些机器所需的几千个精密零件。1991年,伦敦科学博物馆负责计算的资深馆长多伦·斯沃德用巴贝奇时代拥有的技术、工艺和材料造出了巴贝奇的差分机。斯沃德的成功揭示了巴贝奇人生中具有讽刺意味的一面。早在别人做出同样尝试的100多年前,巴贝奇就已经成功设计出了一台计算机。他设计的机器实际上是能够运行的,而且在他的年代也是造得出来的。巴贝奇之所以无法实现自己的梦想,全是因为他无法筹集到足够的资金,而这又多半缘于他自己疏离于那些能提供资金的人。

奥古斯塔·艾达·拜伦,又称洛夫莱斯伯爵夫人(1815—1852)推广了巴贝奇分析机,并为其编程,还预言像这样的机器未来能用于做复杂的事情,如创作音乐。(资料来源:约翰·默里出版公司)

如果巴贝奇能圆滑一些或奥古斯塔·艾达·拜伦更富有一些,恐怕就会有这么一台无比巨大的蒸汽计算机在狄更斯笔下的伦敦出现,帮助现实生活中的一些老吝啬鬼算账,也可能蒸汽计算机会与查尔斯·达尔文下一盘国际象棋。但正如玛丽·雪莱所预言的一样,要想制造出会思考的机器,关键是电力。

计算机将披着逻辑的嫁衣“嫁”给电力。

会计算的机器

美国逻辑学家查尔斯·皮尔斯通过讲授英国数学家乔治·布尔的著作,将符号逻辑学从大西洋彼岸带到了美国。在这个过程中,皮尔斯从根本上重新定义并极大丰富了布尔代数。布尔以无可争议的方式将逻辑与数学整合到了一起,而皮尔斯大概是19世纪中期最了解布尔代数的人了。

不仅如此,皮尔斯还有其他发现,他发现了逻辑与电力之间的联系。

到了19世纪80年代,皮尔斯发现,布尔代数可用于模拟电气开关电路。布尔逻辑的真/假完全映射了电流流经复杂电路中开/关的方式,换句话说,逻辑可以用电路来表示。这就意味着电力驱动的计算机和逻辑机是可以构造出来的。它们不只是小说家的空想,它们可能会实现,而且最终定会实现。

皮尔斯有一名叫艾伦·马昆德的学生,他在1885年还真的设计出了一台能够进行简单逻辑运算的电力逻辑机,但是还是没有造出来。皮尔斯用来解释如何模拟布尔代数的开关电路是计算机的一个基本组成部分。这个装置的独特之处在于能够管理信息,这一点和电流或机车完全不同。

机械开关为电回路所替代,使得计算设备的体积可以变得更小。事实上,第一台电力逻辑机是由本杰明·布拉克设计并制造出来的便携式装置,体积小到可以装进公文包中。这台制造于1936年的布拉克逻辑机可用于处理三段论形式的逻辑语句。譬如说,将“男人终有一死;苏格拉底是男人”编入机器,逻辑机可接受“苏格拉底终有一死”的推论,而拒绝“苏格拉底是女人”的推论。后者这类错误的推理会关闭回路并触发机器的警告灯,表示发生了逻辑错误。

布拉克逻辑机是一台功能有限的专用机器。然而,当时问世的大多数专用计算装置都是用来处理数字问题而不是处理逻辑问题的。早在皮尔斯还在研究逻辑与电力之间的联系时,赫曼·霍列瑞斯就在设计一台制表机,以进行1890年的美国人口普查的计算。

霍列瑞斯的公司最终被一家企业合并了,这家企业后来更名为国际商用机器公司(简称IBM)。到20世纪20年代末,IBM靠向企业售卖专用计算机器盈利,让这些企业能够将日常的数字计算工作自动化。但IBM的机器还不是计算机,也不是像布拉克逻辑机那样的机器。它们不过是被过分美化的大型计算器而已。

计算机的诞生

克劳德·香农在其麻省理工学院的博士论文中解释了如何利用电力开关电路模拟布尔逻辑(查尔斯·皮尔斯在50年前就曾预言过)。受到该论文的鼓舞,IBM的高管于20世纪30年代同意斥资制造一台基于机电式继电器的大型计算机器。他们给了哈佛大学教授霍华德·艾肯一笔在当时颇为可观的经费——50万美元,用以研制Mark I, Mark I是一台受巴贝奇分析机的启发而设计的计算装置。巴贝奇设计的是一个纯粹的机械装置,相比之下,Mark I是一个电力机械装置,它以继电器为开关,继电器阵列则作为数字存储空间。这台机器运行时噪声非常大,继电器不停地开关,咔咔地响个不停。1944年,Mark I问世并受到广泛赞誉,人们都说科幻小说中的电子大脑终于成为现实。但是IBM的高管却高兴不起来,因为艾肯在为这台计算机揭幕时并未提及IBM的资助。IBM为这笔投资感到懊悔。但原因还不止如此,在Mark I研制工作开始之前,其他方面的技术已取得了新的进展,这使得Mark I尚未问世就已然过时。

赫曼·霍列瑞斯发明了世界上第一台大规模数据处理装置,并于1890年成功应用于美国人口普查。他是数据处理行业的鼻祖。(资料来源:IBM档案)

电力驱动正在为电子驱动让路。当其他人将蒸汽驱动的巴贝奇式机器换成电气继电器时,爱荷华州立大学的数学和物理学教授约翰·阿塔纳索夫看到了将电气继电器换成电子元件的可能性。在美国参加第二次世界大战前不久,阿塔纳索夫在克利福德·贝里的帮助下设计出了ABC。ABC是阿塔纳索夫-贝里计算机(Atanasoff-Berry Computer)的首字母缩写,这台设备的开关装置采用的不是继电器,而是真空管。

这个开关装置的更新换代是一次技术性飞跃。理论上说,以真空管为开关元件的机器运算起来比继电器机器更快速、更高效。但ABC和巴贝奇分析机一样,也未能问世,这也许是因为阿塔纳索夫所筹集的经费还不到7000美元,远不足以建造这台机器。不过,阿塔纳索夫和贝里确实组装出了一台简单的样机。他们用大量的电线和真空管拼出了一台粗糙的台式计算器。通过将真空管作为开关元件这一举措,阿塔纳索夫大大推动了计算机技术的发展。相较于继电器开关,真空管的高效使得计算机的面世成为现实。

霍列瑞斯人口普查计算机器为美国1890年的人口普查节省了一个数量级的时间。(资料来源:IBM档案)

托马斯·沃森1914年加入霍列瑞斯领先的数据处理公司,后将公司改名为IBM。(资料来源:IBM档案)

真空管是抽掉了空气的一种玻璃管。托马斯·爱迪生发现,电子在某些条件下能在真空中流动,而李·德·福里斯特利用“爱迪生效应”最终将真空管制成了电子开关。20世纪50年代,真空管被广泛应用到电视机、计算机等电子设备中。现如今我们仍可以看到应用显像管的计算机显示器或电视机屏幕。

到20世纪30年代,计算机的诞生已经是顺理成章。计算机似乎也注定是价格昂贵的大块头专用设备。体积大、价格高的问题几十年后才得以解决,但打破单一用途这一点在当时就已提上日程。

真空管20世纪50年代,计算机中到处都是真空管,如图中这台IBM 701处理器。(资料来源:IBM档案)

英国数学家阿兰·图灵曾设想过这样一台机器,这台机器的目的只有一个,即读取某一可描述任务的编码指令,并根据指令自行完成任务。这个想法在当时可谓前所未闻。若一台机器真的能够完成指令描述的所有任务,那么它就是一台真正的通用设备。或许在图灵之前没有任何人有过如此宏大的想法。但在10年之内,图灵的想法就变成了现实。那些指令变成了程序,而图灵的设想在另一位数学家约翰·冯·诺伊曼的手中变成了一台通用计算机。

将计算机变成现实的大部分工作都是第二次世界大战期间在秘密实验室中进行的。图灵就是这样工作的。1943年,美国费城莫尔电气工程学院的约翰·莫奇利和约翰·埃克特提出了一个关于计算机的想法。很快,他们就和美国军方开始合作研发电子数字积分计算机(Electronic Numerical Integrator and Computer,简称ENIAC)。一旦成功,它将成为第一台全电子数字计算机。除了用于信息输入与输出的外围设备,ENIAC就是一台纯粹的真空管机器。

发明ENIAC的功劳归谁向来是有争议的。ENIAC可能是根据莫奇利与阿塔纳索夫会面后形成的想法设计出来的,但至少ENIAC是真实存在的。莫奇利和埃克特吸引了不少才华横溢的数学家加入ENIAC项目,其中包括聪明绝顶的约翰·冯·诺伊曼。冯·诺伊曼加入了ENIAC项目,并为建造ENIAC做出了许多贡献,他还为一台更加复杂的电子离散变量自动计算机(Electronic Discrete Variable Automatic Computer,简称EDVAC)提供了基本设想。人们对冯·诺伊曼的贡献也报导很多。

约翰·莫奇利ENIAC的设计者之一,图为他在1976年的大西洋城电脑节上向早期个人计算机发烧友演讲。(资料来源:戴维·阿尔)

冯·诺伊曼将莫尔电气工程学院的重点从技术方面转移到了逻辑方面。在他看来,EDVAC不仅仅是一台用来计算的设备。冯·诺伊曼觉得,除算术运算之外,EDVAC应该还能进行逻辑运算,并能以代码符号进行运算,而且那些以代码符号进行运算和解释的指令本身也应该是编入机器的代码符号,并用以继续操作运算。这是现代计算机概念中最后一个根本性洞见。冯·诺伊曼规定EDVAC应该能根据指令来编写程序,而这些指令本身是作为数据输入计算机的,这为存储程序计算机创建了标准。

ENIAC世界上第一台全电子数字计算机,于1945年12月问世。(资料来源:IBM档案)

1945年5月之后,冯·诺伊曼提出将ENIAC改为EDVAC那样的可编程计算机的方法,阿黛尔·戈尔斯坦编写了能让机器更易操作的语言(包含55种操作)。从那以后,再没有人以最初的操作模式来运行ENIAC了。

1946年年初,ENIAC开发完成,它的运行速度比继电式计算机快1000倍。但尽管是电子计算机,ENIAC运行起来仍然咔咔作响。ENIAC就是一屋子滴答作响的电传打字机、滋滋转的磁带驱动器以及满墙相对安静的电子线路板。ENIAC有20000个开关元件,重约30吨,耗电150千瓦。尽管功率很大,但任何时候ENIAC一次只能处理20个十进制数字。不过在完全制造完成之前,它就已经派上了大用场。1945年,ENIAC被用于美国新墨西哥州洛斯阿拉莫斯市原子弹测试的计算。

第二次世界大战结束之后,那些秘密实验室开始解密他们的工作成果和设计,由此出现了一个新兴产业。制造计算机立马成了一门生意,而且由于计算机这种设备本身的特点,这还是一个大产业。工程师莫奇利和埃克特刚刚走出ENIAC的成功光环,就帮助雷明顿打字机公司迅速转型为斯佩里通用自动计算机公司。随后的好几年里,Univac这个词成了计算机的代名词,就像提到舒洁(Kleenex)大家就会想到面巾纸一样。但斯佩里公司也有一些强大的竞争对手。经历了Mark I项目的失望后,IBM的高管们重新振作起来,着手制造通用计算机。两家公司形成了不同的运作风格。IBM的员工都身着蓝色条纹西装,而斯佩里公司的大楼里则满是穿着运动鞋的年轻毕业生。不知是公司形象好还是商业能力强,没过多久,IBM就从斯佩里手上抢到了行业领头羊的位置。

不久,大家用的多数计算机都是IBM制造的了,而且IBM的市场份额还在随着市场扩大而不断增加。其他的计算机公司也先后成立,一般都接受了曾在IBM或斯佩里受训的工程师的指导。位于明尼阿波利斯市的CDC公司脱离了IBM,随后霍尼韦尔公司、宝来公司、通用电气公司、RCA公司和NCR公司都纷纷开始生产计算机。不到10年的时间,这8家公司就称霸了羽翼渐丰的计算机市场。由于IBM的营业额遥遥领先于其他7家公司,当时这8家公司常被戏称为“白雪公主与七个小矮人”。

约翰·冯·诺伊曼 博学多识,为计算机编程以及ENIAC和EDVAC做出了奠基式的贡献。(资料来源:美国圣何塞计算机博物馆历史中心)

不过,“白雪公主与七个小矮人”很快就会被一些傲慢的行业新贵教训了。20世纪60年代出现了一款新型计算机。比起先前的计算机,这种计算机体积更小、价格更低,借用当时风靡的迷你裙的概念,人们将这种计算机称为“迷你计算机”(小型机)。生产小型机的公司中,最值得一提的是波士顿的DEC公司和加州帕洛阿尔托的惠普公司。这些公司当时生产的计算机就是图灵和冯·诺伊曼所指的通用计算机,它们更小巧,更高效,功能也更强大。不久之后,计算机的核心技术取得了重大突破,这使得计算机在功能、效率和小型化几个方面取得了惊人的发展。