微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用户空间中可以findmmap页面的不清楚吗?

可以在Linux 2.6.30以上的用户空间访问(非共享)mmap页面的不洁性? 平台特定的黑客和kludges欢迎。

理想情况下,我正在寻找一个位数组,每个页面(4kB?)的mmap'ed区域,如果该页面已经被写入,因为该区域已经被mmap化,这些数据被设置。

(我知道,编写这个程序可以跟踪这些信息,但是如果内核正在这样做的话,这样做似乎很愚蠢。)

谢谢,

如何通过命令行来识别特定的Linux风格?

在Linux中使用Awk比较两个文件

如果我们closures已经启动的terminal,linux是否会终止后台进程?

这是一个安全的方式与subprocess共享只读内存?

PHP获取文件的MIMEtypes

克里斯。

如何打开覆盖现有内容文件

在阻塞模式下的Linux TCP套接

如何写“命令-i interval | 尾巴“输出文件

使用sed删除文件中的空行命令是什么?

setuid与seteuidfunction

请参阅/ proc / * / pagemap 和 / proc / kpageflags接口。 首先告诉你PFN的地址,第二个告诉你给PFN的脏位。

请参阅fs / proc / task_mmu.c,Documentation / vm / pagemap.txt,Documentation / vm / page-types.c。

传统的解决方案是将mprotect只读,然后处理sigsegv并在重新保护之前将其标记为允许写入。 很早以前我们就在ObjectStore做过这个事情。

generic_writepages和balance_dirty_pages_ratelimited_nr似乎是与脏页面有关的入口点(2.6.20)。 我希望他们也能在2.6.30以上工作。 有趣的问题,我可以问你在写什么需要对页面进行控制吗?

这些数据会持续过时 – 当您的流程看到页面变脏时,页面可能会被写回。

也就是说, /proc/pid/smaps方法是将其映射为单页块,然后查看/proc/pid/smaps以查看块是否脏 – 即如果内核合并页面,则可能会失败。

不幸的是,由于页表对于用户空间进程是不可见的,所以没有某种内核补丁就可以做到最好。

如果您的位数组足够小,也许您可​​以使用英特尔上的调试寄存器(尽管我不确定它是如何在Linux上完成的)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