学习操作系统原理最好的方法是自己写一个简单的操作系统。
在大学计算机课程中会学到一个叫冯·诺依曼结构的东西,很多同学当时学的也不是很清楚,也就是记住冯·诺依曼结构中五个部分的名称,能应付考试。主要原因还是当时大家的计算机知识比较少,的确不好深入理解。
计算机组成与运行原理和冯·诺依曼结构密切相关,今天我们就来回顾一下冯·诺依曼结构,也许能温故知新。
1946年冯·诺依曼提出了计算机的三个基本原则:
- 计算机硬件由五个部分组成:运算器、控制器、存储器、输入设备和输出设备。
- 计算机采用二进制。
- 计算机采用“存储程序”模式。
以上三个基本原则虽然是七十多年前提出的,但现在的计算机仍然沿用这些原则。
下面将这三个基本原则简单介绍一下:
一、计算机硬件的五个部分
冯·诺依曼结构中五个部分分别对应哪些东西呢?我大概列举了一下:
- 运算器+控制器=CPU。
- 存储器:随机存储器RAM(内存、显存),只读存储器ROM。
- 外部存储:硬盘、软盘、光盘、优盘、磁带、纸带等。
- 输入设备:键盘、鼠标、扫描仪、外部存储等。
- 输出设备:显示器、音响、打印机、外部存储等。
计算机发明七十多年了,在计算机发展的初期,计算机是一个庞然大物,冯·诺依曼结构中的五个部分每个都很大。而现在的笔记本电脑很轻便,一个人就能很轻松的拎走。我们需要结合现在和历史的角度去分析冯·诺依曼结构中的五个部分。
从现在的角度看,运算器和控制器已经集成到同一个芯片里了,叫CPU,就像图中画的那样。
存储器包括随机存储器RAM和只读存储器ROM。RAM主要是指内存和显存。ROM主要存放BIOS等计算机内置程序,特点是断电后不会像RAM那样丢失数据。
有时候我们会看到一个叫“外部存储器”的概念,主要包括硬盘、优盘、光盘、软盘,甚至包括古老的磁带和纸带。这些东西都不属于冯·诺依曼结构中的存储器,而属于输入设备或输出设备。
二、计算机采用二进制
在今天看来计算机采用二进制是理所当然的事,然而当年一开始发明的计算机采用的是十进制,因为十进制符合人类的习惯。为了让计算机硬件在设计上更加简单可靠,后来还是采用了冯·诺依曼提倡的二进制。因为从电路上说,有电和没电是两种非常容易区分的两种状态,正好对应数学上的二进制。
三、计算机采用“存储程序”模式
这个可以对比一下算盘,在用算盘做计算时,算盘上只有数据,而怎么计算是人来一步一步操作的。也就是说算盘并不知道该怎么计算,这样就导致算盘无法实现计算自动化。而冯·诺依曼提出的“存储程序”的意思就是将算法和数据都设计成计算指令(也就是后来的汇编指令),放入内存中,然后控制器会从内存中读入第一条指令并执行,然后会读入并执行下一条指令,然后会读入并执行下下一条指令……就这样,计算机终于实现了计算自动化。而且计算机取指令和执行指令的速度要比人拨动算盘快很多,这样使计算机实现了高速自动化计算,同时也使计算机有了更大的实用价值。而我们平时写的各种程序,最终会转化为这样的指令。我觉得这才是程序员诞生的起点。这里需要注意的一点是我们平时说的程序放在硬盘或其它外部存储器中只是一个普通的文件,只有加载到内存后才能执行。