操作系统的启动
概述
启动
- 计算机体系结构概述
- 计算机内存和硬盘布局
- 开机顺序
操作系统是怎么从加电之后,启动到正常运行,最后让应用程序能够正常的去开展各自的工作。
中断、异常和系统调用
- 背景
- 中断、异常和系统调用相比较
- 中断和异常处理机制
- 系统调用的概念
- 系统调用的实现
- 程序调用与系统调用的不同之处
- 开销
操作系统是如何提供相应的接口来给我们的应用提供服务,以及控制外设和外设进行交互。
操作系统的启动
- 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的起始位置开始执行。从前期的初始化工作,到后期创建应用程序去运行,这样整个计算机系统以及硬件都处于操作系统的管理下了。