init --------------------------------------------------- Linux kernel启动的最后,在内核源码的linux-2.6.24/init/main.c文件的init_post()函数中可以看到: 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."); 即系统会按照上述顺序,逐次运行作为init的进程。当有任何一个进程被成功运行时,run_init_process()函数将不再返回。全局字符数组 execute_command保存了从系统启动命令行中传递的init参数。例如,系统启动参数包括init=/linuxrc,如果根文件系统中存在 文件/linuxrc,则它将被作为init进程的首选。 |
|