首页 文章

从Linux内核/内核模块“附加”用户空间进程

提问于
浏览
1

我想每60秒修改一个特定进程的虚拟到物理地址映射(即页表) . 我知道如何修改页表,如何相应地刷新缓存和TLB,以及如何利用workqueue每60秒调用一次我的函数 . 但是,我不确定如何从内核或内核模块“附加”到目标进程,假设目标进程没有启动任何系统调用 . 通过“附加”,我的意思是目标进程的行为与遇到中断(例如页面错误)时的行为类似,并且在保存上下文的情况下立即执行内核 . 那么可以这样做吗?

还可以理解内核代码或其他提示中任何类似用法的指针 .

1 回答

  • 0

    您最好的选择是让您感兴趣的过程应用动态虚拟地址,通过IOCTL调用模块或最终在驱动程序中调用的任何其他调用,使用wait_ *函数在进程上下文中休眠,然后每隔60分钟唤醒它 . 修改该线程中的页表的秒数 . 那你应该有保证的背景 .

相关问题