在这个世界上,没有无缘无故的因,没有无缘无故的果,没有无缘无故的善,更没有无缘无故的恶,所有的发生,都是注定的因果循环。
战火催生的庞然大物,又会为我们带来什么样的果。
冯诺依曼计算机体系
计算机的诞生
1946年2月14日,美国军方研制的第一台电子计算机终于崭露头角。其3秒钟计算的弹道轨迹成果,远远超过了4000个人/月的计算量。在此之后,这台计算机为原子弹的诞生起到了关键的作用。
这台计算机有成千上万个电子管、二极管、电阻器等元件,电路的焊接点多达50万个;在机器表面,则布满电表、电线和指示灯。占地面积达170平方米,重达30吨。
硬件控制程序
早期的计算机是由门电路组成的,这些门电路通过组装出一个固定的电路板,来执行一个特定的程序,一旦需要修改程序功能,就要重新组装电路板。可想而知,如果想去修改一段小的程序逻辑,要耗费多么大的人力物力。
冯诺依曼体系的思想
冯.诺依曼结构消除了原始计算机体系中,只能依靠硬件控制程序的状况(程序作为控制器的一部分,作为硬件存在),将程序编码存储在存储器中,实现了可编程的计算机功能。
这种设计思想导致了硬件和软件的分离,即硬件设计和程序设计可以分开执行
需求的衍化
原本的计算机是为了解决“计算”的需求,由于通过硬件控制程度的笨拙以及不方便,冯诺依曼引入了存储的概念,使得计算机的基本的组成元件包含:
但是只基于如此两个设备的话,就只有大脑进行固定的计算,没有输入输出则毫无意义。于是计算机体系就迎来了新的成员,输入输出。整个基本的零部件如下:
冯诺依曼体系结构
编程语言的出现
人类与计算机的初步交流
最早的输入输出设备并不是键盘和显示器,而是打孔卡和打印机。用打孔卡来作为机器指令的输入,早在 18 世纪初就被用在织布机上了。早期的数字计算机就是用打孔卡来表达程序指令和输入的数据。
下图是 IBM 制造的打孔卡:
打孔卡
汇编语言的出现
试想一下,人们要将人类语言转换为二进制的语言才能与计算机进行交流,那一次输入要有多么的痛苦。于是翻译官(汇编)就出现了,它从表达能力上,做了如下几件事情:
- 使用形象的指令,来代替二进制指令,例如:add表示加;
- 使用特定的符 ,代替内存地址。
- 使用固定的修饰符,来表示函数,例如:function代表函数。
- 使用jmp、je、jne等符 ,代表程序跳转。
总体来说,汇编的出现,将人与机器的交流工作进行了解耦,人只关心程序的书写,而不需要记忆机器的指令。正式有了汇编,才诞生了众多的编程语言。
操作系统的凭空出世
编程语言的出现,加快了人们打开计算机世界的大门。在此之后,产生了各式各样的软件,自然地就带来了一系列的问题:
由此,操作系统应运而生。那么操作系统主要解决了哪些问题呢?
首先,操作系统解决的是软件治理的问题,大体可分为以下六个子系统:进程管理、存储管理、输入设备管理、输出设备管理、 络管理、安全管理等。其次,操作系统解决的是基础编程接口问题。这些编程接口一方面简化了软件开发,另一方面提供了多种软件共同运行的环境,实现了软件治理。
桌面应用的普及
软件世界里,最早出现的就是桌面应用,对于桌面程序,最核心的就是交互。
命令行交互
最早的桌面程序,都是设定好的命令,通过命令行去操作软件。但是这种方式的局限性太大,有限的命令满足不了人们的想象,另外在命名达到一定的规模后,翻阅和查找命令,就又成为了一个巨大的难题。前面所说的计算机语言不就是如此么。
图形界面交互
与命令行交互相比,图形界面的交互更为简单,一大堆的命令,只需要人为进行一次点击图像,就可以完成。同时,图形界面交互也解决了命令行交互里不能形象体现游戏的问题。在此之后,迎来了游戏行业的春天。
智能交互
随着输入输出设备的发展,图形界面的交互也逐渐迎来了智能交互,人们可以通过语音可以操控应用程序,实现类似于Siri的语音交流。
大型服务端应用的春天
桌面程序是为单个用户服务的,所以它的关注点是用户交互体验的不断升级,但是总归来说,单台物理机的能力和资源是有限的,在需求达到一定规模之后,单机的应用已经无法满足人类的需求。
服务端的出现与单机应用走了不同的路线,背后的驱动力不再是交互,而是数据。服务端的主要特点是:
总结
随着 会的不断发展,计算机也是不断的进步,但是从发展的历程上来看,计算机的每一次不断的演进都是为了解决某种问题而产生的,但是无论怎么变化,其核心的硬件结构一直没有变动过,可想而知其架构设计的优美。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!