内核/用户模式下的CPU

时间:2014-09-19 21:55:59

标签: linux-kernel cpu

CPU可以处于内核模式(完全权限)或用户模式。内核需要内核模式,而应用程序需要在用户模式下运行。但是CPU如何同时处于两种模式?

1 个答案:

答案 0 :(得分:1)

处理器通常包括一个模式标志,它指示处理器在给定时间处于哪种模式;那面旗帜不一定需要做很多事情。在一个简单的实现中,标志可能只控制是否允许处理器改变内存映射;处理器将包括一个简单切换到用户模式的指令,以及一个同时切换到内核模式并跳转到特定地址的指令。

如果内核将自己的代码存储在前面提到的地址然后切换内存映射,以便有问题的地址被写保护,那么用户代码就可以通过在某处存储请求来要求内核做某事。调用“切换到内核模式并跳转”指令。然后,内核代码可以启用其私有内存区域,检查用户模式代码存储的请求,根据请求执行操作,禁用其专用内存区域,切换回用户模式,然后返回执行用户模式代码。