Linux 内核启动过程(一、从head.S到init进程启动)
先看head.S的主要流程:

进入start_kernel()后的主要流程:init/main.c
进入该函数后,进行了各种的初始化,最后进入:rest_init(); 初始化内核线程(kernel_init)和内核管理线程(kthreadd),然后进入了cpu_idle();
kernel_init:最近进入了init_post();该函数最终执行了
run_init_process("/sbin/init");
run_init_process("/etc/init");
run_init_process("/bin/init");
run_init_process("/bin/sh");
综上:uboot启动完后就进入了head.S的kernel_entry()--------->然后进入了init/main.c 的 start_kernel()---------->init/main.c 的init_post() 最后进入了第一个用户空间的进程:init进程。

浙公网安备 33010602011771号