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