1.3_1操作系统的运行机制
1.内核程序 vs 应用程序
- 普通程序员写的程序就是应用程序
- 微软、苹果自己开发操作系统,他们写的是内核程序,由很多内核程序组成了操作系统内核,或简称内核(Kernel),内核是操作系统最重要最核心的部分,也是最接近硬件的部分。
一个操作系统只要内核就足够**(eg: Docker -> 仅需 Linux 内核)**,操作系统的功能未必都在内核中,如图形化界面GUI。
2.内核态 vs 用户态
CPU有两种状态,内核态和用户态。
- 处于内核态时,说明此时运行的是内核程序,此时可以执行特权指令
- 处于用户态时,说明此时运行的是应用程序,此时只能执行非特权指令
CPU中有一个寄存器叫程序状态寄存器(PSW),
其中有个二进制位,1表示“内核态”,0表示“用户态”。
**别名:**内核态=核心态=管态;用户态=目态
3.内核态、用户态的切换
内核态 → 用户态:执行一条特权指令(修改PSW)的标志位为“用户态”,这个动作意味着操作系统将主动权让出CPU使用权;
用户态 → 内核态:由中断引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权