x86 IA-32
在我的理解中,从用户空间程序访问内存不涉及操作系统。否则会很慢。
因此,无论是否启用分页,CPU 都应该以某种方式知道当前正在运行的代码可以访问该段/页面。
假设分页已关闭 - 因此 CPU 唯一可以参考(以确定访问权限)的是 GDT 中的段描述符。但是段描述符是否包含有关哪个进程可以使用哪个段的任何信息?
分页打开 - 页表条目是否包含有关谁可以访问此特定页面的任何信息?
Bit 2 (U/S) 用户/主管;如果为 0,则不允许用户模式访问此条目引用的 4 KB 页面
它确实包含特权级别,但它不足以确定当前代码是否可以访问该特定页面。
CPU + MMU 如何在不让操作系统参与每次内存读/写的情况下保护内存访问?
如果某些恶意进程在段选择器中加载了自己的值怎么办?
MMU 是否有操作系统在进程创建/上下文切换时填充的一些数据结构?