网络互联技术(1)——前篇—【转载】计算机发展史
原文链接:传送门
详细内容:
电脑简史
我们都知道电脑的学名叫计算机,从名字我们可以看出,最初电脑是用来做计算的。那么我们可以推测,电脑的始祖是用来做计算的。
在远古,人们最早使用的计算工具可能是手指,英文单词“digit”既有“数字”的意思,又有“手指“的意思。古人用石头打猎,所以还有可能是石头来辅助计算。
但是手指和石头太低效了,后来就出现了”结绳“记事——结绳慢,绳子还有长度限制。后来又不知过了多久,许多国家的人开始使用”筹码“来计数,最有名的就要数咱们中国商周时期出现的算筹了。古代的算筹实际上是一根根同样长短和粗细的小棍子,大约二百七十几枚为一束; 多用竹子制成,也有用木头、兽骨、象牙、金属等材料制成的。数学家祖冲之计算圆周率时使用的工具就是算筹。
在长期使用算筹进行计算的过程中,算筹的缺点显露了出来,使用算筹计算太麻烦了,很不方便——计算时需要慢慢摆放。
于是,这个时候人们发明了更好的计算工具——算盘,
算盘最早可能在汉代萌芽,在南北朝时期定型,利用进位制计数。使用时需要配合一套口诀——好比计算机的软件。算盘本身还可以存储数字,使用时很方便。至今,算盘还在被使用。
15世纪,随着天文和航海的发展,计算工作越来越繁重,计算工具急需改进。1630年,英国数学家奥特雷德在使用当时流行的对数刻度尺做乘法运算时,突然想到,如果用两根相互滑动的对数刻度尺,不久省去了用两脚规度量长度了么。他的这个想法导致了机械化计算吃的诞生,但奥特雷德对这件事情并没有在意,此后200年里,他的发明也就没有被实际应用。
直到18世纪末,发明蒸汽机的瓦特成功制作了第一把计算尺,在尺座上增加了一个滑标,用来“存储”计算的中间结果,这种滑标很长时间一直被后人所沿用。
1850年以后,计算尺迅速发展,成为工程师随身携带的”计算器“,一直到20世纪五六时年代,计算尺仍然是工科大学生的一种身份标志。
第一台真正计算机的出现
1623年,法国数学家帕斯卡出生,三岁丧母,后由担任税务官的父亲养大。在帕斯卡小时候,每每看到父亲费力的计算税率税款的时候,就想帮父亲做点事情。
19岁时(1642),帕斯卡发明了人类有史以来第一台机械计算机——帕斯卡加法器。它是一种系列齿轮组成的装置,外形像一个长方盒子,用儿童玩具那种钥匙旋紧发条后才能转动,只能够做加法和减法。然而,即使只做加法,也有个“逢十进一”的进位问题。聪明的帕斯卡采用了一种小爪子式的棘轮装置。当定位齿轮朝9转动时,棘爪便逐渐升高;一旦齿轮转到0,棘爪就“咔嚓”一声跌落下来,推动十位数的齿轮前进一档。
1662年帕斯卡去世,不久后,在德国的大数学家莱布尼茨看到了帕斯卡关于加法计算机的论文,勾引起了他的发明欲。莱布尼茨早年经历坎坷,后来获得了一次去法国的机会,在巴黎的时候,他聘请了一些著名的机械专家和能工巧匠,终于在1674年制造出了一台更完美的机械计算机。
莱布尼茨发明的新型计算机约有1米长,内部安装了一系列齿轮机构,除了体积较大之外,基本原理继承于帕斯卡。不过,莱布尼茨技高一筹,他为计算机增添了一种名叫“步进轮”的装置。步进轮是一个有9个齿的长圆柱体,9个齿依次分布于圆柱表面;旁边另有个小齿轮可以沿着轴向移动,以便逐次与步进轮啮合。每当小齿轮转动一圈,步进轮可根据它与小齿轮啮合的齿数,分别转动1/10、2/10圈……,直到9/10圈,这样一来,它就能够连续重复地做加法。
连续重复的计算加减法
连续重复的计算加法是现代计算机做乘除法采用的办法,莱布尼茨的计算机加减乘除四则运算一应俱全。
在介绍莱布尼茨的时候还有一个小插曲。
传说大约在1700年左右的某天,莱布尼茨的朋友送给他一副中国的”易图“,其实就是八卦图,在看八卦图的时候,发现八卦的每一种卦象都有阴阳两种符号组成,这不就是有规律的二进制数字么,于是他就由此,率先系统提出了二进制的运算法则,直到今天,我们用到的计算机还是使用的二进制。
计算机发展到现在还是人去操作机器,还没有实现人与机器的对话,或者会所是把人类的思想告诉机器,让机器按照人的想法去自动执行。
说到实现人机对话,就需要说一下另外一个行业——纺织业。
提花编织机是具有升降纱线的提花装置,是一种能使绸布编织出图案花纹的织布机器。
最开始编织机编织图案相当费事。所有的绸布都是用经线(纵向线)和纬线(横向线)编织而成。若要织出花样,织工们必须细心地按照预先设计的图案,在适当位置“提”起一部分经线,以便让滑梭牵引着不同颜色的纬线通过。机器当然不可能自己“想”到该在何处提线,只能靠人手“提”起一根又一根经线,不厌其烦地重复这种操作。
1725 年:法国纺织机械师布乔发明了“穿孔纸带”的构想。布乔想出了一个“穿孔纸带”的绝妙主意。布乔首先设法用一排编织针控制所有的经线运动,然后取来一卷纸带,根据图案打出一排排小孔,并把它压在编织针上。启动机器后,正对着小孔的编织针能穿过去钩起经线,其它则被纸带挡住不动。于是,编织针自动按照预先设计的图案去挑选经线,布乔的“思想”“传递”给了编织机,编织图案的“程序”也就“储存”在穿孔纸带的小孔中。
1790年的时候法国机械师杰卡德,基本形成了改进提花机的构想,由于当时正是法国大革命时期,杰卡德为了参加革命,无暇顾及发明创造,直到1805年才真正完成”自动提花编织机“的制作。杰卡德为他的提花机增加了一种装置,能够同时操纵 1200 个编织针,控制图案的穿孔纸带后来换成了穿孔卡片。
在后来电子计算机开始发展的最初几年中,在多款著名计算机中我们均能找到自动提花机的身影。
18世纪末,法兰西发起了一项宏大的工程——人工编制《数学用表》,由于当时没有先进的计算工具,导致这项工作极其艰巨。发足数学界调集和大批的数学家,组成人工计算的流水线,算的昏天暗地才完成了17卷大部分的书稿,即便如此,计算出的《数学用表》仍有大量错误。
据说某一天,巴贝奇和著名的天文学家赫舍尔,对两大部头的天文数学用表品头论足,翻一页就是一个错误,翻两页有好几个错误。面对错误百出的《数学用表》,巴贝奇目瞪口呆。
巴贝奇在他的自传《一个哲学家的生命历程》里写到,大约在1812年的,“有一天晚上,我坐在剑桥大学的分析学会办公室里,神志恍惚地低头看着面前打开的一张对数 表。一位会员走进屋来,瞧见我的样子,忙喊道:‘喂!你梦见什么啦?’我指着对数表回答说:‘我正在考虑这些表 也许能用机器来计算!’”
巴贝奇的第一个目标是制作一台”差分机“,
所谓“差分”的含义,是把函数表的复杂算式转化为差分运算,用简单的加法代替平方运算。那一年,刚满20岁的巴贝奇从法国人杰卡德发明的提花编织机上获得了灵感,差分机设计闪烁出了程序控制的灵光──它能够按照设计者的旨意,自动处理不同函数的计算过程。巴贝奇耗费了整整十年光阴,于1822年完成了第一台差分机,它可以处理3个不同的5位数,计算精度达到6位小数,当即就演算出好几种函数表。由于当时工业技术水平极低,第一台差分机从设计绘图到机械零件加工,都是巴贝奇亲自动手完成。当他看着自己的机器制作出准确无误的《数学用表》,高兴地对人讲:“哪怕我的机器出了故障,比如齿轮被卡住不能动,那也毫无关系。你看,每个轮子上都有数字标记,它不会欺骗任何人。”以后实际运用证明,这种机器非常适合于编制航海和天文方面的数学用表。
成功后,巴贝奇连夜上书皇家学会,要求政府资助他建造第二台运算精度为20位的大型差分机。政府看到巴贝奇的研究有利可图,破天荒地与科学家签订了第一个合同。
然而,第二台差分机在机械制造工厂里触上了“暗礁”。第二台差分机大约有25000个零件,主要零件的误差不得超过每英寸千分之一,即使用现在的加工设备和技术,要想造出这种高精度的机械也绝非易事。
由于进度缓慢 到1842年的时候,政府宣布停止对巴贝奇的一切资助,连科学界的有人都用一种怪异的目光看他。
然而在这个时候,巴贝奇收到了一封信,写信人不仅对他表示理解而且还希望与他共同工作。娟秀字体的签名表明了她不凡的身份——伯爵夫人。
收到信函不久后,写信的女士来到了巴贝奇的实验室,巴贝奇感觉与这位女士似曾相识,却有想不起在哪里见过。直到这位女士说”您还记得我吗?十多年前,您还给我讲过差分机原理。”看到巴贝奇迷惑的眼神,她又笑着补充说:“您说我像野人见到了望远镜。”巴贝奇恍然大悟,想起已经十分遥远的往事。 原来这位女士是大名鼎鼎的英国诗人拜伦之独生女——阿达·奥古斯塔。
在大型差分机进军受挫的1834年,巴贝奇提出了一个更新更大胆的设计——通用的数学计算机。巴贝奇称它为“分析机”,它能够自动解算100个变量的复杂算题,每个数字可以达25位,速度每秒1次。
巴贝奇首先为分析机构思了一种齿轮式的“存贮库”,每一齿轮可贮存10个数,总共能够储存1000个50位数。分析机的第二个部件是所谓“运算室”,其基本原理与帕斯卡的转轮相似,但他改进了进位装置,使得50位数加50位数的运算可完成于一次转轮之中。此外,巴贝奇也构思了送入和取出数据的机构、以及在“存储库”和“运算室”之间运输数据的部件。他甚至还考虑到如何使这台机器处理依条件转移的动作。一个多世纪过去后,现代电脑的结构几乎就是巴贝奇分析机的翻版,只不过它的主要部件被换成了大规模集成电路而已。仅此一说,巴贝奇就当之无愧于计算机系统设计的“开山鼻祖”。
阿达非常准确地评价道:“分析机'编织’的代数模式同杰卡德织布机编织的花叶完全一样”。于是,为分析机编制一批函数计算程序的重担,落她的肩头。阿达开天辟地第一回为计算机编出了程序,其中包括计算三角函数的程序、级数相乘程序、伯努利函数程序等等。阿达编制的这些程序,即使到了今天,电脑软件界的后辈仍然不敢轻易改动一条指令。人们公认她是世界上第一位软件工程师。众所周知,美国国防部据说是花了250亿美元和10年的光阴,把它所需要软件的全部功能混合在一种计算机语言中,希望它能成为军方数千种电脑的标准。1981年,这种语言被正式命名为ADA语言,使阿达的英名流传至今。这些都是后话。
在当时,两人为把分析机的图纸变成现实,耗尽了全部财产,搞得一贫如洗,在此期间,两人为筹措研究经费,两人还商量“下海创收”,比如制作国际象棋玩具、赛马游戏机等等。但这并没有带来什么改变,为此,阿达还两次把丈夫家中的祖传珍宝拿去当铺换钱,不过后来又被阿达的母亲赎了回来。
在经历了贫困交加和无休止的脑力劳动,阿达的身体状况急剧恶化,1852年,年仅36岁的阿达怀着对分析机美好的梦想去世了。
阿达去世后,巴贝奇又默默的独自坚持了20年,晚年的他已经不能准确发音 和有条理的表达自己的意思,但仍坚持工作。
1871年巴贝奇去世。
最终分析机没有被制造出来。巴贝奇和阿达设想的分析机超出了他们所处时代至少一个世纪。
时间到了1890年,德国侨民霍列瑞斯博士在美国做人口普查(上一次人口普查人工花了7年),人口普查需要做大量工作,如年龄、性别等用调查表做采集的项目,还要计算每个社区有多少老人、小孩,男人、女人等。霍列瑞斯博士就想用机器自动统计这些数据。几年后
他根据巴贝奇的发明和杰卡德的穿孔纸带设计了机器。结果花了6周就得出了准确的数据。
杰卡德和霍列瑞斯分别用开创了程序设计和数据处理之先河。以历史的目光审视他们的发明,正是这种程序设计和数据处理,构成了电脑“软件”的雏形。
1896年霍列瑞斯博士创办了IBM公司的前身。
到了现在,制造出来的计算机都是机械的,机械计算机向电子计算机发展的过渡时期发生的主要事件。
1906年,美国的德福雷斯特发明了电子管,为计算机的发展奠定了基础。
1907年,德福雷斯特向美国专利局申报了真空三极管(电子管)的发明专利。真空三极管可分别处于“饱和”与“截止”状态。“饱和”即从阴极到屏极的电流完全导通,相当于开关开启;“截止”即从阴极到屏极没有电流流过,相当于开关关闭。其控制速度要比艾肯的继电器快成千上万倍。
1924年,IBM——一个有划时代意义的公司成立了。
1936年,美国青年霍德华·艾肯去哈佛共度物理学博士学位,由于博士论文设计设计空间电荷传导理论,需要计算非常复杂的非线性微分方程。艾肯想发明一种机器代替人工计算,幻想有一台计算机帮他解决数学难题。三年后,艾肯在图书馆里发现了巴贝奇和阿达的论文。 博士毕业后,艾肯进入了美国海军军械局做了一名小小的海军中尉。为了实现计算机的梦想,他想到了IBM。
正好艾肯的一位老师正在IBM出资创办的“哥伦比亚大学统计局”里任职,艾肯从这位老师这里听说了IBM董事长沃森的大名。这位老师为艾肯写了一封推荐信。艾肯拿到推荐信后,准备好了一份可行性报告,就去找沃森。沃森听完了艾肯的话以后,直接给艾肯划了100W美元。
有了钱,艾肯开始了“MARK I”(马克1号)的研发。
马克1号借助电流进行运算,最关键的部件采用继电器组成,马克1号上安装了大约3000个继电器。继电器接通电路表示“1”,继电器断开则表示“0”。继电器能在大约1/100秒内接通或断开电路。
为马克1号编制计算程序的也是一位女数学家格雷斯·霍波(G.Hopper)。有一天,她在调试程序时出现了故障,拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是,霍波恢谐地把程序故障统称为“臭虫”(bug,现在表示电脑系统或程序中的一些缺陷或问题)
1944年2月,马克1号计算机在哈佛大学正式运行。从外表看,它的外壳用钢和玻璃制成,长约15米,高约2.4米,自重达到31.5吨,他可以每分钟进行200次以上的运算。可以作23位数加23位数的加法,一次仅需要0.3秒;而进行同样位数的乘法,则需要6秒多的时间。
马克1号被称为最后一台“史前”计算机——机械/电动方式。
时间向前一年,也就是1943年,此时正是二战时期,美国为了实验新式火炮,需要计算火炮的弹道表。需要进行大量计算。一张弹道表需要计算近4000条弹道,每条弹道需要计算750此乘法和更多的加减法,工作量巨大。 你可以想象这样一个场景:一发炮弹大出去,100多人用一种手摇计算机算个不停,还经常出错,费力不讨好。
当时任职宾夕法尼亚大学莫尔电机工程学院的莫希利(John Mauchly)于 1942年提出了试制第一台电子计算机的初始设想——“高速电子管计算装置的使用”,期望用电子管代替继电器以提高机器的计算速度。
美国军方得知这一设想后,拨款成立了一个以莫希利、埃克特(John Eckert)为首的研制小组。终于在1946年2月14日,世界上第二台电子计算机,世界上第一台通用计算机 (多个行业都可以使用)埃历阿克”(ENIAC,译成中文是“电子数字积分和计算机”)诞生于美国宾夕法尼亚大学。
ENIAC长30.48米,宽6米,高2.4米,占地面积约170平方米,30个操作台,重达30英吨,耗电量150千瓦,造价48万美元。它包含了17,468根真空管(电子管)7,200根晶体二极管,1,500 个中转,70,000个电阻器,10,000个电容器,1500个继电器,6000多个开关。
每秒能进行5000次加法运算(据测算,人最快的运算速度每秒仅 5次加法运算),每秒400次乘法运算,是使用继电器运转的机电式计算机的1000倍、手工计算的20万倍。。它还能进行平方和立方运算,计算正弦和余弦等三角函数的值及其它一些更复杂的运算。
以我们的眼光来看,这当然很微不足道。但这在当时可是很了不起的成就!原来需要20多分钟时间才能计算出来的一条弹道,现在只要短短的30秒!
第一台电子计算机:
阿塔纳索夫-贝瑞计算机(Atanasoff–Berry Computer,通常简称ABC计算机)在1937年设计,不可编程,仅仅设计用于求解线性方程组,并在1942年成功进行了测试。然而,这台计算机用纸卡片读写器实现的中间结果存储机制是不可靠的。而且,在发明者约翰·文森特·阿塔纳索夫因为二战任务而离开爱荷华州立大学之后,这台计算机的工作就没有继续进行下去[2]。ABC计算机开创了现代计算机的重要元素,包括二进制算术和电子开关[3]。但是因为缺乏通用性、可变性与存储程序的机制,将其与现代计算机区分开来。这台计算机在1990年被认定为IEEE里程碑之一。
阿塔纳索夫和克利福德·贝瑞的计算机工作直到1960年才被发现和广为人知,并且陷入了谁才是第一台计算机的冲突中。那时候,ENIAC普遍被认为是第一台现代意义上的计算机,但是在1973年,美国联邦地方法院注销了ENIAC的专利,并得出结论:ENIAC的发明者从阿塔纳索夫那里继承了电子数字计算机的主要构件思想。因此,ABC被认定为世界上第一台计算机
埃历阿克虽然威力强大,但是它毕竟还很不完善,比如存在着耗电多、费用高的缺点。它的耗电量超过174千瓦,据说那些年,只要埃历阿克一开动,整个费城城市的所有灯光顿时黯然失色。那些个电子管发光又发热,平均每隔7分钟要损坏一只。虽然当初只花了军械部40万元的研制费用,可谁能料到,维护它的费用后来竟超过200万之巨!埃历阿克最致命的缺点是程序与计算两分离。指挥埃历阿克2万只电子管工作的程序指令,被存放在机器的外部电路里。需要计算某个题目前,埃克特必须分派几十员精兵强将,把数百条线路用手接通,像一群电话接线员那样手忙脚乱地忙活好几天,才能进行几分钟运算。
这时,冯·诺依曼用高超的理论和技术方法,一举攻克了巨大的难关。
在埃历阿克尚未投入运行前,冯·诺依曼就已开始着手起草一份新的设计报告,要对这台电子计算机进行脱胎换骨的改造。他把新机器的方案命名为“离散变量自动电子计算机”,英文缩写译音是“埃德瓦克”(EDVAC)。1945年6月,冯·诺依曼与戈德斯坦、勃克斯等人,为埃德瓦克方案联名发表了一篇长达101页纸洋洋万言的报告,即计算机史上著名的“101页报告”。这份报告奠定了现代电脑体系结构坚实的根基,直到今天,仍然被认为是现代电脑科学发展里程碑式的文献。报告明确规定出计算机的五大部件(输入系统、输出系统、存储器、运算器、控制器),并用二进制替代十进制运算,大大方便了机器的电路设计。埃德瓦克方案的革命意义在于“存储程序”──程序也被当作数据存进了机器内部,以便电脑能自动依次执行指令,再也不必去接通什么线路。
人们后来把根据这一方案思想设计的机器统称为“诺依曼机”。自冯·诺依曼设计的埃德瓦克始,直到今天我们用“奔腾”芯片制作的多媒体计算机为止,电脑一代又一代的“传人”,大大小小千千万万台计算机,都没能够跳出诺依曼机的掌心。在这个意义上,冯·诺依曼是当之无愧的“电脑之父”。
第一代电子管计算机(1946~1958):
特点: 操作指令是为特定任务而编制的,每种机器有各自不同的机器语言,功能受到限制,速度也慢。另一个明显特征是使用真空电子管和磁鼓储存数据。
第二代晶体管计算机 (1956-1963):
特点:
晶体管代替了体积庞大电子管,使用磁芯存储器。体积小、速度快、功耗低、性能更稳定。还有现代计算机的一些部件:打印机、磁带、磁盘、内存、操作系统等。在这一时期出现了更高级的COBOL和FORTRAN等编程语言,使计算机编程更容易。新的职业(程序员、分析员和计算机系统专家)和整个软件产业由此诞生。
第三代集成电路计算机 (1964-1971):
特征是以中小规模集成电路,来构成计算机的主要功能部件。主存储器采用半导体存储器。运算速度可达每秒几十万次至几百万次基本运算。在软件方面,操作系统日趋完善。
第四代大规模集成电路计算机 (1971-至今):
指从1970年以后采用大规模集成电路(LSI)和超大规模集成电路(VLSI)为主要电子器件制成的计算机,重要分支是以大规模、超大规模集成电路为基础发展起来的微处理器和微型计算机。
发展阶段 |
逻辑元件 |
主存储器 |
运算速度(每秒) |
软件 |
应用 |
第一代(1946-1958) |
电子管 |
电子射线管 |
几千次到几万次 |
机器语言、汇编语言 |
军事研究、科学计算 |
第二代(1958-1964) |
晶体管 |
磁芯 |
几十万次 |
监控程序、高级语言 |
数据处理、事务处理 |
第三代(1964-1971) |
中小规模集成电路 |
半导体 |
几十万次到几百万次 |
操作系统、编辑系统、应用程序 |
有较大发展开始广泛应用 |
第四代(1971-至今) |
大规模超大规模集成电路 |
集成度更高的半导体 |
上千万次到上亿次 |
操作系统完善、数据库系统、 高级语言发展、应用程序发展 |
渗入社会各级领域 |
参考: 《电脑史话》、维基百科、百度百科