heb*_*bbo 7 memory-management kernel-module virtual-memory linux-kernel
我正在编写一个内核模块,由进程p1调用以覆盖属于目标进程p2的数据页.
首先,在内核模块内部并且在响应p1发出的proc文件系统的写事件时.我使用目标进程的进程id(p2)来搜索后者的任务结构(p2_task).
要搜索我使用的特定页面get_user_pages()
,显然在(p2_task->mm
)上调用它.然后我调用了kmap()
上一个函数返回的页面.一旦我得到指针,我就使用典型的内存函数(memset()
)来写入该内存.最后叫了kunmap()
.
但是,一旦进程再次开始运行,我就可以看到我所做的对目标进程p2没有影响.
我不确定我做错了什么.有人可以帮忙吗?
我怀疑在回应来自p2的请求时,某种程度上你无法写入内存属于进程p2.从这里开始,我们处于不同的背景下.
这是真的,如果不是我能检查的其他内容.如果是问题,反正我可以解决这个问题吗?