回顾:
U-boot最终目的:启动内核
内核最终目的:启动应用程序,(init进程,通过sbin/init或其它)
init程序包括以下内容:
(1)读取配置文件
(2)解析配置文件
(3)根据配置文件,启动/执行用户程序
配置文件中包括:
(1)指定用户程序
(2)何时执行
/
busybox-> init_main
parse_inittab // 解析init表
file = fopen(INITTAB, "r"); // 打开配置文件 "/etc/inittab"
new_init_action // (1)创建一个init_action结构,内容用上面的内容填充
(2)把这个结构放入init_action_list链表
run_actions(SYSINIT); //执行SYSINIT这一类的action,即执行系统初始化
waitfor(a, 0); //执行应用程序,等待它执行完毕
run(a) //创建precess子进程(子进程就是<process> 里面的指定的程序)
waitpid(runpid, &status, 0); //等待它结束
delete_init_action(a); //把init_action结构在init_action_list链表里删掉
run_actions(WAIT);
waitfor(a, 0); //执行应用程序,等待它执行完毕
run(a) //创建precess子进程(子进程就是<process> 里面的指定的程序)
waitpid(runpi