虚拟内存作为内存保护工具

虚拟内存通过在PTE中增加额外的许可位(permission bits),实现细粒度的内存访问控制。这是现代操作系统实现进程隔离和安全保护的基础。

常见许可位

  • 读(R):允许进程读取该页的内容。
  • 写(W):允许进程修改该页的内容。
  • 执行(X):允许进程将该页的内容作为指令执行。

当MMU翻译地址时,会同时检查访问类型是否匹配PTE中的许可位。若违反许可(如尝试写只读页、执行非可执行页),MMU触发段错误(segmentation fault) 异常,内核将终止违规进程。

隔离机制

  • 操作系统页(内核态)与用户页(用户态)通过超级用户位(supervisor bit) 隔离。用户态程序不能访问内核页,防止恶意篡改。
  • 不同进程的页表互相独立,天然阻止了一个进程访问另一个进程的物理内存。
  • 只读代码段(如 .text)被标记为R-X,防止代码被意外修改。

链接到