C 在linux中获取内存物理到pid的映射

C 在linux中获取内存物理到pid的映射,c,linux,memory-management,kernel,C,Linux,Memory Management,Kernel,在Linux中有没有办法获取某个物理地址属于哪个进程?我读过关于/proc/pid/pagemap的文章,但这是虚拟到物理的翻译。我想知道,对于每个物理页面,是否有办法获取该页面属于哪个进程 例如:物理页面1属于内核 物理页面2属于 等…请记住,一个物理页面可以属于多个进程。是的,我指的是一个特定的时间点,即使在特定的时间点,一个物理页面仍然可以属于多个进程。想想共享内存和库代码。你说得对!如果我也能得到这些信息那就太好了。有没有办法知道物理页面是内核还是共享库的一部分?无论如何,如果/proc

在Linux中有没有办法获取某个物理地址属于哪个进程?我读过关于/proc/pid/pagemap的文章,但这是虚拟到物理的翻译。我想知道,对于每个物理页面,是否有办法获取该页面属于哪个进程

例如:物理页面1属于内核 物理页面2属于


等…

请记住,一个物理页面可以属于多个进程。是的,我指的是一个特定的时间点,即使在特定的时间点,一个物理页面仍然可以属于多个进程。想想共享内存和库代码。你说得对!如果我也能得到这些信息那就太好了。有没有办法知道物理页面是内核还是共享库的一部分?无论如何,如果
/proc/pid/pagemap
包含虚拟到物理的转换,您可以读取每个pid的
pagemap
,并计算哪些物理帧属于哪个pid。但是,如前所述,给定一个帧,您将返回一个PID列表。当然,你必须拥有超级用户权限才能做到这一点。