下图摘自ULK3,进程内核栈与进程描述符的关系如下图:Linux内核中使用一个联合体来表示一个进程的线程描述符和内核栈:
下图摘自ULK3,进程内核栈与进程描述符的关系如下图:Linux内核中使用一个联合体来表示一个进程的线程描述符和内核栈:
什么是进程的“内核栈”?在执行系统调用陷入内核之后,这些内核代码所使用的栈并不是原先用户空间中的栈,而是一个内核空间的栈,这个称作进程的“内核栈”。内核栈的作用内核栈与进程结构体的关联每个进程在创建的时候都会得到一个内核栈空间,内核栈和进程的对应关系是通过2个结构体中的指针成员来完成的:而其中的stack成员就是内核栈。task_struct和内核栈所以ARM的内核栈是8KB