目标
- 用户进程不允许修改其可读
text
段 - 用户进程不允许读写内核代码和数据结构
- 用户进程不允许读写其他进程的私有内存
- 用户进程不允许修改和其他进程共享的虚拟页,除非显式地触发了用于进程间通信的系统调用
机制
- 独立的虚拟内存空间
- 硬件地址解析
- 页表
方法
- 在
PTE
中加入额外的控制位
Since the address translation hardware reads a PTE each time the CPU generates an address, it is straightforward to control access to the contents of a virtual page by adding some additional permission bits to the PTE.
用户模式还是内核模式;读模式;写模式;
如果指令违反权限控制,则由CPU生成段错误segmentation fault
。
示例
-
以分页为基础的内存保护