Назад | Перейти на главную страницу

Ядро Linux и процесс инициализации

Как ядро ​​linux узнает местоположение программы / sbin / init во время процесса загрузки? "/ Sbin / init" жестко запрограммирован в исходный код ядра Linux?

Да, /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.");

Программа, запускаемая после завершения загрузки ядра, может быть указана в командной строке загрузки ядра с помощью команды init=/file/name аргумент.

Если этот параметр не передан, встроенное значение по умолчанию /sbin/init используется.