从内核空间访问数据段

时间:2013-01-25 02:56:51

标签: c memory-management linux-kernel virtual-memory memory-model

我希望能够分辨出属于某个进程的页表中的哪些页面被用作数据段。 我正在使用Linux内核v 3.2 for amd64

这是我之前做过的,但没有奏效:

  1. 使用task->mm->start_data访问数据段(任务是目标流程的task_struct)。

  2. 搜索task->mm->mmap(链接列表)并将每个vm_area_structvm_start)的起始地址与task->mm->start_data进行比较。这里我假设数据段的开头与页面的开头对齐。

  3. 所有这些都应该在内核模块中完成。

    感谢。

1 个答案:

答案 0 :(得分:0)

经过一些研究看起来像传递任务 - > mm-> start_data到get_user_pages与kmap相结合就可以了。