操作系统的启动

概述

启动

  • 计算机体系结构概述
  • 计算机内存和硬盘布局
  • 开机顺序

操作系统是怎么从加电之后,启动到正常运行,最后让应用程序能够正常的去开展各自的工作。

中断、异常和系统调用

  • 背景
  • 中断、异常和系统调用相比较
  • 中断和异常处理机制
  • 系统调用的概念
  • 系统调用的实现
  • 程序调用与系统调用的不同之处
  • 开销

操作系统是如何提供相应的接口来给我们的应用提供服务,以及控制外设和外设进行交互。

操作系统的启动

  • DISK:存放OS(操作系统开机前是存放在磁盘上的)
  • BIOS:基本I/O处理系统(开机后,能够让计算机系统检测各种各样的外设)
  • Bootloader:加载OS(将硬盘上的操作系统加载内存中,让CPU可以执行操作系统)

操作系统的启动
看图可以发现在整个计算机内存里面,有一部分空间BIOS已经占据了,还有很多的free space。BIOS第一步需要从一个特定的地址开始执行。一开始加电,BIOS就会从这个地址开始,它会完成一系列的工作。包括POST(加电自检)检查设备能否正常工作。设备(屏幕(显卡),键盘鼠标(执行BIOS))
BIOS会进行一些初始化的基本的检测工作如果检查设备能够正常工作,BIOS就会把BootLoader从磁盘加载到内存中。

BIOS是如何把Bootloader加载到内存中的
操作系统的启动

bootloader一般放在硬盘的第一个引导扇区(512byte),BIOS将bootloader加载到内存中。接下来把更复杂的软件OS从硬盘中加载到内存中,这是BootLoader的主要功能。当BIOS把bootloader加载到内存中后,cpu就由bootloader来掌控了,bootloader接下来需要找到硬盘的操作系统的起始扇区以及操作系统的长度。把磁盘块的信息读到内存中去,当bootloader的工作完成后。cpu的控制权就交给OS,也就是cpu在跳到OS的起始位置开始执行。从前期的初始化工作,到后期创建应用程序去运行,这样整个计算机系统以及硬件都处于操作系统的管理下了。