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进程。

 

posted @ 2015-03-19 23:54  JustRelax  阅读(769)  评论(0)    收藏  举报