从「创新者」看计算机发展史


computer

计算机不是某一个人创造出来的,这其中有很多杰出的人物的参与,他们当中既有匠心独具的创新者,也有绝顶聪明的天才。本文主要根据「创新者」一书中提到的人物和发展轨迹,结合其他相关资料和自己的理解梳理了大概的脉络。(对计算机历史感兴趣的推荐看原书,会详细很多,也有不少精彩的故事)

注:巴贝奇和埃达在 19 世纪 40 年代就有了对计算机的构想(巴贝奇分析机),埃达也因为对巴贝奇分析机的注解,成为计算机历史上的一位重要人物。但因为跟现代计算机距离较远,就不展开了,感兴趣的可以看下「创新者」里的相关章节。

图灵:论可计算数及其在判定问题中的应用

1935 年,图灵对数理逻辑发生兴趣。1936 年发表「论可计算数及其在判定问题中的应用」一文。文章的主题是回答希尔伯特 (David Hilbert)在 1928 年提出的 3 个数学难题之一:系统是可判定的吗?有没有可以判定特定命题是否可证明的方法,会不会出现某些陈述存在不可判定状态的可能性?。图灵机器就是为此提出的一个概念。论文发表后引起美国科学家的重视,应邀到美国普林斯顿大学,1938 取得博士学位。

图灵机器是图灵在他的论文中提出的一个抽象的计算机模型,由下面几部分构成

n个符号S={s1,…,sn},其中有空格符号b∈S ; m个状态Q={q1,…,qm}, 其中有初始状态 q1∈ Q

一条两个方向或一个方向是潜在无穷长的由格子组成的带子。每个格子可以存放一个符号。带子边附有一个读写头,读写头处于某个状态并指向某个格子,可以读写所指格子上的符号,并在带子上左右移动。

5CDDDC9D-7BA4-49CD-B092-9726048E5E1A

图灵的伟大贡献不仅是提出了图灵机器的概念,更重要的是还提出了通用图灵机 (Universal Turing Machine ) 的概念。 现代电子计算机的计算模型其实就是这样一种通用图灵机,它能接受一段描述其他图灵机的程序,并运行程序实现该程序所描述的算法。

香农:继电器开关电路的符号分析

1938年香农在MIT获得电气工程硕士学位,硕士论文题目是「A Symbolic Analysis of Relay and Switching Circuits」(继电器与开关电路的符号分析),首次将电路和数学联系起来。他已经注意到电话交换电路与布尔代数之间的类似性,即把布尔代数的“真”与“假”和电路系统的“开”与“关”对应起来,并用1和0表示。于是他用布尔代数分析并优化开关电路,这就奠定了数字电路的理论基础。

PS:图灵还曾经在贝尔实验室与香农一起讨论过脑科学相关的话题,他们发现各自在1937年发表的论文之间存在一个共同点:它们都证明了采用简单二进制指令操作的机器不仅可以用于解决数学问题,同时也适用于所有的逻辑问题。由于逻辑是人脑思维的基础,因此机器在理论上可以模仿人类的智能。

霍华德·艾肯:马克 1 号

在1937年,一位叫作霍华德·艾肯(Howard Aiken)的哈佛博士研究生正在准备自己的物理学论文。他发现论文中复杂冗长的计算很难使用加法机来完成,于是他游说学校建造一台更加先进的计算机。

哈佛的马克一号借鉴了巴贝奇的很多想法。这是一台数字化的机器,不过它没有采用二进制,它的齿轮表示的是十进制数字。它有一根50英尺长的转轴,上面装有72个计数器,每个计数器可以储存长达23位的数字。完整的机器重量为5吨,长80英尺,宽50英尺。机器的转轴和其他活动部件是通过电力驱动的,但它的计算速度并不快。这是因为它没有采用电磁继电器,而是使用了机械继电器,这种继电器的每次开关都是由电动马达完成的。它计算一次乘法大概要花六秒钟的时间,相比之下,斯蒂比兹的机器只需一秒钟。不过它确实具备了现代计算机的一个基本功能:它是完全自动化的。程序和数据的输入都通过纸带完成,而且它还可以在没有人为干预的情况下连续运作多日。因此艾肯对马克一号的评价是“巴贝奇的梦想实现了”。

莫奇利/埃克特:ENIAC

莫奇利在华盛顿郊区的切维蔡斯镇长大,从小就受到了在这个地区不断增进的科学氛围的熏陶,富有人格魅力,而且十分擅长(和热衷于)解释事物,后来成为了一名教授。

跟其他需要在工作中进行大量复杂计算的人一样,莫奇利也希望发明一台可以完成这些计算的机器。作为一个善于社交的人,他开始四处了解其他人正在做的事情,并将了解到的想法融会贯通——这是伟大创新者之间的一个共同点。

