小编典典

在Linux中如何从用户空间查找变量的物理地址?

linux

我想找到用户空间进程中定义的变量的物理地址吗?有什么办法可以使用root特权吗?


阅读 623

收藏
2020-06-02

共1个答案

小编典典

首先,您为什么要这样做?现代VM系统的目的是使应用程序程序员摆脱物理内存布局的复杂性。给他们每个人一个统一的地址空间,使他们的生活更轻松。

如果确实要执行此操作,则几乎确实需要使用内核模块。以常规方式获取变量的虚拟地址,使用它来索引进程页面表并读取找到的值(框架的物理地址)。然后添加页面偏移量以获得完整的物理地址。请注意,启用分页后,您将无法使用该地址。

(如果幸运的话,您也许可以从/ proc文件系统中获取VM区域的帧地址,因此不需要编写内核模块。)

2020-06-02