问题描述
在操作系统上下文中,应用程序是否可以直接访问主内存?
解决方法
从 Linux 的角度来说,假设我们谈论的是用户级(非 root
)进程,那么它们不能直接访问物理内存。出于安全和功能原因,他们也不应该这样做。分页的全部意义是从应用程序中抽象出物理内存,以便他们只认为他们拥有整个物理内存,但在幕后,他们的内存可能驻留在物理内存中,也可能不驻留(请参阅:页面错误,非连续分配,页面替换策略)。
对于 root
进程,我知道至少有一种方法:通过 /dev/mem
。 This discussion 提到了如何mmap
进入 /dev/mem
以访问特定的物理地址。使用风险自负。