当他决定要制造一台自己的真空管计算机之后,莫奇利做了一件表现出优秀创新者特点的事情:总结自己在四处考察期间所了解到的全部信息。他的信息收集来源包括斯沃斯摩尔学院、达特茅斯学院、贝尔实验室、美国无线电公司、世界博览会和艾奥瓦州州立大学等各种地方,然后他会把收集到的信息融合成为自己的想法。

他在当年的夏季课程中认识了一位非常适合参与这项工作的搭档:埃克特,一位对精密工程有着完美主义情节的研究生。

战争会促进科学的发展。美国在1941年12月正式加入“二战”,战争的需要使得美国有充足的动力为莫奇利和埃克特正在研发的机器提供资助。宾夕法尼亚大学和位于阿伯丁试验场的陆军军械部当时得到了一项军方指派的任务——为美国输送到欧洲的火炮武器制作记录发射角设置的说明书。为了实现精确的瞄准,这些火炮的弹道表需要考虑数百项发射条件,包括温度、湿度、风速、高度和火药的种类等。

仅仅针对一种火炮发射的一种炮弹,它的弹道表制作就需要通过微分方程组计算三千条弹道。这项工作通常会使用万尼瓦尔·布什在麻省理工学院发明的微分分析机来完成。这台机器的计算工作需要超过170个人的协助,这些被称为“计算员”(computer)的工作人员大多数都是女性。为了求解这些方程,他们需要在桌面加法机上进行繁复的操作。这项工作召集了全国各地的女性数学专业学生来完成。尽管如此,仅仅为了计算一个弹道表就要花费超过一个月的时间。到了1942年夏天,这样的计算进度显然已经越来越跟不上战事的需求,导致美军的部分火炮出现了无法使用的情况。

莫奇利在当年8月写了一份备忘录,他在其中提出了一个可以帮助军方解决这个难题的方法。这份将会改变计算机发展历史的备忘录的题目是“高速真空管设备的计算应用”。莫奇利在备忘录中为他和埃克特希望建造的机器请求资助:这是一台使用真空管电路的数字电子计算机,它可以求解微分方程和进行其他的数学计算。他表示,“如果这种机器能够采用电子元件,它们的计算速度将会得到大幅提升。” 美国陆军部在1943年4月9日正式决定资助建造这台电子计算机。

这台机器在不久后就被赋予了一个更容易被记住的名字:ENIAC,即电子数字积分计算机(Electronic Numerical Integrator andComputer)。尽管ENIAC的主要设计用途是求解微分方程,这是计算火炮弹道的关键所在,但是莫奇利在报告中表示它可以配有一个“编程设备”,这样它就可以用于完成其他的任务,成为一台更为通用的计算机。

虽然ENIAC是一台数字化的计算机,但它没有采用二进制系统(只使用0和1两个数字),而是选择了十进制系统,它采用的计数器是带有十个数字的。ENIAC在1945年11月开始全面投入运作。它当时可以在一秒钟之内进行5 000次加减法运算,这个运算速度要比之前发明的计算机快100倍。它的长度为100英尺,高为8英尺,占地面积相当于一间普通的三居室公寓。它的重量接近30吨,机器内部含有17 468个真空管。

冯·诺伊曼:关于EDVAC的报告初稿

20世纪30年代后期,身处高等研究院的冯·诺依曼开始将研究兴趣转向利用数学方式建模爆炸的冲击波。凭借这方面的研究经验,他在1943年加入了曼哈顿计划。作为曼哈顿计划的成员,他需要经常前往位于新墨西哥州洛斯阿拉莫斯的秘密设施,参与那里的原子弹研发工作。由于当时可用的铀–235只足够制造一个原子弹,所以洛斯阿拉莫斯的科学家们也在尝试设计一种使用钚–239的原子弹。冯·诺依曼的主要工作是研制能够将钚核装料压缩至临界质量的炸药透镜。

这种内爆式设计的评估需要求解大量的方程,用于计算爆炸产生的空气或其他物质的压缩流速。于是冯·诺依曼开始前往各地了解高速计算机的发展前景。在当年的夏天和秋天,他多次来回穿梭于哈佛大学、普林斯顿大学、贝尔实验室和阿伯丁之间,他就像是一只蜜蜂一样将自己在各个地方采集到的想法传播给不同的团队。约翰·莫奇利曾经利用自己在四处访问期间收集的想法创造了第一台可行的电子计算机,同样,冯·诺依曼也在不同的地方吸收到设计存储程序的计算机结构所需的资料和概念。

ENIAC可以在一个小时之内求解一道偏微分方程,而哈佛马克一号则需要花费80个小时。这点深深地打动了冯·诺依曼。然而,为不同的任务重新编程ENIAC将需要数个小时的时间,冯·诺依曼意识到当需要处理大量各不相同的任务时,这将会是一个严重的缺点。冯·诺依曼后来成为ENIAC团队的顾问,他坚持计算机程序应该与数据保存在同一个存储器中的想法,因为这样可以在程序运行的过程中轻易地对其进行调整。

