计算系统的分层
信息层是一个纯概念层,反映了在计算机上表示信息的方式。
硬件层由计算机系统的物理硬件组成
程序设计层负责处理软件、用于实现计算的指令以及管理数据。
操作系统是用来管理计算机资源的。
前面的分层都属于内部层,重点在于使计算机系统运转,而应用层的重点则是用计算机解决真实世界的问题。
通信层是计算机系统操作的基础层。
计算机硬件简史
早期历史
公元前十六世纪,出现了算盘(abacus)这种记录数值的工具。
十七世纪中叶,法国数学家 Blaise Pascal 建造并出售了一种齿轮驱动的机械机器,它可以执行整数的加法和减法运算。
十七世纪末,德国数学家 Gottfried Wilhelm von Leibniz 建造了第一台能够进行四则运算的机器。遗憾的是,当时由于机械齿轮和操纵杆的水平有限使得Leibniz机的结果并不那么可信。
十八世纪晚期,Joseph Jacquard 发明了Jacquard织布机。 它利用一套穿孔卡片来说明需要什么颜色的线,从而控制了纺织图案。它第一次使用了穿孔卡片这种输入形式。
十九世纪英国数学家Charles Babbage 发明了分析机(analytical engine)。这台机器由于设计过于复杂而没有被建造出来。设计中第一次出现了内存。采用了与Jacquard织布机相同的,使用穿孔卡片输入数据的方式。
第一位程序员
Ada Augusta是英国的一名数学家,以第一位程序员著称。循环的概念也归功于她。美国国防部广泛使用的Ada程序设计语言也是用她的名字命名的。
十九世纪晚期和二十世纪初,计算系统迅速发展,William Burroughs 制造并销售了第一台机械加法机(mechanical adding machine)。
Herman Hollerith发明了第一台机电制表机,从穿孔卡片读取信息。(后来Hollerith创建了IBM公司)
图灵机
1936年,英国数学及Alan Turing发明了一种抽象数学模型,也就是图灵机(Turing machine),为计算理论的主要领域奠定基础。计算机科学这一领域的最高荣誉奖项就是图灵奖(Turing Award)。
电子计算机发展历史
二战爆发的时候,已经有几台计算机正在处于设计和建造之中。
Harvard Mark Ⅰ和 ENIAC是当时最著名的两台机器。
EDVAC的建造完成于1950年。
UNIVAC Ⅰ是第一台用于统计美国总统大选结果的计算机。
UNIVAC Ⅰ的出现,结束了以算盘为开端的计算的早期历史。
第一代计算机(1951-1959)
第一代计算机使用真空管(vacuum cube)存储信息。它不是很可靠。
主存储器
在读/写磁头下旋转的磁鼓
输入设备
读卡机(card reader),可以阅读IBM卡上的孔。
磁带驱动器( megnetic tape drive )。磁带是线性存储设备。
输出设备
穿孔卡片( punched card )或行式打印机(line printer).
在计算机存储器外部的存储设备叫做辅助存储设备(auxiliary storage device),输入设备、输出设备和辅助存储设备一起构成了外围设备(peripheral device)
第二代计算机(1959-1965)
以晶体管(transistor)的出现为标志。
出现了即时存取存储器(immediate-access-memory)
磁盘(magnetic disk)作为一种新的辅助存储设备出现了。磁盘上的数据都有一个地址,磁头可以直接移动到存储所需信息的特定位置。
第三代计算机(1965-1971)
第三代计算机的特征是集成电路(integrated circuits).
摩尔定律被提出。
晶体管存储器不稳定,信息将会在断电之后消失。因此辅助存储设备是必须的
终端(Terminal)在这一代计算机中出现。使得用户可以直接访问计算机,屏幕可以立即提供响应。
第四代计算机(1971至今)
大规模集成化( large-scale integration )是第四代计算机的特征。
摩尔定律被改写为芯片的集成度每18个月增长一倍。
20世纪80年代中期,出现了工作站(workstations)
摩尔定律被改写为每十八个月,计算机的性能会在同样价格水平下增长一倍,或者以一半的价格就可以购买到同样的计算机性能。
并行计算( parallel computing )
使用并行体系架构的计算机依靠的是一套互相连接的中央处理器
联网
Internet由分布在世界各地的不同网络组成,这些网络之间采用通用的TCP/IP(传输控制协议/网际协议,Transmission-Control Protocol/Internet Protocal)协议进行通信。
计算机软件简史
第一代软件(1951-1959)
第一代程序是用机器语言编写的。
第一代人工程序设计语言——汇编语言( assembly languages )。汇编语言使用助记码表示每条机器语言指令。
汇编语言通过汇编器(assembler)把助记码转换为等价的机器语言
第二代软件(1959-1965)
出现了高级语言,比如FORTRAN 和 COBOL。
高级语言的出现加速了在多台计算机上运行同一个程序。
每种高级语言都具有相应的翻译程序,把高级语言编写的语句翻译成等价的机器码指令。最早的时候,高级语言通常被翻译成汇编语言,然后再把汇编语句翻译成机器码。
第三代软件(1965-1971)
出现了操作系统(operating system)
第四代软件(1971-1989)
20世纪70年代出现了结构化程序设计( structured-programming)方法.
出现了C语言,使用C语言的时候,用户可以在高级程序中使用一些汇编语句
更强大的操作系统被开发出来。
第五代软件(1990至今)
第五代软件中有三个著名事件
1、微软公司的崛起
2、面向对象的程序设计方法
3、万维网的普及