os_操作系统概述

4 min read

操作系统概述

1 为什么需要OS,他扮演了怎样的角色

总结两个词就是安全和方便。

OS承上启下,向下封装硬件,向上提供操作接口,将用户程序与硬件隔离保证了安全,封装API(中断异常系统调用)屏蔽了硬件编程细节,带来了方便。

2 中断、异常、系统调用

系统调用是用户程序主动发起的,想要借助内核来进行高级操作的函数,操作任何硬件外设都需要系统调用,例如读写文件、开辟内存、创建线程。

异常也是用户程序产生的不良信号,对于异常OS可能会杀死异常程序或者重新执行产生异常的指令。

中断是硬件产生的,OS会异步处理中断。

中断表记录了中断号和中断处理服务,在接收到特定中断后查表处理即可。异常同样也是类似的,只不过处理方式只有两种:杀死异常程序或重新执行指令。缺页异常就是很好的例子。

三者几乎每时每刻都在发生,是用户态进入内核态的三种方式。

3 用户态、内核态

用户程序无法直接访问外设,没有高级权限,必须切换到内核态。但是状态切换是有开销的,例如内核和用户程序各自有着堆栈地址不同,内核态映射到用户态的地址空间的内存拷贝,cacheTLB可能在切换过程中发生了变化,需要刷新。但是为了安全与稳定,这些开销都是值得的。 i

操作系统如何启动

1 基本概念

BIOS是指基本IO处理系统,一开始是放在主板ROM中的,启动时会加载到内存的固定地址(真实地址);

操作系统一开始是放在DISK上的;

BootLoader是加载OS到内存的,一开始也是放到磁盘的第一个主引导扇区,启动时也是加载到内存的固定地址(真实地址)。

image

image

2 过程

打开电源-->主板中内置的BIOS系统启动-->BIOS检测各种外设-->Boootloader装载OS-->OS启动完成

3 中断异常系统调用

系统调用来自程序主动发起的请求,异常则是来自程序的不良信号,中断来自外设。