在宾夕法尼亚大学忙碌工作了10个月之后,他主动提出将他们的讨论内容以书面形式汇总起来。他在开往洛斯阿拉莫斯的长途列车上开始撰写这份报告。也就是著名的「First Draft of a Report on the EDVAC」,草案不仅详述了EDVAC的设计,还为现代计算机的发展指明了道路: 1. 机器内部使用二进制表示数据; 2. 像存储数据一样存储程序; 3. 计算机由运算器、控制器、存储器、输入模块和输出模块5部分组成。这份报告是计算机发展史上一个划时代的文献。

PS: 十进制在计算机中表示是很麻烦的,计算机做的都是位运算,那该怎么用电路来模拟这十种状态呢?于是人们用电压来控制数字,每隔0.5v就代表一个数字,比方说0.5v代表1,1.0v代表2,但由于当时的机能所限,真空电子管的精度堪忧,这就导致得出的结果往往不准确;最后设计者们也没办法了,干脆用十根电子管代替0-9,这种简单粗暴的方式使让接线变得异常复杂,还造成了严重的硬件浪费,计算机的体积也是相当庞大。

香农:信息论

是的,还是那个熟悉的香农,1948年,香农发表论文《通信的数学理论》(A Mathematical Theory of Communication),信息论的伟大之处在于用数学描述信息,让信息变得可测,在信号处理、数据压缩、自然语言等许多领域,起着关键作用。文中他提出了现在熟知的比特(Bit)概念,以及著名的信息熵。

肖克利/巴丁/布拉顿:晶体管

计算机的发明并没有立刻引起一场革命。这是因为它们需要依赖使用大体积、高成本、易损坏和高耗能的真空管才能运作,最初的计算机都是一些造价不菲的庞然大物,只有企业、研究性大学和军事设施才能拥有它们。

当时贝尔实验室越来越重视一个研究领域:固体物理学。这是一门研究电子如何在固体材料之中流动的学科,它尤其需要理论家和工程师之间的联合。20世纪30年代,贝尔实验室的工程师们一直在测试包括硅在内的各种材料。硅是地壳中除了氧之外最常见的元素,同时也是沙子的主要成分。在这些测试当中,他们会将不同的材料通电,并尝试控制材料中的电流。与此同时,贝尔实验室的理论家们正在同一栋大楼里面埋头研究量子力学领域的惊人发现。

在量子理论不断发展的同时,贝尔实验室的冶金学家也在研究制作新型材料的方式,他们采用了全新的提纯技术、化学处理方法以及稀有矿物和普通矿物之间的合成配方。为了解决一些常见的问题,比如真空管的灯丝太容易烧坏,或者电话话筒膜片发出的声音太小等,他们尝试合成了一些新型合金,然后通过加热或冷却的方式来提升这些合金的性能。他们就像是厨房里的大厨一样,在不断的试错过程中掀起了一场材料科学的革命,它与量子力学领域正在进行的理论革命齐头并进。

在测试硅和锗的材料样本的过程中,贝尔实验室的化学工程师偶然证实了理论家们提出的大部分猜想。他们发现理论家、工程师和冶金学家之间有着许多可以互相学习的地方,于是贝尔实验室在1936年成立了一个固体物理研究小组,这支队伍聚集了一批实用和理论领域的重量级人物。他们会在每周举行一次的午后聚会上分享各自的发现,其间还会进行学院风格的互相质问环节。在正式的聚会过后,他们会继续参与一些持续到深夜的非正式讨论。与仅仅阅读各自的论文相比,亲自会面讨论是一种更有成效的做法:频繁的互动可以将人们的想法跃迁到更高的轨道上,就像是电子一样,偶尔挣脱束缚的想法也会引起一些连锁反应。

肖克利在1936年从麻省理工学院毕业,这时贝尔实验室的默文·凯利来到学校面试他,并当场为他提供了一份工作。他还向肖克利指派了一项任务:找出一种可以替代真空管的装置,它需要比真空管更加可靠、稳定和廉价。经过了三年的研究之后,肖克利开始确信自己可以找出这个问题的答案——利用包括硅在内的固体材料取代带有发光灯丝的真空管。

正如莫奇利需要埃克特一样。在贝尔实验室的大楼中有许多符合肖克利要求的人才,其中最突出的一位是来自西部的沃尔特·布拉顿,他是一个充满活力且争强好胜的人。

战争结束后,凯利(贝尔实验室真空管部门的主管)把布拉顿和肖克利分配到一个研究小组工作,这个小组的目标是“将固体物理学领域的理论和实践工作统一起来”。也就是说,他们要继续完成在战争之前遗留下来的任务:利用半导体制作出真空管的替代品。

虽然肖克利是这个小组的首席理论家,但由于他的职责是管理整个小组的工作(他在另外一个楼层办公),所以他们决定邀请另外一位理论家加入这个小组。他们的人选是约翰·巴丁,一位言语温和的量子理论专家。

