在高执行级别下,代码可以执行特权指令,访问任意的物理地址,这种CPU执行级别就对应着内核态。
如何区分用户态和内核态?
CS寄存器的最低两位表明了当前代码的特权级。
CPU每条指令的读取都是通过CS:eip这两个寄存器:
其中cs是代码段选择寄存器,eip是偏移量寄存器。
上述判断由硬件完成。
用户态切换到内核态的3种方式:a.系统调用 b.异常 c.外围设备的中断
在高执行级别下,代码可以执行特权指令,访问任意的物理地址,这种CPU执行级别就对应着内核态。
如何区分用户态和内核态?
CS寄存器的最低两位表明了当前代码的特权级。
CPU每条指令的读取都是通过CS:eip这两个寄存器:
其中cs是代码段选择寄存器,eip是偏移量寄存器。
上述判断由硬件完成。
用户态切换到内核态的3种方式:a.系统调用 b.异常 c.外围设备的中断