O ecossistema Linux de sistemas de inicialização (init) acaba de ganhar um novo e intrigante concorrente. Chamado Nitro, este projeto é a mais recente criação de Leah Neukirchen, uma desenvolvedora conhecida por seu trabalho no Void Linux. Em um cenário dominado pelo onipresente (e por vezes controverso) systemd, o Nitro se posiciona como uma alternativa minimalista, focada exclusivamente na supervisão de processos, tornando-o ideal para sistemas embarcados, contêineres e qualquer ambiente onde simplicidade e baixo consumo de recursos são prioritários.
Menos é mais
Diferente do systemd, que é um sistema vasto e integrado que gerencia desde serviços até redes e mounts, o Nitro adota uma filosofia radicalmente focada. Sua única função é inicializar e supervisionar serviços de maneira confiável. Ele não cria árvores complexas de dependências nem busca integrar-se profundamente com o sistema operacional.
Sua arquitetura é monolítica, tudo roda em um único processo e mantém todos os dados de runtime na memória RAM. Isso o torna extremamente eficiente e perfeito para sistemas com recursos limitados ou sistemas de arquivos read-only. Para Leah, a simplicidade é uma característica, não uma limitação: ferramentas avançadas, como verificações de dependência ou readiness checks, podem ser delegadas a ferramentas externas, mantendo o núcleo do Nitro enxuto e previsível.
Como herdeiro espiritual da filosofia do daemontools, é natural comparar o Nitro ao runit, outro sistema init minimalista amplamente respeitado. Leah, que tem experiência com o runit no Void Linux, destaca as principais diferenças em seu blog:
- Estado em RAM: Diferente do runit, que emite o estado dos serviços para o disco, o Nitro mantém tudo na memória, permitindo operar em sistemas de arquivos somente leitura sem configurações especiais;
- Serviços Parametrizados: Um diretório de serviço pode ser executado múltiplas vezes (ex: agetty@tty1, agetty@tty2), algo que no runit exige a criação de symlinks;
- Serviços One-Shot: Executa scripts únicos (para tarefas como persistir o volume de áudio) sem a necessidade de supervisionar um processo contínuo;
- Cadeias de Log: Suporte a logs mais flexível, onde até os serviços de log podem ter seus próprios loggers.
Por outro lado, o Nitro ainda carece de alguns recursos do runit, como a ferramenta runsvchdir para mudar todos os serviços de uma vez e a capacidade de sobrepor operações com scripts personalizados.
Para quem é o Nitro?
O Nitro não é um substituto direto para o systemd em uma distribuição desktop convencional. Seu público-alvo é claro:
- Desenvolvedores de Contêineres: Como uma alternativa minúscula e eficiente ao dumb-init ou tini para gerenciar múltiplos processos dentro de um contêiner e garantir a colheita de zombies;
- Sistemas Embarcados e IoT: Onde cada byte de memória e ciclo de CPU conta;
- Entusiastas e Puristas: Usuários que valorizam simplicidade, transparência e controle total sobre seu sistema, que preferem uma ferramenta que faz uma coisa e faz bem.
O lançamento do Nitro é um lembrete refrescante de que a inovação no Linux não segue um caminho único. Enquanto o systemd se tornou o padrão de facto para grandes distribuições, há sempre espaço para alternativas que desafiam a complexidade e defendem a simplicidade.
Para Leah Neukirchen, o Nitro é a culminação de anos de experiência com sistemas init. Seu código, escrito em C moderno e seguindo o padrão POSIX.1-2008, está disponível no GitHub para quem quiser explorar, contribuir ou simplesmente entender como um sistema init pode ser poderoso e minimalista.
Contribua para a manutenção do Diolinux e ganhe acesso a benefícios exclusivos: Seja membro Diolinux Play!