这项研究在接下来的一年里都没有多大的进展,然而他们却在1947年11月取得了一系列重大的突破,因此这个月也被称为“奇迹之月”。巴丁完善了“光伏效应”(photovoltaic effect)的理论,光伏效应指的是光照可以使两种互相接触的材料之间产生电压。他推测这个过程或许可以移除部分形成屏障的电子。与巴丁并肩工作的布拉顿设计出了一些用于测试这个想法的实验。

之后肖克利又对晶体管做了改善,使用PN结取代金属点触。但由于他的好胜心和独断专行,把小组变成了实现自己想法的工具,无法继续升迁,因此选择离开,去开创自己的事业。后来在企业家阿诺德·贝克曼的帮助下,他在 Palo Alto (也就是后来的硅谷)建立了自己的部门,同时通过自己的威望,招募了一批行业内的杰出人才,包括诺伊斯、摩尔,这两人后来由于无法与肖克利共事,出来后创办了仙童半导体,以及后来的英特尔。从这个角度来说,虽然肖克利由于一些自身的缺陷没有成就更大的事业,但他确实对硅谷的发展起到了至关重要的作用。

PS: 贝尔实验室是一个融合创新的大锅。除了晶体管以外,它在计算机电路、激光技术和蜂窝电话等领域都处于领先地位。但是它却不太善于利用自己的发明来获取利润。作为一家几乎垄断整个电话服务市场的规约公司,它对开发新产品的积极性并不高,而且法律也会限制它利用自己的垄断地位进入其他市场。为了避免公众的批评和反垄断行动的攻击,它向来都会慷慨地向其他公司提供自己的专利授权。它为晶体管设定了相当低的授权费用,任何公司只需向其支付25 000美元即可获得生产晶体管的许可,它甚至为这些公司开办了讲述晶体管制造技术的研习班。

诺伊斯/基尔比:集成电路

杰克·基尔比(Jack Kilby)也是那种来自中西部农村的男孩,小时候,他在工作间里和父亲一起捣鼓电子元件,组装业余无线电。基尔比的第一份工作是在密尔沃基的电子零件公司中心实验室(Centralab)。这家公司当时在尝试将助听器元件全部集中到一个陶瓷衬底上,这大致可以算是集成电路思想的前身。基尔比意识到,要想站在晶体管发展潮流的前列,就得进一家较大的公司工作。1958年夏天,在权衡了多份工作邀约之后,他决定加入德州仪器。

德州仪器的政策是,7月所有人都统一休假两周。因此,当没有累积假期的基尔比来到达拉斯时,半导体实验室里几乎没什么人。这就让他有时间思考这样一个问题:硅除了用来加工晶体管,还有什么其他用途?

基尔比知道,不含任何杂质的硅性质类似一个简单的电阻。他意识到,还有一种方法可以让硅片上形成PN结,充当能储存少量电荷的电容。事实上,硅只要经过不同处理,就可以制成任何电子元件。由此,他提出了所谓的“单片概念”:可以把所有元件集成到单个硅片上,而无须把不同元件焊接在一块电路板上。

差不多同一时间,诺伊斯和仙童半导体的同事们就在从另一个方向入手,探索开发集成电路的可能性。他们之所以着手展开这项研究,是因为遇到了一个棘手的问题,也就是公司做的晶体管不好用。有太多晶体管都发生了故障。只要遇到一丁点儿灰尘,甚至只要接触一些气体就会让晶体管无法正常工作。猛烈敲打或碰撞也会让晶体管出故障。

仙童半导体的物理学家、“八叛逆”之一的让·赫尔尼想出了一个新颖的解决方案。他想在硅晶体管表面敷置一层薄薄的氧化硅层,就像千层蛋糕表面的糖衣一样,这样就能对下面的硅起到保护作用。他在笔记中写道:“在晶体管表面为集成电路敷置氧化层,能使结点不致暴露在外,这样晶体管就不会受到污染。”

这种方法被称为“平面工艺”,因为硅的表面有一个氧化层。当时,赫尔尼只是想设计出可靠的晶体管。他们还没有意识到,可以借助这种在氧化层上开小口的平面工艺将许多种晶体管和其他元件蚀刻在单片硅片上。诺伊斯认识到的第一个问题是,有了平面工艺,就不需要那些从每一层晶体管上伸出的细线了,可以在氧化层顶部印上小铜线,以代替这些布线。这将使晶体管生产变得更快、更可靠。从这一点出发,诺伊斯又产生了下一个洞见:既然能用这些印刷铜线连接晶体管的不同区域,那就也能用它们连接同一块硅片上的两个或更多晶体管。运用开口技术的平面工艺能让杂质分散开来,这样就能把多个晶体管安装在同一块硅芯片上,而印刷铜线能将它们连接起来,形成一个电路。

