有没有办法获取锁定内存页的物理地址?

有没有办法获取锁定内存页的物理地址?

如果使用 mlock()[注 1] 系统调用将某个页面锁定在主内存中,那么是否有一种实用的方法可以获取该页面在主内存中的物理地址?

/proc/mem 机制用于在进程具有特权时提供物理内存的内容,但现在默认情况下已禁用。据我所知,逻辑内存页面的物理地址不可用,除非通过监视内核的页表间接获取。

如果存在获取物理地址的现有机制,它可能适用于任何内存页面,但当然是不可靠的,除非页面被锁定。

注 1:具有锁定选项的 mmap() 调用可能工作方式相同。

相关内容