我正在从主进程中分叉出一个子进程。物理地址/页面在分叉后被共享,但后来由于写时复制方案,一些物理页面被复制。我需要知道由于 COW 而重复的虚拟地址/页面。我知道一种机制 - 从 /proc/self/maps 或 smaps 文件中读取虚拟地址范围,并在 /proc/self/pagemap 中查找页面信息以获取 PFN,并在 /proc/kpagecount 中查找 PFN 以查看进程引用的数量等。但是,这需要管理员/根权限。 还有其他不需要 root/admin 访问权限的方法吗?
我尝试了上面解释的方法,但未能成功,因为不幸的是我没有 root/admin 权限。