进程在Linux里面最普通不过了,可是你知道在内核里面都有哪些数据结构吗?一、进程链表每个进程在内核里面对应如下的数据结构struct task_struct {所有的进程是串在一个列表上的,struct list_head tasks;struct list_head { struct list_head *next, *prev;};这是一个双向列表,列表头是struct task_struct init_task = INIT_TASK(init_task)的实例。有的同学马上就明白了。对啊,在Linux系统启动的时候,会首先启动一个Init进程,Init进程会在/etc/inittab下面将Daemon程序启动,这些Daemon进程是Init进程的子进程。最后创建一个子进程运行tty,等待用户登录,成功登录后运行shell。这Init进程的PID是1,ps命令就能看的。但是这里的init_task却不是init进程,这个进程的PID是0,被称为idle进程,在这个结构后面链接
………………………………