我们来动手实践打印进程描述符task_struct中的字段
这里采用的方式是:插入内核模块,使用的方法是:遍历进程链表
一、task_struct初步解读
首先要下载自己的源代码,可以参考我之前的博客https://blog.csdn.net/weixin_45730790/article/details/121294180?spm=1001.2014.3001.5501
可以使用bootlin在线查看源代码
在include文件的目录下打开头文件。task_struct结构位于sched.h头文件中。/include/linux/sched.h
schde.h就显示了pcb在内核中的全貌。涉及的字段非常多。这里只关注pcb本身,并且一些能反映器其结构的字段。
首先看第一个字段state,也就是它的状态信息,
再往下是它的内核栈*stack
flags是进程的标志
ptrace字段是用来实现断点调试的
再往下我们可以看到一些优先级信息
prio是动态优先级,static_prio是静态