6 melhores sistemas 'init' Linux modernos (1992-2023)
No Linux e em outros sistemas operacionais do tipo Unix, o processo init (inicialização) é o primeiro processo executado pelo kernel no momento da inicialização, que possui um ID do processo (PID) de 1, que é executado em segundo plano até que o sistema seja desligado.
O processo init inicia todos os outros processos do Linux, ou seja, daemons, serviços e outros processos em segundo plano, portanto, é a mãe de todos os outros processos no sistema.
Um processo pode iniciar muitos outros processos filhos no sistema, mas se um processo pai morrer, init se tornará o pai do processo órfão.
Ao longo dos anos, muitos sistemas init surgiram nas principais distribuições Linux e neste guia daremos uma olhada em alguns dos melhores sistemas init com os quais você pode trabalhar no sistema operacional Linux.
1. Inicialização do Sistema V
System V (SysV) é um esquema init maduro e popular em sistemas operacionais do tipo Unix, é o pai de todos os processos em um sistema Unix/Linux. SysV é o primeiro sistema operacional Unix comercial projetado.
Quase todas as distribuições Linux usaram pela primeira vez o esquema de inicialização SysV, exceto o Gentoo que tem um init personalizado e o Slackware que usa o esquema de inicialização no estilo BSD.
Com o passar dos anos, devido a algumas imperfeições, vários substitutos do SysV init foram desenvolvidos na busca por criar sistemas init mais eficientes e perfeitos para Linux.
Embora essas alternativas busquem melhorar o SysV e provavelmente oferecer novos recursos, elas ainda são compatíveis com os scripts de inicialização do SysV originais.
2. SistemaD
SystemD é um esquema de inicialização relativamente novo na plataforma Linux. Introduzido no Fedora 15, é uma variedade de ferramentas para facilitar o gerenciamento do sistema. O objetivo principal é inicializar, gerenciar e acompanhar todos os processos do sistema durante o processo de inicialização e enquanto o sistema está em execução.
O Systemd init é totalmente distinto de outros sistemas init Unix tradicionais, na forma como aborda praticamente o gerenciamento de sistemas e serviços. Também é compatível com scripts de inicialização SysV e LBS.
Possui alguns dos seguintes recursos eminentes:
- Design limpo, direto e eficiente
- Processamento simultâneo e paralelo na inicialização
- Melhor APIv
- Permite a remoção de processos opcionais
- Suporta registro de eventos usando journald
- Suporta agendamento de trabalhos usando temporizadores de calendário do systemd
- Armazenamento de logs em arquivos binários
- Preservação do estado do systemd para referência futura
- Melhor integração com GNOME e muito mais
3. Arrivista
Upstart é um sistema init baseado em eventos desenvolvido pelos criadores do Ubuntu como um substituto para o sistema init SysV. Ele inicia diferentes tarefas e processos do sistema, inspeciona-os enquanto o sistema está em execução e os interrompe durante o desligamento do sistema.
É um sistema de inicialização híbrido que usa scripts de inicialização SysV e scripts Systemd. Alguns dos recursos notáveis do sistema de inicialização Upstart incluem:
- Originalmente desenvolvido para Ubuntu Linux, mas pode ser executado em todas as outras distribuições
- Início e parada de tarefas e serviços com base em eventos
- Os eventos são gerados durante o início e a parada de tarefas e serviços
- Os eventos podem ser enviados por outros processos do sistema
- Comunicação com o processo init através do D-Bus
- Os usuários podem iniciar e parar seus processos
- Renascimento de serviços que morrem abruptamente e muitos mais
4. OpenRC
OpenRC é um esquema init baseado em dependência para sistemas operacionais do tipo Unix, é compatível com o SysV init. Por mais que traga algumas melhorias ao Sys V, você deve ter em mente que o OpenRC não é um substituto absoluto para o arquivo /sbin/init.
Ele oferece alguns recursos ilustres, incluindo:
- Ele pode rodar em muitas outras distribuições Linux, incluindo Gentoo e também em BSD
- Suporta scripts de inicialização iniciados por hardware
- Suporta um único arquivo de configuração
- Nenhuma configuração por serviço suportada
- Funciona como um daemon
- Inicialização de serviços paralelos e muito mais
5. runit
runit também é um sistema init multiplataforma que pode ser executado em GNU/Linux, Solaris, *BSD e Mac OS X e é uma alternativa ao SysV init, que oferece supervisão de serviço.
Ele vem com alguns benefícios e componentes notáveis não encontrados no SysV init e possivelmente em outros sistemas init no Linux e incluem:
- Supervisão de serviço, onde cada serviço está associado a um diretório de serviços
- Um estado de processo limpo garante a cada processo um estado limpo
- Possui um recurso de registro confiável
- Inicialização e desligamento rápido do sistema
- Também é portátil
- Embalagem amigável
- Tamanho de código pequeno e muito mais
6.s6
s6 oferece um conjunto compacto de ferramentas para UNIX, adaptadas para supervisão de processos, semelhantes a daemontools e runit. Facilita operações em processos e daemons.
Projetado como um kit de ferramentas de administração de serviços de baixo nível, o s6 fornece diversas ferramentas que podem funcionar de forma independente ou dentro de sua estrutura. Essas ferramentas, quando combinadas, oferecem funcionalidade robusta com código mínimo.
Como mencionei anteriormente, o sistema init inicia e gerencia todos os outros processos em um sistema Linux. Além disso, SysV é o principal esquema de inicialização nos sistemas operacionais Linux, mas devido a algumas deficiências de desempenho, os programadores de sistema desenvolveram vários substitutos para ele.
Aqui, vimos algumas dessas substituições, mas pode haver outros sistemas init que você acha que valem a pena mencionar nesta lista. Você pode nos informar sobre eles através da seção de comentários abaixo.