操作系统的启动
目录
首先要知道, OS并没有放在内存当中, 而是放在了DISK中的.
当开机的时候, 首先是由BIOS(Basic Input Output System)检测各种各样的外设, 通过了之后才会去加载OS(由BootLoader
完成).
BIOS在内存中是有一个固定的地址的, 以x86
为例, BIOS是存放在CS:IP = 0xf000:fff0
这个地址中的(CS: 段寄存器; IP: 指令寄存器) .
BootLoader启动过程
操作系统与设备和程序交互
操作系统的Interface包含三个:
- 系统调用(system call): 来源于应用程序主动向操作系统发出服务请求
- 异常(exception): 来源于不良的操作程序, 非法指令或者其他坏的处理状态( 内存出错)
- 中断(interrupt): 来源于外设. 来自不同的硬件设备的计时器和网络的中断
那为什么应用程序不能直接去访问外设呢, 而是通过操作系统?
首先从安全的角度, OS是一个特殊的应用软件, 和其他的应用程序最大的不同就是, OS对整个计算机有控制权, 它是可信任的. 如果应用程序直接访问外设的话, 很容易造成整个系统的崩溃.
另一个方面, 希望通过操作系统, 给上层的应用提供简单, 一致的接口, 使得应用程序不用关注底层设备的复杂性和差异性.