arm64内核进程创建从内核态到用户态过程分析。1:先看看current宏的含义:2:新创建的进程创建的内核栈。3:通过fork创建的新进程其pc地址和sp是在那里设置?5 任务切换核心函数cpu_switch_to6 用户1号进程的用户态栈怎么确定的?
第一:sp的值 init_thread_union+#THREAD_SIZE大小地址。第二:sp_el0的值init_task的地址。可知sp_el0 指向task_struct。THEAD_SIZE 是内核栈的大小。最终最早的第一个进程。