author:张继飞 写在前面,这一切必须是在Linux内核挂载文件系统后。 在Linux内核中找到/init/main.c 看到如下内容: run_init_process("/sbin/init");
run_init_process("/etc/init");
run_init_process("/bin/init");
run_init_process("/bin/sh"); 这里就是执行系统的启动,当满足上面其中之一后,系统就会执行启动进程。一般通过busybox编译后的init在/sbin/下,所以通过第一条命令,下面就需要找到init,分析源码。 在busybox源码的/init/init.c中,有#define INITTAB "/etc/inittab"的定义 ,inittab的作用自不必再说了,系统会根据inittab的提示进行启动加载。 但在在解析inittab时,若没有该文件,便会执行新的启动脚本#define INIT_SCRIPT "/etc/init.d/rcS"。 rcS就是整个系统启动的关键。