OS笔记一:操作系统是什么以及计算机如何加载它

  • 要学到什么程度? 能改操作系统,知道操作系统为我们提供了哪些接口,并且知道这些接口内部的实现原理
    OS笔记一:操作系统是什么以及计算机如何加载它

操作系统是一个管理硬件的软件,存储在硬盘上,而计算机的运行机制是从内存取址,然后加载到CPU执行,因此要运行操作系统,就要把操作系统加载到内存,然后让CPU从内存取址执行。本文主要论述了OS是什么,计算机怎么工作以及如何把OS加载到内存。

什么是操作系统

情景引入

在屏幕上输出hello,world时,为什么不给CPU指令,让CPU把内存中存储的h,e,l,l,o分别通过总线传给显存,然后显示呢?为什么只运行printf("hello,world"); 就行了而不直接操作硬件呢,其他的工作是谁做了呢?
操作系统

操作系统都要帮我们管理哪些硬件
  • CPU
  • 内存
  • 磁盘
  • 文件系统
  • 终端
  • 多核CPU
  • 网络
  • 电源

操作系统是控制硬件的软件,那计算机是如何加载操作系统的呢?

要回答这个问题需要知道:

  1. 计算机是怎么工作的,从图灵提出不能改变控制器内容的图灵机模型,到图灵又提出可以在纸袋上设置控制器内容的通用图灵机模型,再到冯诺依曼提出存储程序思想。总结起来就是:计算机把程序和数据存储在内存中,然后用IP(instruct poing或者也叫pc) 指向一条指令,通过总线将这条指令加载到CPU中执行,然后IP移动,不断取址执行
    OS笔记一:操作系统是什么以及计算机如何加载它
  2. 知道了计算机是取址执行的了以后,计算机要加载操作系统,肯定要通过指令实现,那么计算机怎么用指令加载操作系统的呢?
  3. 计算机通电以后指令的执行顺序
    在内存中有一部分是固化的,即ROM BIOS部分,位置为0xFFFF0, 而在硬件中会设置上电时CS = 0xFFFF, IP = 0x0000,所以计算机执行的第一条指令就是ROM BIOS的第一条指令,在这部分计算机会检查硬件部分有没有问题,没有问题的话就会读入一个扇区(512字节)放到内存,而这个扇区就是操作系统的引导扇区。 具体如下:
    OS笔记一:操作系统是什么以及计算机如何加载它
  4. 引导扇区会让计算机干什么呢?
    1. 输出logo
    2. 加载setup
    3. 加载system
      OS笔记一:操作系统是什么以及计算机如何加载它
      至此,操作系统就都在内存里了,可以取址执行了~
计算机是怎么工作的

计算机是一个计算模型的实现,这个模型就是图灵机,图灵机的控制器内的逻辑是写死的,有一定的局限性。
OS笔记一:操作系统是什么以及计算机如何加载它
为了实现控制器逻辑可变,图灵还提出了通用图灵机
OS笔记一:操作系统是什么以及计算机如何加载它
但是现在只是一个计算模型,并不能真实使用。

如何实现从通用图灵机到现在广泛意义上的计算机呢
冯诺依曼的存储程序思想
取址执行
将内存里IP指向的指令放入CPU执行,然后不断地取址执行