集成电路最初面向的主要市场是军队。1962年,战略空军司令部(the Strategic Air Command)设计了名为“民兵二号”(Minuteman Ⅱ)的新型陆基导弹,在每一枚导弹中,仅弹载导航系统就需要2000枚集成电路。

美国的民用航空项目成为推动集成电路生产的下一个主要动力。1961年5月,美国总统约翰·F·肯尼迪宣布:“我认为美国应该致力于这样一个目标,我们要在60年代结束之前把人送上月球,再让他们安全返回地球。”

这种来自政府的海量稳定需求促使集成电路价格迅速下跌。阿波罗导航计算机的首枚原型芯片售价1000美元。到芯片投入常规生产时,每枚芯片的价格降到了20美元。1962年,民兵导弹上每一枚集成电路的平均价格为50美元,到1968年就降到了2美元。这样一来,将集成电路用于普通消费设备的市场便应运而生。

之后仙童半导体(诺伊斯和摩尔共同创办,母公司为仙童,主营摄影器材)乃至帕洛阿尔托的半导体部门都已经变得太大、太官僚。诺伊斯渴望甩掉一些无关紧要的职责,回头去做实验室的一线工作。有一天,诺伊斯问摩尔:“我们办一家新公司怎么样?” 然后就有了后来的英特尔。

特德·霍夫:微处理器

霍夫曾是斯坦福一名年轻教师,他成为英特尔的第十二名员工,任务是设计芯片。他意识到,像英特尔这样设计许多种功能各不相同的芯片既浪费又笨拙。当时,常常有公司来要求英特尔做一种用于完成特定任务的芯片。霍夫(还有诺伊斯和其他人)设想了一种替代方案:发明一种能接受指令,即进行编程,从而按要求完成不同任务的通用芯片。换句话说,也就是在一枚芯片上做出通用计算机。这一设想恰好可以拿来解决1969年夏季霍夫负责处理的一个问题。

当时有一家名为“Busicom”的日本公司计划做一款强大的新型台式计算器,想让英特尔制作12枚专用集成电路(分别处理显示、运算和存储等任务),芯片的相关细节已经拟定。英特尔同意了,价格也敲定了。诺伊斯让霍夫负责管理该项目。很快,他们遇到了一项挑战。霍夫回忆道:“我对这项设计了解得越多,就越担心英特尔的投入会比原计划要大。芯片的数量和复杂程度都远远超出我的预想。”英特尔不可能以协议价格做出这些芯片。

到1969年9月,霍夫和他的同事斯坦·麦卓尔(Stan Mazor)已经设计出能遵循编程指令的通用逻辑芯片的架构。这种芯片能够完成Busicom所要求的12枚芯片中的9枚所承担的功能。诺伊斯和霍夫向Busicom的高管介绍了这一方案,并获得了后者的认可。

到了重新谈价格的时候,霍夫向诺伊斯提出一个至关重要的建议,正是这一建议为通用芯片创造出一个巨大的市场,并维持了英特尔在数字时代的领军地位。比尔·盖茨和微软效仿了这种做法,10年之后,IBM也效仿了这一做法。诺伊斯为Busicom提供了优惠的价格,但坚持让英特尔保留新型芯片的知识产权,而且英特尔有权将其授权给其他公司,用于计算器生产以外的其他用途。他意识到,能通过编程实现一切逻辑功能的芯片将成为电子设备的标准元件,就像两英寸厚、四英寸宽的木板是房屋建筑业的标准建材一样。这种芯片会取代专用芯片,这就意味着它们可以批量生产,价格也会不断下降。它们还会让电子行业产生一个比较微妙的变化:在电路板上设计元件配置的硬件工程师变得没那么重要了,取而代之的是新生的软件工程师,他们的工作是将一批指令写入系统。

这就是发生在20世纪70年代的故事。微处理器催生了数百家为个人电脑做硬件和软件的新公司。英特尔不仅开发了尖端芯片,而且创造了一种文化,激励在风险资本支持下成立的初创公司去改变经济。英特尔还让圣克拉拉谷(从旧金山南部经帕洛阿尔托到圣何塞的一片40英里的平坦土地)的杏树果园变身为高科技公司云集的硅谷。

道格拉斯·恩格尔巴特:演示之母

恩格尔巴特的父亲是一位电气工程师,在俄勒冈州波特兰开了家出售和修理收音机的商店。他从海军退役后,在俄勒冈大学获得了工程学位,随后在NASA下属尖端技术研究机构——位于硅谷的埃姆斯研究中心任职。为了结识可以作为结婚对象的女性,羞涩木讷的恩格尔巴特加入了帕洛阿尔托社区活动中心的一个中级希腊民间舞蹈班,后来他果然在这里找到了人生伴侣。订婚的那天,恩格尔巴特在开车上班的路上突然产生了一种可怕的、足以改变他生活方向的忧虑感:“等到我开始工作时,我意识到自己已经失去了目标。”

