资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2013/2/27,#,实验名称,通过,内核模式显示进程控制块信息,实验内容,在内核中,所有的进程控制块都被一个双向链表连接起来,该链表中的第一个进程控制块为,init_task,。编写一个内核模块,模块接收用户传递的一个参数,num,num,指定要打印的进程控制块的数量;若用户不指定,num,或者,numtask.next,struct task_struct,tasks)!=&init_task),在进程控制块的数据结构中,成员,pid,为进程的,PID,,而成员,comm,包含进程可执行文件名。使用,dmesg,命令可以查看系统日志。,实现方法分析,#include,#include,#include,#include,MODULE_LICENSE(“GPL”),static int num=-1,;,module_param(num,int,S_IRUGO,);,static,int exp_init(void,),struct task_struct*p=NULL;,for_each_process(p),/*,向日志写入,num,个进程,PID,和可执行文件名,*/,static void exp_exit,()/*,清理函数,*/,module_init(exp_init);,module_exit(exp_init,);,实验结果展示,实验涉及主要函数描述,p,intk(KERN_ALERT”hello,world!n”),向系统日志中写入,”hello,world”,m,odule_init(),去注册初始化函数,m,odule_exit(),去注册清理函数,
展开阅读全文