Linux内核和init进程

U85*_*U85 4 linux boot

linux内核在启动过程中如何知道/sbin/init程序的位置?“/sbin/init”是否硬编码到linux内核源代码中?

Mar*_*ner 7

是的,/sbin/init被硬编码到源代码中。查看功能init_post 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. "
          "See Linux Documentation/init.txt for guidance.");
Run Code Online (Sandbox Code Playgroud)