首页 > 解决方案 > 虚拟页面权限位和区域结构权限位的区别

问题描述

我是 Linux 和 C 的初学者,对虚拟页面权限位和区域结构权限位有疑问。如下图所示:

在此处输入图像描述

在此处输入图像描述

我不明白的是,既然我们有页面级别的权限控制,那么有区域结构级别的权限控制有什么意义呢?如果我们希望一个区域中的所有页面都是只读的,那么我们只需将每个虚拟页面的读取位设置为是,写入位设置为 0,那么为什么要双重定义呢?

标签: clinuxprocessmappingvirtual-memory

解决方案


页面级权限是在页面映射进出时按需设置的!vm_area_struct用于检查页面本身的权限应该是什么。

每次从页面读取或写入任何字节时,CPU 本身都会检查页面级别的权限位。


推荐阅读