虚拟内存作为内存保护工具
虚拟内存通过在PTE中增加额外的许可位(permission bits),实现细粒度的内存访问控制。这是现代操作系统实现进程隔离和安全保护的基础。
常见许可位:
- 读(R):允许进程读取该页的内容。
- 写(W):允许进程修改该页的内容。
- 执行(X):允许进程将该页的内容作为指令执行。
当MMU翻译地址时,会同时检查访问类型是否匹配PTE中的许可位。若违反许可(如尝试写只读页、执行非可执行页),MMU触发段错误(segmentation fault) 异常,内核将终止违规进程。
隔离机制:
- 操作系统页(内核态)与用户页(用户态)通过超级用户位(supervisor bit) 隔离。用户态程序不能访问内核页,防止恶意篡改。
- 不同进程的页表互相独立,天然阻止了一个进程访问另一个进程的物理内存。
- 只读代码段(如
.text)被标记为R-X,防止代码被意外修改。
链接到
- 上一个知识点:9.7 虚拟内存作为内存管理工具
- 下一个知识点:9.9 地址翻译