我能够将虚拟地址转换为内核空间中的物理地址映射(root用户)。我已经重用了这里提供的工具的代码
我想在用户空间做同样的转换。是否可以在用户空间(非 root 用户)?
上述工具在内核模式下使用 /proc/pid/maps 和 /proc/pid/pagemap 文件,
编辑:收到评论后,这是我更新的问题。
我想在非root权限的用户中将虚拟地址转换为物理地址,找到物理地址后,稍后我将使用它来查找到L2缓存集的映射。我的任务是找出我的数据在哪里加载到 L2 缓存中。
我是否需要编写一个内核模块来获取用户虚拟地址并返回物理地址?如果是这样,该方向的任何链接都会有很大帮助。
是 phys_addr = virt_to_phys(virt_addr); 正确的选择?也无法理解如何使用它/从我的程序中调用它?