Runit uma opção de init ao SystemD bem mais enxuta para seu sistema Linux

Runit uma opção de init ao SystemD
No final de 2021 fiz um vídeo sobre os sistemas base Arch Linux pra ficar de olho em 2022, na oportunidade os que mais me aguçaram a curiosidade foi o Anarchy Linux e o Artix. O primeiro por me parecer um Archlinux mais fácil de instalar e usar, apenas com um nome diferente e uma “roupagem” diferente, se é que posso assim dizer (papel de parede, ícones e mais algumas modificações), já o seguindo por não usar o SystemD como init, tendo opções ao mesmo, e isso me causou uma curiosidade a respeito.

Entrou 2022 e com ele, meus testes mensais escolhendo uma distribuição Linux por vez pra ser meu novo sistema padrão. Em Janeiro foi a vez do Mint, em Fevereiro do Feren OS, e em Março tive a curiosidade de testar um sistema base Arch Linux, até pelo holofote do Steam Deck vir num sistema Arch Linux modificado. Foi ai que decidi dar uma chance ao Artix Linux, e minha escolha de init, foi o Runit, dentre as diversas opções como OpenRC e Dinit, confesso que essa escolha foi aleatória, pois até então não sabia o que cada um tinha a me oferecer.

Inicialização rápida e paralela

Confesso que notei um ganho na velocidade do Boot tremendo saindo do Feren OS com SystemD (que estava em mais de 1 munito) para o Artix com Runit, sendo apenas de 37 segundos, (quando ele chegava na tela que pedia a senha eu pausava e recomeçava assim que dava enter após digitar). Me espantei com essa velocidade, lembrando que ambos sistemas estava com Kde Plasma, só que um é Base Debian e o outro Base Arch.

No Runit, depois que as tarefas únicas do sistema (estágio 1) são concluídas, os serviços do sistema são iniciados em paralelo. O agendador de processos do sistema operacional se encarrega de disponibilizar os serviços o mais rápido possível. Ao invés de iniciar tudo ao mesmo tempo como no SystemD, talvez por isso notei um ganho na velocidade de Boot.

Código Enxuto pra evitar falhas

Um dos princípios do projeto Runit é manter o tamanho do código pequeno e a partir da versão 1.0.0 do Runit, a fonte runit.c contém 330 linhas de código; a fonte do runsvdir.c tem 274 linhas de código, a fonte do runsv.c 509. Minimizando a possibilidade de erros por falha do programador, tornando muito mais fácil para as pessoas relacionadas à segurança do projeto revisarem o código-fonte.

Os principais programas runit têm uma pegada de memória muito pequena e não alocam memória dinamicamente.

Fácil de usar

Com Scripts simples (que se mostram a você após instalar um serviço pelo terminal, mostrando como criar atalhos por exemplo pra iniciar os mesmos) vinculados ao diretório apropriado são tudo o que é necessário para ativar um serviço na inicialização, e tudo vai funcionar rapidamente.

Um init puro por si só!

O Runit vêm com uma proposta de fazer o que um sistema de inicialização deve fazer e nada mais, funcionando em todos sistemas POSIX, e é suportado por vários distribuições Linux, sendo necessário apenas que seus desenvolvedores queiram empacotar uma ISO com o mesmo como opção.

O desenvolvimento do Runit não está mais parado e ele também é mais rápido em sistemas mais antigos, especialmente aqueles executados em HDDs.

Alguns pontos negativos do Runit

Dentre alguns pontos negativos para o Runit, posso destacar ele não estar pela GPL (Estando sob a licença New BSD), teve o desenvolvimento parado por alguns anos, mas já retornou, e caso não goste de usar tanto o terminal, será um ponto negativo ter que usá-lo para criar atalhos para executar alguns serviços que são lançados diferente do que no SystemD, como a virtualização e o Docker por exemplo.

Bom, o Runit têm sido o meu init padrão em 2022 (Apesar de eu não ter nada contra o SystemD nesse momento), e você trocaria de init? Está satisfeito com o SystemD? Deixei aqui nos comentários😀.

Postar um comentário

0 Comentários