文章目录
- 一、task_struct 结构体字段分析
- 1、real_parent 字段
- 2、parent 字段
- 3、group_leader 字段
- 4、real_cred 字段
- 5、cred 字段
在 Linux 内核 中 , " 进程控制块 " 是通过 task_struct
结构体 进行描述的 ; Linux 内核中 , 所有 进程管理 相关算法逻辑 , 都是基于 task_struct
结构体的 ;
task_struct
" 进程描述符 " 结构体在 linux-5.6.18includelinuxsched.h
头文件中 第
~
行定义 ;
一、task_struct 结构体字段分析
1、real_parent 字段
real_parent
字段 , 指向 " 真实的父进程 " ;
/* Real parent process: */
struct task_struct __rcu *real_parent;
2、parent 字段
parent
字段 , 指向 父进程 , 一般情况下与 real_parent
相同 ;
如果 进程 被 另外一个进程 使用 系统调用 ptrace
方法 跟踪调试 了 , 其 父进程 就是 跟踪进程 ;
其它情况下 , parent
字段与 real_parent
字段的值都是相同的 ;
/* Recipient of SIGCHLD, wait4() reports: */
struct task_struct __rcu *parent;
3、group_leader 字段
group_leader
字段 , 是一个指针 , 指向了 " 线程组组长 " ;
struct task_struct *group_leader;
4、real_cred 字段
real_cred
字段 , 是一个指针 , 指向 主体 和 真实客体 证书 ;
/* Objective and real subjective task credentials (COW): */
const struct cred __rcu *real_cred;
5、cred 字段
cred
字段 , 指向 有效客体证书 的指针 , 一般情况下 , real_cred
与 cred
指向的位置是相同的 ;
/* Effective (overridable) subjective task credentials (COW): */
const struct cred __rcu *cred;