Quando as distribuições Linux dominantes adotaram o systemd, os dissidentes bifurcaram as distribuições e iniciaram novos projetos. Então, quais são suas opções se você estiver procurando por uma distribuição sem sistema? Vamos dar uma olhada.
Systemd: uma recapitulação rápida
Historicamente, a sequência de inicialização em um sistema Linux era uma réplica do sistema de inicialização que foi introduzido com o System V Unix (SysV). O sistema init SysV aderiu à filosofia Unix. Quando as pessoas se referem à filosofia Unix, geralmente a reduzem à conhecida frase de efeito “Faça uma coisa e faça bem”. E essa coisa era começar como o primeiro processo e depois iniciar outros processos. Também abater zumbis de vez em quando.
O SysV init fez seu trabalho bem o suficiente, mas não com muita eficiência. Ele iniciou os processos em série, um após o outro. Não havia paralelismo. O design prejudicou o rendimento. Isso foi mais ou menos mascarado pelos ganhos de velocidade do hardware moderno, e não é como se inicializar um computador Linux levasse uma era interminável. Mas sim, tecnicamente, poderia ter sido mais eficiente.
Como tudo no Linux, os usuários tinham uma escolha. Alternativas estavam disponíveis. Usuários competentes podiam configurar seu computador Linux para usar um sistema init diferente, que iniciasse processos em paralelo e funcionasse da maneira que quisessem.
Algumas das opções eram:
- Upstart: Esta foi uma iniciativa desenvolvida pela Canonical que passou a ser adotada pela família de distribuições Red Hat, incluindo Centos e Fedora. Upstart não está mais em desenvolvimento.
- runit: Este é um projeto independente e multiplataforma que roda no FreeBSD e outros derivados do BSD, bem como em sistemas macOS, Solaris e Linux. Ele foi adotado como o sistema de inicialização padrão ou uma das opções de tempo de instalação em várias distribuições Linux.
- s6-Linux-init: s6 é um substituto para o init do SysV que tenta abordar a natureza serial do init do SysV e permanecer fiel à filosofia do Unix.
systemd é outro substituto para o init do SysV, mas inclui muito mais. Possui módulos que gerenciam dispositivos físicos, logins de usuários, resolução de nomes de rede e muito mais—é composto por mais de 70 binários e mais de 1,4 milhão de linhas de código. Em comparação, o SysV init para Arch Linux equivale a menos de 2.000 linhas de código. Claramente, o systemd abandonou bem e verdadeiramente a filosofia Unix. E não apenas isso, ele comete a heresia de ignorar completamente o padrão Portable Operating System Interface (POSIX).
Os argumentos do systemd são alguns dos mais acalorados que já testemunhei em uma comunidade de código aberto. (E isso está dizendo alguma coisa.) Os campos pró-systemd e não-systemd igualmente vociferantes não são as únicas pessoas envolvidas, é claro. Converso com muitas pessoas que nem sabem que o systemd é uma coisa, assim como muitos outros que já ouviram falar, mas não conhecem detalhes suficientes para formar uma opinião de uma forma ou de outra. Francamente, eles não se importam. Eles só querem que as coisas funcionem.
Se você não tiver certeza se está em uma distribuição baseada em systemd, execute o comando ps
no ID do processo 1.
ps -p 1
Se você vir “systemd” na resposta, claramente, você está usando o systemd. Se ele diz outra coisa – normalmente “init” – então você não está.
Distribuições linux sem Systemd: Filosofia, Arquitetura e Qualidade de Engenharia
Diferentes pessoas se opõem ao systemd por diferentes razões. Para alguns, é o desrespeito pela filosofia tradicional do Unix. Embora não seja um dogma obrigatório, é o “jeito Unix”. E é uma maneira que resistiu ao teste do tempo: pequenos utilitários que podem ser agrupados para que sua saída se torne a entrada do próximo processo no pipeline é uma parte essencial do que dá ao Linux sua sensação e caráter. É o que o torna particularmente adequado para combinar rapidamente soluções criativas para requisitos pontuais ou de curta duração.
Outros questionaram as decisões de design por trás do systemd, a “arquitetura de software”. Por que incluir toda essa funcionalidade que não tem nada a ver com a inicialização de um sistema? Se esses outros elementos precisam ser atualizados ou melhorados, faça exatamente isso. Mas por que integrar tudo em um conjunto massivo e interligado de aplicativos?
Preocupações foram levantadas sobre a atitude arrogante dos desenvolvedores do systemd em relação às correções de bugs em geral e em relação às vulnerabilidades e exposições comuns em particular. Quanto mais linhas de código você tiver, mais bugs você precisará lidar. Quando esses bugs são relacionados à segurança e têm seu próprio número CVE alocado a eles, você precisava lidar com eles ontem.
Qualquer que seja a razão ou razões por trás de você querer deixar uma distribuição Linux baseada em systemd, a questão é: para onde você vai em seguida? Talvez você queira tentar algo completamente novo. Você pode estar ansioso para aprender os prós e contras de uma nova distribuição. Por outro lado, você pode não ter tempo nem apetite para mais uma curva de aprendizado. Você deseja voltar a funcionar o mais rápido possível em um sistema que pareça o mais familiar possível.
Distribuições Linux sem systemd: Devuan
Se você usa o Debian ou um dos inúmeros derivados do Debian, como o Ubuntu e toda a sua tribo de parentes, faz sentido para você conferir o Devuan. Devuan é um fork do Debian, então quase tudo será familiar. O shell padrão é Bash e o gerenciador de pacotes é apt
. O Devuan foi bifurcado do Debian em 2014. É sólido e estável e tem uma comunidade próspera.
Se você preferir o GNOME como seu ambiente de desktop, terá que fazer um pouco de trabalho extra. O GNOME não é oferecido como opção de desktop durante a instalação. MATE, Cinnamon, XFCE e outros estão disponíveis, mas o GNOME terá que ser instalado manualmente assim que seu sistema estiver funcionando.
O GNOME tem algumas dependências dos componentes do systemd, a saber, o gerenciador de dispositivos de hardware udev e o gerenciador de login logind. Substituições para estes foram criadas pelos desenvolvedores do Gentoo Linux .
eudev e elogind permitem que aplicativos com dependências rígidas do systemd funcionem como se o systemd estivesse instalado. Os puristas anti-systemd também se opõem a isso, argumentando que ceder ao software que codificava dependências rígidas do systemd é quase tão ruim quanto executar o systemd.
As opções de sistema init no Devuan são SysV init ou OpenRC.
Distribuições Linux sem systemd: Artix Linux
Os usuários do Arch e do Manjaro podem querer dar uma volta no Artix Linux. Artix é um fork do Arch que se baseia no projeto Arch-OpenRC. Seu primeiro lançamento veio em 2017.
O Arch Wiki contém instruções sobre como substituir systemd por OpenRC, mas não é oficialmente suportado. Da mesma forma, como o suporte ao OpenRC foi retirado do Manjaro, não há distribuição derivada do Manjaro que seja livre do systemd.
Portanto, se você quiser permanecer no universo do Arch, precisará escolher um fork baseado no Arch, como o Artix, que usa um sistema de inicialização diferente. Artix certamente entrega nessa frente. Durante o processo de instalação, você escolhe um dos três sistemas init diferentes. As opções são OpenRC, runit e s6.
Todos os sabores de desktop esperados estão disponíveis, como Cinnamon, MATE, XFCE e muito mais. Há também versões em teste que suportam o GNOME e o gerenciador de janelas lado a lado do i3.
O gerenciador de pacotes é pacman
. Claro, você pode usar isso para instalar pamac
, yay
, ou qualquer um dos outros auxiliares do Arch User Repository (AUR). O shell padrão é Bash.
É tudo o que você gosta no Arch sem o systemd.
Distribuições Linux sem systemd: PCLinuxOS
O projeto systemd é uma iniciativa da Red Hat. Os principais desenvolvedores do systemd são funcionários da Red Hat. Parece que para muitos no mundo Linux, qualquer coisa que saia dos campos “corporativos” do Linux – Red Hat, Oracle, Intel, Canonical, por exemplo – deve ser automaticamente desconfiado.
systemd foi descrito como – entre outras coisas – nada mais do que um plano da Red Hat para transformar o Linux em algo que se adapte às necessidades de seu sistema operacional embarcado.
Se a Red Hat precisasse de uma distribuição sob medida para sistemas embarcados, seria muito mais fácil criar apenas uma. Você não precisa convencer Arch, Ubuntu e OpenSUSE a seguir o exemplo.
Claro, com o Red Hat sendo a razão pela qual o systemd existe, você não encontrará um derivado do Red Hat sem o systemd. Então, o que quer que você se mova vai parecer novo e diferente. Mas se você quiser pelo menos ficar com uma distribuição que usa o Red Hat Package Manager (RPM), você deve revisar o PCLinuxOS.
O projeto PCLinuxOS começou em 2003 como um fork do agora extinto Mandrake Linux, pouco antes do Mandrake se tornar Mandriva. A primeira versão do PCLinuxOS apareceu em 2007, portanto, é muito anterior ao systemd.
Embora o PCLinuxOS use arquivos “.rpm”, ele os manipula usando seu próprio software de gerenciamento de pacotes, apt-rpm
. Isso é modelado após o comando apt-get
do mundo Debian. Também é fornecida uma versão modificada synaptic
que funciona com arquivos “.rpm” em vez de arquivos “.deb”.
O PCLinuxOS usa o SysV init e oferece uma opção de ambientes de desktop Plasma, MATE e XFCE durante a instalação. Existem algumas edições de “remasterização da comunidade” que fornecem outros ambientes de desktop, incluindo o GNOME. O shell padrão é Bash.
Ativar algumas VMs
A melhor – e única maneira, na verdade – de ver se você vai se dar bem com uma distribuição Linux é experimentá-la. A maneira mais fácil de fazer isso é em uma máquina virtual. Ele deixa sua instalação atual do Linux intocada. Você pode instalar e experimentar quantas distribuições Linux quiser até encontrar aquela que você acha que gostaria de experimentar. O VirtualBox é perfeito para isso.
Quando estiver pronto para instalar sua nova distribuição, faça vários backups de sua instalação atual e então—e só então—instale seu novo Linux.