在具有分页内存管理系统的系统上运行的应用程序可以直接访问物理内存吗?

问题描述

在操作系统上下文中,应用程序是否可以直接访问主内存?

解决方法

从 Linux 的角度来说,假设我们谈论的是用户级(非 root)进程,那么它们不能直接访问物理内存。出于安全和功能原因,他们也不应该这样做。分页的全部意义是从应用程序中抽象出物理内存,以便他们只认为他们拥有整个物理内存,但在幕后,他们的内存可能驻留在物理内存中,也可能不驻留(请参阅:页面错误,非连续分配,页面替换策略)。

对于 root 进程,我知道至少有一种方法:通过 /dev/memThis discussion 提到了如何mmap 进入 /dev/mem 以访问特定的物理地址。使用风险自负。