Linux Kernel e o processo init

3

Como o kernel do Linux sabe a localização do programa / sbin / init durante o processo de inicialização? É "/ sbin / init" codificado no código-fonte do kernel do Linux?

    
por U85 21.03.2012 / 16:22

2 respostas

7

Sim, /sbin/init é codificado na origem. Veja a função 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.");
    
por 21.03.2012 / 17:39
3

O programa a ser executado quando o carregamento do kernel foi concluído pode ser fornecido na linha de comando de inicialização do kernel usando o argumento init=/file/name .

Se essa opção não for aprovada, o padrão interno /sbin/init será usado.

    
por 21.03.2012 / 16:32

Tags