|
|
发表于 2007-2-1 15:15:53
|
显示全部楼层
在内核启动的最后阶段,内核会启动第一个用户进程
首先它会看init参数,如果指定了这个参数,那么就执行这个参数所指定的程序
否则就尝试执行几个事先定好的程序
注意run_init_process会调用execve,所以调用成功后是不会返回的
/usr/src/linux/init/main.c
if (execute_command) {
run_init_process(execute_command);
printk(KERN_WARNING "Failed to execute %s. Attempting "
"defaults...\n", execute_command);
}
run_init_process("/sbin/init");
run_init_process("/etc/init");
run_init_process("/bin/init");
run_init_process("/bin/sh");
panic("No init found. Try passing init= option to kernel."); |
|