2

我试图了解英特尔 x86 MMU 架构提供的保护。我基本上对 MMU 何时会引发页面错误(page_fault,int 14)以及 CPU 何时会引发异常(general_protection fault,int 13)感到困惑。我知道当特权级别不匹配时,CPU 通常会引发异常。

但是谁将用户/管理员模式位映射到特权级别,是 MMU 还是 CPU?

特别是,当我清除页面的 pte 条目的 _PAGE_USER 标志时,我无法解释谁会引发异常,我预计 MMU 会引发错误(或者它是处理器?)

如果可以的话,请指出我的资源,以便我可以阅读以防万一这在某处可用。谢谢 !

4

1 回答 1

0

但是谁将用户/管理员模式位映射到特权级别,是 MMU 还是 CPU?

来自(https://software.intel.com/sites/default/files/319433-014.pdf

对线性地址的每次访问要么是主管模式访问,要么是用户模式访问。当前特权级别 (CPL) 小于 3 时执行的所有访问都是主管模式访问。如果 CPL = 3,则访问通常是用户模式访问。

简而言之,环 3 是用户,环 0-2 是主管

特别是,当我清除页面的 pte 条目的 _PAGE_USER 标志时,我无法解释谁会引发异常,我预计 MMU 会引发错误(或者它是处理器?)

故障由 MMU 引发,它是现代计算机 CPU 的一部分。所以,这并不重要。

Linux Kernel DevelopmentRobert Love 和Understanding the Linux KernelDaniel P. Bovet 的著作很好地涵盖了这个话题。前者关于 x86 上的 linux 内核实现的细节较少,通常更容易理解。

于 2014-08-14T19:52:23.167 回答