当前位置: 技术问答>linux和unix
(100分求助)用内核线程对用户进程操作(大侠/虾们出手了)
来源: 互联网 发布时间:2016-03-19
本文导语: 问题是这样的:做一个内核模块,来对用户进程进行操作,保存进程状态等,模块功能用线程实现。 请大侠们畅所欲言,给出意见和建议,有代码提示的更好 | http://blog.chinaunix.net/u2/61254/showar...
问题是这样的:做一个内核模块,来对用户进程进行操作,保存进程状态等,模块功能用线程实现。
请大侠们畅所欲言,给出意见和建议,有代码提示的更好
请大侠们畅所欲言,给出意见和建议,有代码提示的更好
|
http://blog.chinaunix.net/u2/61254/showart_510547.html
|
LZ为什么想这样做啦?要对用户进程进行操作比较难,保存用户进程状态相对来说比较容易一些:
保存用户进程状态我想到的有2种方法:
1。修改你的内核调度函数:__schedule(void),把你想要的信息LOG到一文件和内存中,让你创建的内核线程定时收集就可以了。
2。参考Ptrace系统调用,在你的内核线程中调用access_process_vm()、get_reg()、put_reg()等函数,可以得到你感兴趣的进程信息,当然也可以修改相应进程得信息,参考它,你还可以控制相应的进程,实现你自己得一些操作。
大体的思路是这样,具体得由你自己实现了,呵呵:-)
保存用户进程状态我想到的有2种方法:
1。修改你的内核调度函数:__schedule(void),把你想要的信息LOG到一文件和内存中,让你创建的内核线程定时收集就可以了。
2。参考Ptrace系统调用,在你的内核线程中调用access_process_vm()、get_reg()、put_reg()等函数,可以得到你感兴趣的进程信息,当然也可以修改相应进程得信息,参考它,你还可以控制相应的进程,实现你自己得一些操作。
大体的思路是这样,具体得由你自己实现了,呵呵:-)
|
cat /proc/pid/stat > pid.stat
这样不就可以了?
这样不就可以了?
|
/proc/[number]/stat
Status information about the process. This is used by ps(1). It is defined in
/usr/src/linux/fs/proc/array.c.
Status information about the process. This is used by ps(1). It is defined in
/usr/src/linux/fs/proc/array.c.