我想使用我的Unix模块来写入另一个进程内存(我想在内核模式下执行它并避免使用pthread接口)。
我必须使用函数(如do_mmap(..),do_unmmap(..),sys_mprotect(..)等)来影响当前的进程内存,而不是我想要影响它的进程。
所以我想,我需要找到一种方法来对我想要的过程进行上下文切换,以便创建我想要的当前流程。我试图通过一个小的改动来复制schedule()的实现: 我换了一行:
next = pick_next_task(rq);
使用:
next = myNext;
我的问题是,时间表需要很多我不能包含的结构和功能,所以我必须重新实现它们。做这样的事似乎很糟糕。你有什么建议吗?
我想避免修改现有的内核,因此我不必强迫用户重新启动和修改他们的操作系统以便使用我的程序(这就是我使用模块的原因)。
顺便说一句,我使用Linux的“2.6.38-11-generic”版本。
答案 0 :(得分:1)
kmap()
或kmap_atomic()
(取决于具体情况)映射您需要的网页kunmap()
或kunmap_atomic()