纵观计算机发展史,可知晓,是需求带动了发展,从古至今,一点点剖析。
(一)穿孔卡片机
公元1880年,美利坚合众国花了七年半的时候才完成了全国人口普查。有人发明了一种穿孔卡片机,通过把人口数据转换成打孔卡片,由机器统计数据,统计速度增加了五六倍。制表机穿孔卡第一次把数据转变成二进制信息。
(二)第一台计算机
1946年2月14日,世界上第一台电脑ENIAC在美国宾夕法尼亚大学诞生。
(三)早期计算机硬件发展
早期计算机没有复杂的图形界面,CPU主频不高,CPU内存直接通过总线(Bus)连接,因IO设备跟CPU速度差距太多,IO设备通过IO控制器连接到总线。
由于CPU内存速度较快,IO控制器速度较慢,总线设计复杂,就分化成南北桥,南桥处理IO,北桥连接CPU内存和PCI总线。
CPU与外设之间的数据传输瓶颈出现,促进了PCI总线诞生,通过让显卡、声卡、网卡、硬盘控制器等高速外围设备直接与CPU通信,计算机性能得到提升。
PCI速度最高位133MHz,不能满足人们的需求,于是又发明了AGP、PCI Express等诸多总线结构和相应控制芯片。
CPU也得到快速发展,50年间从几十kHz发展到4GHz,但从2004年起,CPU制造工艺达到物理极限,主频发展缓慢。多核计算机出现了。
(四)计算机软件
“计算机科学领域的任何一个问题都可以通过增加一个间接的中间层来解决”
计算机系统软件体系结构:硬件-》操作系统-》运行库-》应用程序
每个中间层之间需要有通信协议接口,中间层,让应用程序和硬件能保持相对独立,适应硬件和操作系统的高速发展。虚拟机技术是在硬件和操作系统间多加一个中间层。
(五)操作系统
操作系统的作用:一是提供抽象的接口,二是管理硬件资源。
为了充分利用CPU宝贵资源,硬件对CPU任务执行进行了调度轮流执行,后面由操作系统进行调度更安全可控。
(六)虚拟存储器
早期的计算机,程序直接运行在物理内存上,在多进程的情况下,会造成:
1.地址空间不隔离,容易被其他程序修改攻击
2.内存利用率低,当内存不足时,将程序占用空间移到磁盘,大数据量传输效率低
3.程序运行地址不确定,程序运行时的数据和目标指令地址需要固定地址(涉及到程序重定向问题)
利用虚拟存储器就可以解决上面的问题,通过妥善控制虚拟地址和物理地址的映射达到空间隔绝的作用。
(七)线程
CPU主频发展到瓶颈,开始向多核发展,多线程并发问题出现。
线程的调度、安全、用户线程和内核线程的映射,都是需要解决的问题。
计算机系统-计算机硬件及系统发展史