Emsistemas operacionais baseados emUnix,init (abreviação deinitialization, em português,inicialização) é o primeiroprocesso iniciado durante ainicialização do sistema de computador. O init é um processodaemon que continua executando até o sistema ser desligado. Ele é oancestral direto ou indireto de todos os outros processos e automaticamente adota todos osprocessos órfãos. O init é iniciado pelonúcleo usando umnome de arquivocodificado de forma rígida. Umapane do núcleo ocorrerá se o núcleo estiver impossibilitado de iniciar. Normalmente, oidentificador de processo1 é atribuído ao init.
Em sistemas Unix, como oSystem III e oSystem V, o projeto do init divergiu da funcionalidade fornecida pelo init nos derivados doResearch Unix eBSD. Até recentemente, a maioria dasdistribuições Linux empregava um init tradicional que é um pouco compatível com o System V, enquanto algumas distribuições, como oSlackware, usam scripts de inicialização no estilo BSD e outras, como oGentoo, têm suas próprias versões customizadas. OSystemd, inicialmente implementado peloFedora, 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 olaunchd, oService Management Facility, osystemd e oUpstart. Desde março de 2015, o systemd foi adotado por várias distribuições Linux importantes, embora permaneçacontroverso.
O init doResearch Unix executava oscript shell de inicialização localizado em/etc/rc
[1] e depois executava ogetty 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 doBSD era, antes do4.3BSD, o mesmo init do Research UNIX. No 4.3BSD, ele adicionou suporte para rodar umsistema de janelas, como oX, 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 oNetBSD 1.5 e portado para oFreeBSD 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 scriptrcorder com base nos requisitos declarados nessas tags.
Tradicionalmente, uma das principais desvantagens do init é que ele inicia as tarefas em série, aguardando que cada uma termine o carregamento antes de passar para a próxima. Quando os processos de inicialização terminam bloqueados ementrada/saída (E/S), isso pode resultar em longos atrasos durante a inicialização. Acelerando a E/S, por ex. usando SSDs, pode encurtar os atrasos, mas não resolve a causa raiz.
Vários esforços foram feitos para substituir os daemons de inicialização tradicionais para resolver esse e outros problemas de projeto, incluindo:
|título=
at position 37 (ajuda)|título=
at position 37 (ajuda)