具有分页内存管理系统的系统上的应用程序 运行 可以直接访问物理内存吗?
Can an application running on a system with a paging memory management system directly access the physical memory?
在操作系统的上下文中,应用程序是否可以直接访问主内存?
从 Linux 的角度来看,假设我们谈论的是用户级(非 root
)进程,那么不,它们不能直接访问物理内存。出于安全和功能原因,它们也不应该。分页的全部意义在于从应用程序中抽象出物理内存,这样他们只认为他们拥有整个物理内存,但在幕后,他们的内存可能驻留在物理内存中,也可能不驻留在物理内存中(参见:页面错误,非连续分配, 页面替换政策)。
对于 root
进程,我至少知道一种方法:通过 /dev/mem
。 This discussion 提到如何将 mmap
转换为 /dev/mem
以访问特定的物理地址。不过使用风险自负。
在操作系统的上下文中,应用程序是否可以直接访问主内存?
从 Linux 的角度来看,假设我们谈论的是用户级(非 root
)进程,那么不,它们不能直接访问物理内存。出于安全和功能原因,它们也不应该。分页的全部意义在于从应用程序中抽象出物理内存,这样他们只认为他们拥有整个物理内存,但在幕后,他们的内存可能驻留在物理内存中,也可能不驻留在物理内存中(参见:页面错误,非连续分配, 页面替换政策)。
对于 root
进程,我至少知道一种方法:通过 /dev/mem
。 This discussion 提到如何将 mmap
转换为 /dev/mem
以访问特定的物理地址。不过使用风险自负。