ARM64
在fork内核/用户进程时,会分配4k内存保存struct task、内核栈、struct pt_regs,struct cpu_context等信息。
struct task:进程的控制块
内核栈:在内核空间执行时保存的栈数据
struct pt_regs: 在中断或者系统调用执行时,保存被中断时系统的状态。
struct cpu_context: 表示在进程切换时,保存上一个进程的执行状态。
下图展示创建用户进程和创建内核进程的内存分布情况
完成上述结构后,新的进程被创建。