机械计算和电子计算
当我试着了解计算机和操作系统的历史,我不得不先描绘一些其他的事情,因为我不想错过非专家。
要理解现代计算机的起源,有三个话题不得不提到:
- 机械计算
- 制表机和分类器
- 差分分析机
变化发生于1918年第一次世界大战末期,计算工具从机械计算向电子机械计算,向电子管,向晶体管,向集成电路,向今天的单芯片计算机一路发展。
机械式计算的历史非常久远。算盘可能是最早的计算工具,中国和埃及使用它已经有一千多年的历史。当西班牙人到达时,玛雅人也在使用算盘。当奈培发明对数时,他用象牙做成的骨棒计算乘法,于是发明了计算尺(在伦敦的维多利亚和艾伯特博物馆还保留了很多奈培的骨棒,它们现在归属于查尔斯-巴蓓奇)。
1642年,布莱克-帕斯卡18岁时发明了一个可以实现累加计算的工具帮助他从事税收员的父亲。30年后的1671年,莱布尼兹基于帕斯卡的机器做了更多的改进,使用一个精巧的步进齿轮实现了乘法运算,这个设计一直运用到1940年机械运算的末期。莱布尼兹在1676年把他的计算器展示给了伦敦的皇家学会。第一个取得商业成功的计算器是1820年由查尔斯-泽维尔-托马斯发明的。到1878年,销售数量达到令人震惊的1500台,平均几乎每年卖出30台。直到第一次世界大战后达雷尔仍在巴黎制造。基于1985年Frank Stephen所获专利的 Brunsviga加法器,将莱布尼兹步进齿轮替换为突出可变数字的齿轮,在1892年和1912年期间共卖出了20000台——平均每年1000台。
1850年D.D.Parmalee发明了第一个键盘驱动的计算器,第一个键盘驱动,多类型的高速计算器则是1887年由Dorr Eugene Felt发明的。
1812年,Charles Babbage提出一个新类型的计算器,一个不同以往的引擎。1823年英国政府支持了他的研究,但在1833年停止工作,并在1842年取消了这个项目,因为政府觉得它的花费实在太多了。从1833年起,Babbage把全部精力投入到一种新的计算器,一个可以自动计算任何数学公式的分析引擎。它使用提花织布机的打孔卡片操作分析引擎的几种操作。虽然只有很小一部分被制造出来,但Babbage的笔记,绘图,和部分的引擎都存放在维多利亚和阿尔伯特博物馆里。
提花织布机是自动生产的成功尝试,是几种创新的成果:1725年Bouchon将织布机的弓弦缠线器换成长长的穿孔纸带,1728年Falco又将他们换成由细线串起的卡片。1748年Jacques de Vaucanson组合了穿孔纸带和卡片。织布样式由特殊机器使用模板在卡片上打孔。此时编程机器也就诞生了。
一百年后,哥伦比亚大学的毕业生Herman Hollerith,回忆这些打孔卡片的存在。Hollerith在人口普查局有一份年薪高达600美金的工作,工作内容是调查制造业使用能源和机器的使用情况。在那里他还遇到了负责“重要统计”的John Shaw Billings。一次晚宴上,Billings介绍了在1870年人口普查中使用的由Charles Seaton的发明的统计机器。对此机器他并不看好,因为根据他的预测,按照现在人口增长趋势,1880年的人口普查最少也要7,8年才能完成,而1890年的人口普查到了1900年也做不完。“应该有一个专门的制表机器来做人口普查和类似的统计工作”,Billings说。“我们详细的讨论了”,30年后Hollerith回忆说,“我记得,他设想将个人的信息打孔在卡片的边缘上”。Hollerith设想了一个可以记录和读取这种信息的设备,并且邀请Billings和他一起把这个设备商业化。Billings是一个谨慎的人,他拒绝了Hollerith。
1882年Hollerith作为一个机械工程讲师去了MIT(那年他22岁),教书生活使他有时间去构建他的机器。首先他考虑将信息记录在长长的纸带上,但实验证明这并不可行。1883年夏天Hollerith乘坐火车去西部旅行时,他见到售票员在车票上打孔一种图案,以此记录游客的个人信息(比如性别,头发和眼睛的颜色等),来确保整个旅途都是同一个人。
1884年Hollerith得到了他的第一个机器专利,并在1886年管理Baltimore人口普查时的一次实验中再次提高了设计。在他实验报告的基础上,新泽西和纽约订购了机器用于记录人口死亡率。Hollerith和一些商业伙伴投标赢得了1890年人口普查的合约。奥地利政府于1890年订购了一批机器,次年澳大利亚也订购了五台。Hollerith的机器大获成功,1896年组建了制表机器公司销售Hollerith电力制表系统,并在1905年合并。
Hollerith的几个发明在业界一直延续了近80年。首先,他剪去了卡片的右上角,因此操作员们可以准确无误的操作这些卡片。第二,他以合理的价格租借机器(1890年用于人口普查的租金是75万美元,而1889年的普查则花费了500万美元),却单独销售配套的卡片(1890到1895年期间共销售了一亿多张)。第三,他改造人口普查系统到铁路上,记录货物和旅客的信息。事实上,是Hollerith发明了可重用性。
1907和1908年Hollerith租给电力系统公司一些机器用于记录,每个月他能卖给他们一百万张卡片。卡片大小为3.25英寸宽,7.375英寸长(和旧的美元一样大小),上面有45行10列的圆孔。
1990年,一个叫Charles Flint的企业家在纽约恩迪科特创办了国际计时公司,制造售卖考勤钟。第二年,合并了澳大利亚计算测量公司,他们生产的磅秤可以直接读到数值,这样就不再需要职员人工计算了。大概1910年,Flint遇到了穷困的Hollerith,合并他的制表公司建立了计算-制表-计时公司(CTR)。不到30个月后,Flint面试了从NCR离职的Thomas Watson,并说服董事会雇佣他。1914年5月,Watson作为总经理接管了CTR,并获得了25000美元的丰厚薪水,期权以及分红。
第一次世界大战使CTR公司商业获得很大增长。1919年Watson的技术投资提前5年收回成本:CTR成功的推出了一台打印制表机,它可以打印出从Hollerith的制表机和分类器获取到的信息。1924年,CTR更名为国际商用机器公司(IBM)。Thomas J. Watson也成为IBM的CEO和COO。
1928年推出了TYPE IV型号制表机和新的80列12行卡片。
1941年到1945年间美国国防部和Thomas Watson的公司资助的许多项目,这些项目催生了现代化的计算机。
尽管Watson在1945年说“我认为整个世界需要有五台计算机”,第一台也是他资助下建立的。来自哈佛的Howard Aiken和一个小团队在1939年开始依照Babbage的理念组建一台名为Harvard Mark I的机器,并在1944年完成。它包含有一个51英寸宽8英寸高的面板,上面有有纸带阅读器,继电器,和旋钮。这台计算器由一个4马力的马达驱动,几乎全部操作都是通过物理开关进行。它可以在23个人的操作下进行10进制的数值计算,每一个基础计算需要耗时0.3秒。这台机器一直服役到1953年,它的一部分现存于剑桥的Harvard's Aiken计算实验室,另外部分则在华盛顿的史密森尼学会。
1944年美国军方和宾夕法尼亚签订了一个合约,请他们建造一个离散变量自动电子计算机(EDVAC)。最初的团队包含Herman H. Goldstine,John von Neumann,以及John Mauchly,其中von Neumann主导了相关设计。
第一台全电子的计算机是电子积分数值积分计算机(ENIAC),由宾夕法尼亚大学的J.W.Mauchly和J.P.Eckert于1945年着手建造,1946年在亚伯丁弹道研究实验室(BRL)提供的场地组装完成。我认为它是世界上最大的计算机,由18000个电子管(真空管)和1500个继电器组成。ENIAC是电子版本的Mark I,速度是Mark I的几百倍。Mike Muuss告诉我ENIAC的一部分在BRL展示。
1947年Eckert和Mauchly建立他们自己的计算机公司开始建造他们的通用自动计算机(UNIVAC)。他们用光了资金后又找到美国赛马赌金公司为其投资的50万美金(这应该是历史上首次计算机和娱乐相关联的事件,赌金公司需要更快的赔率计算机器,他们认为电子计算机处理这些信息会更有效率)。赌金公司掌控了Eckert-Mauchly公司,但是资金在造出机器前又花光了,Mum兄弟(赌金公司的所有者)将Eckert-Mauchly公司出售给了雷明顿兰德公司。最终UNIVAC机器在一年后的1951年完成并得到了6台订单。
ENIAC也在英国发展起来。1946年Maurice V. Wilkes从普林斯顿反回到剑桥数学实验室后,带领他的小组小组筹划建立一台延迟存储电子自动计算机(EDSAC)。它有ENIAC五十分之一大小,基于von Neumann的一篇论文中提到的方法建造。当1949年完成的时候,它成为第一台可以存储控制程序,含有高速存储以及带有输入输出设备的电子计算机。几年后,EDSAC实验室在Wilkes带领下已经有了150多种控制程序。
几乎就在同一时间,在曼彻斯特一个由M.H.A.Newman领导的小组建造一台和EDVAC相同理念的机器。发明阴极射线管存储装置的F.C. Williams,曾经和图灵一起工作建造巨人解密机器的I.J.Good,以及图灵本人都加入了这个小组。曼彻斯特自动数字机器(MADM)原型于1948年建造,1949年6月运行了它的第一个程序。MADM将分页寄存器和分页用于计算。
在这段时间里,IBM开始研制选择性序列电子计算机(SSEC)。EDSAC被称为首个电子计算机,而SSEC则被称之为首个计算机。它利用一个存储程序集成了计算功能。1948年早期在曼哈顿IBM的总部投入使用时,它被聪明的安放到街边一块大玻璃后面的房子里,这样走过的路人们都可以看到它是怎么运转的。这是一个由13000个电子管和23000个继电器组成的巨大机器,由于所有的算术计算都是由电子管完成,他的速度是MARK ID的100多倍。它包含三个不同的存储器:一个高速电子管存储,一个继电器组成的大容量存储,还有一个容量更大的8列纸带存储。指令和数据输入时通过打孔纸带,因为有66个并排的打孔纸带,所以控制可以自动一个接一个不间断的传送。“它可能是第一台拥有Babbage和Ada Lady Lovelace所提出的条件转移控制指令的机器”,1953年B.W.Bowden写道。它移植工作到1952年被拆除,特别是其间曾为直为美国原子能委员会工作。
同年六月,John von Neumann和他的同事在普林斯顿狂热的研究者一项超前的技术,他们受雇于F.C. Williams和T. Kilburn,希望可以使用阴极射线管替换电子管存储器。
下一个硬件的进步来自于1944年Jay Forrester在MIT领导的旋风项目。旋风采用一种新型电子存储,采用由16个电子管,每个又包含256个二进制位,实现了每秒2万次16位字长的单地址操作(字是计算机存储的基本单元,包含预先指定的位数。一个8位的字可以存储一个负128到127范围的数字)。旋风项目是第一个尝试以实时持续的计算飞行运动,来确保飞行器高速稳定的飞行。Doug Mcllroy告诉我1954年他是一个用户的时候,“旋风拥有核心内存,一秒钟可以执行4万条指令”。旋风项目中Forrester的“阳光男孩”是Kenneth H. Olsen,他在几年后创建了数字设备公司。Olsen参与了磁力开关阵列存储设备,但是在他的学生论文中他却建议使用晶体管替换真空管。这篇论文被Ralph L. Palmer看到,Palmer是1955年SSEC的主要电路设计者,他劝说Bloch在IBM 704机器中使用晶体管存储器。最终这个尝试失败了因为带有充足电力的晶体管驱动铁核内存是不可能的。
基于701A建造的704在1954年发布,701是IBM最长久的胜利(1952,1953)。从701到704的改进由Gene Amdahl。701是由Nathaniel Rochester和Jerrier Haddad领导的35人小组建造的。Rochester在席尔瓦尼亚曾经参与旋风项目的算术单元设计。Haddad是曾经IBM 604电子计算机团队的一员。最终,700系列包含了科研计算机(701,704,709,7040,7044,7090,7094)和商用计算机(707,705,7080)。顺便提一句,IBM 7030拥有64位字长和8位字节。1953年701每月的租金是15000美元,704的租金更高一些。就算租金如此高昂,IBM也售出了18台701和140台704。在商业方面,IBM以160万美金的平均价格售出了175台705。7080是完全晶体管构成的版本,售价220万美金。那是计算机价格都是以百万美金为单位。
与IBM合作中的Forrester接到了国防部旋风二号的合约,一台防空计算机。随着IBM更多的参与,项目1952年改名为SAGE(半自动地面防空系统)。Ken Olsen和他的团队在MIT的林肯实验室制花费了9个月就完成了内存测试计算机的设计和建造。1953年当Forrester和Norman Taylor上尉意识到他们需要一个常驻IBM的联络员,Taylor强制Olsen去了那里。Olsen越来越讨厌IBM的态度,1953年的某个夜晚,他告诉Taylor“我可以做这些人的工作,并超过他们”。这就是数字设备公司(DEC)的由来。
三年半后,Olsen向政府递交了一个商业计划,收到7万美金。他和Harlan向成立自己的公司。一年后他们从Maynard购买了逻辑模块。1959年的东部计算机联合大会在波士顿的斯塔特勒酒店举行,会上DEC公布了PDP-1计算机的原型(PDP,可编程数据处理器),这个计算机在1960年九月上市,定价12万美金。
PDP-1是一个内存大小为4096到32768字长的18位机器,存储器周期5毫秒,每秒钟可以执行10万次计算。它在Benjamin Gurley的领导下开发,包含有3500个晶体管和4300个二极管。PDP-1拥有编辑器,汇编器,和一个名为DECAL的ALGOL语言编译器。它使用纸带阅读器输入数据,一个IBM字母打印机被作为输出接口。PDP-1是同时代中最具性价比的实时计算机,也是第一个拥有图形显示器的商用计算机。DEC一共售出53台PDP-1。第一台卖给了BBN科技公司,第二台卖给了ITEK公司(Norm Taylor创办的排版公司)。其他的则被劳伦斯利弗莫尔实验室和加拿大原子能(AEC)买走。1962年一月,Olsen向MIT捐赠了一台PDP-1。学生们使用它玩一个叫做mancala的计数游戏。
PDP-2被设计成24位,PDP-3则试图成为一台36位机,但这些都没有真正的制造出来。另一台由Gordon Bell设计的18位机器PDP-4是一个失败项目,它的存储器周期是8毫秒(作为对照,PDP-5是5毫秒)。它只需要PDP-1一半的耗电量(1125瓦对比2160瓦),运行汇编器,编辑器,和FORTRAN语言。相比于PDP-1的12万美元售价,它只需要6.5万美元。但是Gordon Bell错了:八分之五的能耗(62.5%),二十四分之13的价格(54%)并不是市场想要的。最终它只卖出了45台。
PDP-6是一台售价高达30万美金的36位计算机,面世没多久就被取消了。一共有23台售出,其中一台卖去了MIT的人工智能实验室。
PDP-7,PDP-9和PDP-15都是和PDP-4一样的18位计算机。PDP-8是另一台由Bell和De Castro设计的12位计算机。1965年当它以1.8万美金的价格上市时引领了小型电脑革命,最终有50000台PDP-8被售出。PDP-10是一台继PDP-6的另一台36位计算机。
1970年PDP-11的发布使DEC成为小型计算机制造商的领头羊。在卡内基梅隆大学进行学术休假的Bell做的概要设计,具体项目是在Andy Knowles的带领下进行的。PDP-11是一台16位机器(拥有种类繁多的配置和外观),最终售出了25万台。
Gordon Bell的创造和DEC冒险做低价计算机是UNIX得以开发和成功的关键。PDP-11第一次证明了大学和科研站点可以支付部门规模的计算机。此外,Ritchie和Thompson也没有足够的资金购买一台大型计算机,PDP-11 10800美金的起始售价却在贝尔实验室的预算之内。PDP-11 16位的字长也很重要,16位相比于8位可以存储更多的信息。
翻译参考