在接下来的两个月里,恩格尔巴特开始努力为自己寻找有价值的生活目标。他说:“我考虑了所有人类可以为之奋斗的事业,想找到一条适合自己的再教育之路。”他意识到,任何改造世界的努力都是很复杂的。他想到那些努力防治疟疾或增加贫困地区粮食产量的人,结果发现,如果这些问题得到解决,又会引发其他一系列复杂问题,比如人口过剩和水土流失。要想成功地完成一个大项目,就必须对行动中所有错综复杂的细节进行评估,权衡各种可能性,共享信息,组织人力,等等。他回忆说:“然后有一天我突然领悟到,复杂性正是最根本的东西,我感到豁然开朗。如果能以某种方式让人类更好地处理复杂和紧急的问题,能为此做出重大贡献,那你就能够造福全人类。”[插图]这样一种努力不是单单解决世界上的某一个问题;而是能为人们提供解决任何问题的工具。

1968 年 12月9日,恩格尔巴特在旧金山举办的计算机行业大会上进行了这场持续90分钟的演示,会场内有近千名观众,只有站的地方。恩格尔巴特身穿白色短袖衬衫,系着深色窄领带,坐在讲台右侧一个时髦的赫曼米勒“行动办公室”操作台边。他那台计算机终端的显示屏被投射到他背后一个20英尺的屏幕上。他的第一句话是:“我希望大家有朝一日能习惯这种相当不同寻常的环境。”

恩格尔巴特展示了我们现在司空见惯的众多技术:视频会议、现代桌面式用户界面、文字处理、超文本、鼠标、协作编辑等等。

他向与会者提出了一个对21世纪初的我们来说几乎并无意义的问题:“如果在你的办公室有一台带显示器的计算机,你能够以一种直观的方式操作它,得到你想要的结果,它会给你的工作带来多大的便利?”

当然,在那个时候,计算机还是占据整个房间的庞然大物。在恩格尔巴特构想的用户界面中,人们可以使用鼠标来移动光标并选取对象,这在当时属于革命性的想法。

epub_908185_680

当时参加「演示之母」的就有艾伦·凯,将利克莱德和恩格尔巴特的思想带入个人电脑之乐土的先驱者就是凯和一家复印机公司研究中心(PARC)一群无拘无束的同事。后来乔布斯就是从 PARC 吸收了很多了 GUI 的理念。

肯·汤姆逊/丹尼斯·里奇:Unix 操作系统

在 Unix 分时系统出现之前,人工和机器的交互简直就像「疯狂动物城」里面的树懒一样,慢是真慢,而且毫无交互体验,和现在相同的是,提交者都不希望有 bug 出现,不然就要重新打卡。

0B120688-617A-4A05-8CDB-4B671678F871

贝尔实验室的 Ken Thompson 和 Dennis Ritchie 开始了一个新的项目——Multics。这是个分时操作系统,在交互式方面有着重要的突破。它允许多人连接到计算机上,每个人都可以获得一部分时间,给用户一个独占整个计算机的感觉,不过计算机实际上还会在他们之间来回切换。如果你可以“独享”的话,你就可以使用电传打字机而不需要打孔卡了。电传打字机这个东西是打字机、打印机和电话线的结合体,你可以输入命令,通过电话线传给计算机,然后输出。这种原理和现在的 SSH 其实比较类似。

不过,Multics 实在是太贵了,尽管它能提供很好的计算环境,很多针对它的描述用到了”过度工程“这个词。 因此,贝尔实验室在 1969 年退出了项目,只有 MIT 和 AT&T 还在支持。

虽然贝尔实验室退出了 Multics计划,Ken 可没闲着,实验室有一台 PDP-7,说是一台微型机,实际上也是需要一件屋子才能放得下,不过还好已经有显示器了。有一次,Ken 的爱人带着一岁的孩子去加州呆了三周度假。利用这三周的时间,Ken 完成了可以正常运行的系统,他命名为“Uniplexed Information and Computing System”,缩写为 UNICS ,这可以说是 Unix 的初代机了。

肯·汤普森开发出来的原型Unix系统,深得贝尔实验室这帮大佬们的青睐。Unix的另一位热心开发参与者丹尼斯·里奇,他和肯都希望能购置一台比PDP-7更好的计算机。但贝尔实验室的管理层被失败的Multics搞得心有余悸,说什么也不肯批这个条子。不过大神们有的是暗渡陈仓的办法。因为贝尔实验室每年要编写提交许多专利文件,因此在文字处理上有着迫切需求。正是抓住了这个痛点,提出可以采购PDP-11用于编写专利材料,Unix小组可以为其提供软件。

肯·汤普森和丹尼斯·里奇如愿以偿地拿到了比PDP-7更好的PDP-11,两位大神立即在新机器上展开工作。由此,在PDP-11机器上Unix完成了从原型到初版的开发。

在此之后,Unix就一直在实验室里迭代。1975年5月,第六版Unix发布,从这一版本开始,Unix逐渐为外界所知。

