O que o init no Ubuntu faz?

13

Eu já sei que init é o programa mágico necessário para inicializar seu computador e gerenciar runlevels, mas qual é o seu propósito real?

Por que precisamos mesmo de init ? Por que o bootloader não pode informar ao Upstart quais programas executar e não executar?

Esta pergunta em (tarde) resposta ao meu O que aconteceria se init foi excluído? pergunta.

    
por Kaz Wolfe 25.08.2014 / 10:50

2 respostas

6

Veja o manual para init em sistemas Unix .

Esta é uma postagem de a entrada da Wikipedia sobre init :

  

Em sistemas operacionais de computadores baseados em Unix, o init (abreviação de inicialização) é o primeiro processo iniciado durante a inicialização do sistema do computador. Init é um processo daemon que continua em execução até que o sistema seja encerrado. É o ancestral direto ou indireto de todos os outros processos e adota automaticamente todos os processos órfãos. A inicialização é iniciada pelo kernel usando um nome de arquivo embutido, e se o kernel não puder iniciá-lo, ocorrerá um kernel panic. Init é tipicamente atribuído ao identificador de processo 1.

     

O design do init divergiu em sistemas Unix, como System III e System V, a partir da funcionalidade fornecida pelo init no Research Unix e seus derivados BSD. O uso na maioria das distribuições Linux é um pouco compatível com o System V, mas algumas distribuições, como o Slackware, usam um estilo BSD e outras, como o Gentoo, têm sua própria versão customizada.

     

Várias implementações de init de substituição foram escritas com a tentativa de endereçar as limitações de design nas versões padrão. Estes incluem o launchd, o Service Management Facility, o systemd e o Upstart, sendo este último utilizado pelo Ubuntu e por algumas outras distribuições Linux.

Espero que isso ajude a explicar isso para você; é muita leitura.

    
por Mark Kirby 25.08.2014 / 11:51
3

upstart e systemd são init systems. Por convenção (e talvez outras restrições), o programa ainda é chamado de init , independentemente de systemd ou upstart ou outra coisa estar em jogo. Não deixe o nome do processo enganar você. PID1 não é SysV init por mais tempo. Não tem sido há algum tempo no Ubuntu.

    
por muru 25.08.2014 / 18:05