c - 虚拟页面权限位和区域结构权限位的区别
问题描述
我是 Linux 和 C 的初学者,对虚拟页面权限位和区域结构权限位有疑问。如下图所示:
我不明白的是,既然我们有页面级别的权限控制,那么有区域结构级别的权限控制有什么意义呢?如果我们希望一个区域中的所有页面都是只读的,那么我们只需将每个虚拟页面的读取位设置为是,写入位设置为 0,那么为什么要双重定义呢?
解决方案
页面级权限是在页面映射进出时按需设置的!vm_area_struct
用于检查页面本身的权限应该是什么。
每次从页面读取或写入任何字节时,CPU 本身都会检查页面级别的权限位。
推荐阅读
- git - 在 VSCode 的 git repo 中查看隐藏文件夹的终端命令是什么?
- c# - 获取剪贴板中文件的位置
- css - 在新的 CSS 段落选择器中保留 .md 格式
- kotlin - 从 HashMap 打印值
- python - 为什么“范围(10)是范围(10)”不返回True?
- r - 是否有用于将治疗组指定为线性回归指标的 R 函数?
- c++ - 我可以输入输入,但在 Visual Studio 2017 中用 C++ 运行代码 (CTRL+F5) 时看不到输出
- c# - 如何生成具有随机内容和大小的随机文本文件?
- c - 用 C 编程计算文本文件中给定单词的频率
- c - 每个函数在c中都有自己的堆栈吗?