为什么这一版具有如此魅力?因为现代操作系统的设计哲学(套路)就此形成,并稳定下来了。这一哲学包含两个方面,第一是简洁,第二是专注。

先说简洁,Unix的文件系统就是最佳示范。在Unix的世界里,一切皆文件。说到文件,我们首先想到的可能是打开一个文档,并在里面输入内容,最后保存关闭。这是一个关于普通文件的典型操作过程,只需要五个系统调用(creat, open, read, write, close)就可以全部完成。

那么,对于其他外接的设备,也可以将其视为一个特殊文件,只需要用五个系统调用组合使用,就能完成读写数据的工作。

再说专注,Unix系统里有许多程序,这些程序各司其责,只将一件事做好。例如echo就是回显文本;cat就是显示文件内容;ls就是显示磁盘目录内容。那么,要实现复杂的功能怎么办?答案是借助于shell、管道与重定向机制,将独立的小程序组合起来,实现想要的功能。这就是一种典型的分工合作思想。

这里面shell是供程序所运行的环境,管道是程序间数据流通的通道。管道机制是真正的神来之笔。道格·麦基尔罗伊最初有这个想法,但总是被实现问题所困扰,直到有一天启发了肯·汤普森的思考。如同被上帝亲吻了脑门,肯猛然省悟了管道的机理。他只用了一个小时就在系统调用中实现了管道。这就是将程序的孤岛给连接起来的竖线符:“|”。

UNIX成功的另一个重要因素是它的可移植性。正是里奇竭尽全力开发了C语言,并把UNIX用C重写了一遍,这才使它具有了这一特性。汤普森是用汇编语言开发UNIX的,这种语言高度依赖于硬件,由它开发的软件只能在相同的硬件平台上运行。里奇在由剑桥大学的里查德(M.Richard)于1969年开发的BCPL语言(Basic Combined Programming Language)的基础上,巧妙地对它进行改进、改造,形成了既具有机器语言能直接操作二进制位和字符的能力,又具有高级语言许多复杂处理功能如循环、转移、分支等的一种简单易学而又灵活、高效的高级程序设计语言。

亨利·罗伯茨:第一台个人电脑

罗伯茨是个无所畏惧的创业者,他一直都对计算机很感兴趣,他认为其他发烧友也一样。他兴致勃勃地对一位朋友说,他的目标是做一款面向大众,能够彻底清除“计算机圣职阶层”(Computer Priesthood)的电脑。在研究过英特尔8080的指令集之后,罗伯茨认为MITS能够生产出一款可组装出简陋计算机的DIY套件,价格可以卖得非常便宜,在400美元以下,让每个计算机爱好者都能买得起。

罗伯茨和他那支杂牌军制作的电脑不会给恩格尔巴特、凯和斯坦福周围实验室的其他人留下什么深刻印象。这款电脑内存只有256个字节,没有键盘,也没有其他输入设备。要想输入数据或指令,只能在一排开关之间进行切换。当时施乐PARC的专家正在开发可以显示信息的图形界面;而这款出自老魔法三明治店的机器却只能通过前置面板上几盏灯的闪灭来显示二进制码答案。这款电脑在技术方面虽然算不上有多成功,但仍然是一款发烧友向往的产品。发烧友群体中存在一种有待释放的需求,他们渴望有一款像业余无线电设备那样,让他们动手组装和拥有的电脑。

F231040F-A65E-4712-AE05-2A3BBB2649EF

与当时其它的计算机相比,它并不是一台性能强劲的计算机(尽管它的成本要低得多),它也不是首个采用微处理器的通用计算机(在它之前已经至少有三个基于微处理器的计算机)。但是 Altair 是一种可供我们所有人使用的计算机。它是历史上我们所拥有的设备中首台流行的计算机,而早于 Altair 计算机都是完全不同的机器,那些大型机和笨重的迷你计算机由穿孔卡编程并且很少与之直接交互。不过 Altair 也是台极其简单的计算机,它没有附带任何操作系统甚至是引导程序。除非你为它购买外围设备,否则 Altair 就是一台装配了 RAM、前面板只有一组开关和灯泡的机器。由于 Altair 操作简单,使得重新理解基本的计算概念都成了十分简单的事情,正如模拟信号时代的人们第一次接触到数字设备一样。

「大众电子学」在一篇报道的导语中宣布:“电脑走进千家万户的时代(科幻小说作家最喜欢的主题)来临了!”一款价格适中而且实用的电脑第一次被推向大众市场。比尔·盖茨后来宣称:“在我看来,Altair是第一台名副其实的个人电脑。”

1974年12月,就在盖茨和艾伦第一次看到「大众电子学」封面的那一天,两人便决定为个人电脑制作软件了。不仅如此,他们还想改变这个新兴行业的利润分配格局,让硬件成为一种可以替代的商品,并让那些创造出操作系统和应用软件的人获得大部分利润。

