Durante a inicialização do Linux, de onde o “init” é executado?

0

Eu sou novo no Linux e estou tentando ter uma compreensão definitiva dos processos de inicialização do Linux, antes de frequentar uma classe Linux Server Admin a partir de junho.

Configurando a pergunta: Durante a inicialização do Linux, depois que o kernel e o initramfs são carregados na memória ... Então, o kernel é descompactado na memória para / boot /, um sistema de arquivos virtual baseado em RAM. via cpio, carrega módulos necessários entre outras coisas, e então ....

O Kernel executa o programa / sbin / init.

Pergunta: O Kernel está executando o programa "init" de / sbin / init a partir do sistema de arquivos virtual baseado em RAM, OU ... do disco físico , já que a partição / já foi montado pelo Kernel?

.... Quando o Kernel pára de usar o sistema de arquivos baseado em RAM e começa a usar a partição física?

Obrigado Ingemar

    
por user284520 04.05.2014 / 20:39

2 respostas

2

O kernel abandona o controle a partir do momento em que executa pela primeira vez um processo de inicialização, seja de uma partição initramfs ou de uma partição “real”. Ele não carrega módulos por si só e certamente não faz "outras coisas". Estes são todos os procedimentos de espaço do usuário.

Um initramfs é normalmente usado quando a montagem do sistema de arquivos raiz requer mais do que simplesmente montar uma partição básica. Depois que o processo de inicialização / script do initramfs é concluído, ele inicia o programa init a partir da partição raiz usando exec() . Isso substitui o processo de inicialização atual. É imperativo que o programa init nunca termine - isso resulta em um pânico no kernel.

Para simplificar: se um initramfs for usado, seu programa / script init sempre será usado.

    
por 04.05.2014 / 20:54
0

No meu Kubuntu, o init está sendo executado em / sbin / init, que é o dispositivo de bloco / dev / sda5 montado em /

O comando mount informará como seus sistemas de arquivos estão montados. É inteiramente possível que seu init esteja sendo executado a partir de um disco RAM.

Além disso, ps -aux | grep init me diz:

root         1  0.0  0.0  27228  1644 ?        Ss   16:44   0:03 /sbin/init

em que init é PID 1, sendo executado em / sbin / init

    
por 04.05.2014 / 20:50

Tags