init

Origem: Wikipédia, a enciclopédia livre.
Saltar para a navegação Saltar para a pesquisa

Em sistemas operacionais baseados em Unix, init (abreviação de initialization, em português, inicialização) é o primeiro processo iniciado durante a inicialização do sistema de computador. O init é um processo daemon que continua executando até o sistema ser desligado. Ele é o ancestral direto ou indireto de todos os outros processos e automaticamente adota todos os processos órfãos. O init é iniciado pelo núcleo usando um nome de arquivo codificado de forma rígida. Uma pane do núcleo ocorrerá se o núcleo estiver impossibilitado de iniciar. Normalmente, o identificador de processo 1 é atribuído ao init.

Em sistemas Unix, como o System III e o System V, o projeto do init divergiu da funcionalidade fornecida pelo init nos derivados do Research Unix e BSD. Até recentemente, a maioria das distribuições Linux empregava um init tradicional que é um pouco compatível com o System V, enquanto algumas distribuições, como o Slackware, usam scripts de inicialização no estilo BSD e outras, como o Gentoo, têm suas próprias versões customizadas. O Systemd, inicialmente implementado pelo Fedora, suplantou o init tradicional nas versões mais recentes das distribuições mais usadas.

Diversas implementações de substituição do init foram criadas, tentando resolver as limitações de projeto nas versões padrões. Elas incluem o launchd, o Service Management Facility, o systemd e o Upstart. Desde março de 2015, o systemd foi adotado por várias distribuições Linux importantes, embora permaneça controverso.

Estilo Research Unix/Estilo BSD[editar | editar código-fonte]

O init do Research Unix executava o script shell de inicialização localizado em /etc/rc[1] e depois executava o getty em terminais sob o controle de /etc/ttys.[2] Não há níveis de execução e o arquivo /etc/rc determina quais programas são executados pelo init. A vantagem deste sistema é que é simples e fácil de editar manualmente. No entanto, novos softwares adicionados ao sistema podem exigir alterações nos arquivos existentes que correm o risco de produzir um sistema não inicializável.

O init do BSD era, antes do 4.3BSD, o mesmo init do Research UNIX. No 4.3BSD, ele adicionou suporte para rodar um sistema de janelas, como o X, em terminais gráficos sob o controle de /etc/ttys. Para remover o requisito de editar o /etc/rc, as variantes do BSD, há muito tempo, suportam um arquivo /etc/rc.local específico de site, que é executado em um sub-shell próximo ao final da seqüência de inicialização.

Um sistema totalmente modular foi introduzido com o NetBSD 1.5 e portado para o FreeBSD 5.0 ​​e sucessores. Este sistema executa scripts no diretório /etc/rc.d. Ao contrário da ordenação de script do System V, que é derivada do nome do arquivo de cada script, este sistema usa tags de dependência explícitas colocadas em cada script.[3] A ordem em que os scripts são executados é determinada pelo script rcorder com base nos requisitos declarados nessas tags.

Referências

  1. init(8) (em inglês) . Capítulo 8. Manual da Sétima Edição do Unix.
  2. ttys(5) (em inglês) . Capítulo 5. Manual da Sétima Edição do Unix.
  3. Andrew Smallshaw (7 de dezembro de 2009). «Unix and Linux startup scripts, Parte 2» 

Ligações externas[editar | editar código-fonte]