盖茨和艾伦准备编写一个能让发烧友用Altair电脑自己动手写程序的软件。具体来说,他们决定为编程语言BASIC写一个能在Altair的英特尔8080微处理器上运行的解释器。这将成为针对微处理器的第一款商业化本地高级编程语言,并将开创个人电脑软件行业。

史蒂夫·沃兹尼亚克:Apple II

家酿(homebrew)计算机俱乐部的首次会议是在戈登·弗伦奇的车库里举行的,其中有一位参加者叫史蒂夫·沃兹尼亚克,是一位不善与人打交道的年轻硬件工程师,他从大学退学后在位于硅谷小镇库比蒂诺的惠普计算器部门工作。从一位朋友那儿看到那张印着“你在自己组装电脑吗”的传单之后,他便鼓足勇气来参加聚会。他宣称:“那天晚上成为我生命中最重要的夜晚之一。”

当时沃兹尼亚克刚刚完成《打砖块》游戏的设计。聚会刚开始时,沃兹尼亚克感到自己与其他人格格不入。他是做计算器和家用电视游戏显示器的,但那次聚会上人们的主要兴奋点是那台新款Altair电脑,而他一开始对这台电脑并不太感兴趣。于是,很容易害羞的沃兹便躲到了角落里。他后来这样描述当时的场面:“那儿有人拿着《大众电子学》杂志,封面图片是一款叫Altair的电脑。我发现这些人其实都是Altair的粉丝,而不是像我想象的那样对电视终端感兴趣。”他们一个个轮番做自我介绍,轮到沃兹尼亚克的时候,他说:“我叫史蒂夫·沃兹尼亚克,我在惠普做计算器设计工作,我还设计过一个视频终端。”

但有一样东西激起了沃兹尼亚克的兴趣。聚会上有人给大家传阅了一份新款英特尔微处理器的规格表。他回忆说:“当晚我查阅了这份规格表,发现上面有一条将内存中一个位置的数据与A寄存器内容相加的指令。当时我想,等等,我再看看。然后我又看到一条让内存和A寄存器内容相减的指令。哇!在你眼中这些可能没有什么意义,但我可是清楚地知道这些指令的意义,这是我最兴奋的发现。”

沃兹尼亚克当时在设计一个带有视频显示器和键盘的终端。他本来想把它设计成一个“哑”终端,即自身不具备计算能力,而要通过电话线与其他地方的分时计算机相连的终端。但当他看到那份微处理器规格表时,他突然产生了一个灵感:可以利用微处理器(带有中央处理单元的芯片)赋予他正在制作的终端一些运算能力。这就在Altair的基础上迈进了一大步:这是一台集计算机、键盘和屏幕于一体的设备!他说:“这一整套有关个人电脑的设想就这样浮现在我的脑海中。那天晚上,我开始在纸上画草图,这就是苹果I型电脑的雏形。”

一位朋友把沃兹尼亚克介绍给了另一个也热衷电子学的孩子,这个孩子住在与他家相隔几个街区的地方,名叫史蒂夫·乔布斯。乔布斯比沃兹尼亚克小将近五岁,当时还在沃兹尼亚克的母校家园高中读书。两人坐在人行道上,交流着他们耍过的恶作剧、他们喜欢的鲍勃·迪伦的歌和做过的电子设计。沃兹尼亚克说:“一般来说,我很难跟人讲清我设计的东西,但史蒂夫立马就能明白。我喜欢他。他精瘦结实,活力四射。”而沃兹尼亚克也给乔布斯留下了很深的印象,乔布斯后来说:“沃兹是我遇到的第一个电子学懂得比我多的人。”

他们最大的一次恶作剧是“蓝盒子”事件,这件事为两人日后的电脑业务合作关系奠定了基础。乔布斯后来反思道:“如果没有蓝盒子,就没有苹果。通过蓝盒子,沃兹和我学会了如何合作。”沃兹尼亚克赞成这种说法:“它让我们体会到,如果把我的工程能力和他的想象力结合起来,我们就能做成一番大事。”

epub_908185_859

等到开发苹果II型电脑时,他就没再花太多时间研究微处理器规格了,而是到斯坦福购物城的梅西百货去研究Cuisinart牌电动厨具。他认为下一代个人电脑应该像家用电器一样:所有元件都装配妥当,带有时尚的外壳,用户买回家后无须再自己组装。从电源到软件,再从键盘到显示器,一切都应该紧密地集成为一体。他解释说:“我希望做出世界上第一台完全一体化的电脑。我们不再面向一小撮喜欢自己组装电脑,懂得如何选购变压器和键盘的发烧友。有数量相当于发烧友一千倍的人想要买回家就能用的电脑。”

苹果II型电脑是第一款操作简单且软硬件完全一体化的个人电脑。这款电脑于1977年6月上市,售价1 298美元,不到三年时间就卖出了10万台。