【发布时间】:2018-12-17 05:01:54
【问题描述】:
我是Linux和C的初学者,对虚拟页面权限位和区域结构权限位有疑问。 如下图所示:
我不明白的是,既然我们有页面级别的权限控制,那么有区域结构级别的权限控制有什么意义呢? 如果我们希望一个区域中的所有页面都是只读的,那么我们只需将每个虚拟页面的读取位设置为是,并将写入位设置为 0, 那为什么要双重定义呢?
【问题讨论】:
标签: c linux process mapping virtual-memory
我是Linux和C的初学者,对虚拟页面权限位和区域结构权限位有疑问。 如下图所示:
我不明白的是,既然我们有页面级别的权限控制,那么有区域结构级别的权限控制有什么意义呢? 如果我们希望一个区域中的所有页面都是只读的,那么我们只需将每个虚拟页面的读取位设置为是,并将写入位设置为 0, 那为什么要双重定义呢?
【问题讨论】:
标签: c linux process mapping virtual-memory
页面级权限在页面进出时按需设置! vm_area_struct 用于检查页面本身的权限。
CPU 本身会检查页面级别的权限位每次从页面读取或写入任何字节。
【讨论】:
在您的问题中,您遇到了虚拟记忆翻译和逻辑记忆翻译之间的区别。虚拟内存是使用二级存储模拟内存。逻辑内存是地址到物理地址的重定向。
页表定义了逻辑内存转换。操作系统表定义了虚拟内存转换。
【讨论】: