Init
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
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.
Outras implementações
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 em entrada/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:
- BootScripts no GoboLinux
- boot-scripts
- busybox-init, adequado para sistemas operacionais embarcados, usado pelo OpenWrt antes de ser substituído por procd
- Initng, um substituto completo do init projetado para iniciar processos de forma assíncrona
- launchd, um substituto para o init em Darwin/macOS/iOS/tvOS a partir do Mac OS X v10.4 (lança o SystemStarter para executar processos 'rc.local' estilo antigo e SystemStarter)
- minit
- Mudur, um substituto do init escrito em Python e projetada para iniciar processos de forma assíncrona, em uso pela distribuição Pardus Linux
- OpenRC, um gerador de processos que utiliza o init fornecido pelo sistema, enquanto fornece isolamento do processo, inicialização paralela e dependência de serviço; usado pelo Gentoo e seus derivados e disponível como uma opção no Devuan
- procd é usado no LEDE/OpenWRT
- runit, um substituto completo multiplataforma para o init com o início paralelo de serviços, usado por padrão no Void Linux
- Shepherd, o serviço e gerenciador de daemon do GNU que fornece inicialização assíncrona baseada em dependência; escrito em Guile Scheme e destinado a ser interativamente hackeável durante a operação normal do sistema
- systemd, uma suíte de software que inclui um daemon init e um gerenciador de serviços, entre outras coisas
- SystemStarter, um gerador de processo iniciado pelo init estilo-BSD no Mac OS X antes do Mac OS X v10.4
- svscan from daemontools used as process 1
- Texas Flood Init System
- Upstart, um substituto completo do init projetado para iniciar processos assincronamente iniciados pelo Ubuntu.
Referências
Ligações externas
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.