目录
一、操作系统的启动
OS开机之前存放在DISK里,计算机通电时,BIOS会检查各种外设,当各种外设能够正常运行时,会将Bootloader加载到内存中,而Bootloader会加载OS,能够让OS从磁盘放到内存中去。
二、中断/异常/系统调用
操作系统和外设产生中断,和应用程序产生异常和系统调用。
中断:来自不同的硬件设备的计时器和网络的中断,来源于外设。
异常:非法指令或其他坏的处理状态,一些意想不到的情况发生,来源于不良的应用程序。
系统调用:应用程序主动向操作系统发出服务请求,来源于应用程序。
三者的区别
源头:
中断来自外设
异常来自应用程序意想不到的行为
系统调用时应用程序主动请求操作提供服务
处理时间:
中断是异步的,用户并不知道什么时候产生这个事件
异常是同步的,执行到某条指令的时候,一定会产生
系统调用是异步或同步的。
响应:
中断是持续的,对应用程序是透明的
异常是杀死或者重新执行产生异常的应用程序指令
系统调用是等待和持续
三者执行的过程
中断在硬件上是设置中断标记,在软件上是操作系统保存当前处理状态,中断服务程序处理,清除中断标记,恢复之前保存的处理状态
异常在硬件上是异常编号,在软件上是保存现场,异常处理,异常处理包括杀死产生异常的程序和重新执行异常指令,恢复现场
系统调用:程序访问主要是通过高层次的API接口而不是直接进行系统调用
三、应用程序为什么不能直接访问外设?
1、操作系统是一个可信任的软件,能够给我们提供安全的服务,而应用程序不可信任
2、操作系统能够给上层应用程序提供简单一致的接口,使得上层应用不需要关注底层的设备,针对不同的设备开发不同的软件