Não é só uma, são algumas, mas obviamente tem A distro.

As que eu mais amo são openSUSE e Arch Linux, openSUSE conheci após ser rejeitado pelo Fedora inúmeras vezes.

Não sei o que acontece, mas o Fedora sempre quebra na minha mão, em todas as máquinas que tentei.

openSUSE

openSUSE é maravilhoso, o YaST2 apesar de ser arcaico graficamente falando, é muito poderoso e útil, e criar snapshots BTRFS no openSUSE é muito fácil com Snapper, quando tentei replicar no Arch Linux... bom, não deu tãão certo assim, é muito mais trabalhoso.

E para nós que somos devs, uma coisa muito incrível do openSUSE é o openQA, pega esse teste como exemplo: o openQA roda a distro direto em uma VM e compara regiões de capturas de tela com as versões esperadas, se estiver acima de um threshold de diferença, o teste passa, se não, o teste falha. É uma forma muito poderosa e confiável de teste — o teste na prática, só que automatizado.

E o openSUSE na minha experiência, mesmo entregando atualizações em lotes (pois eles testam em lotes), ainda entrega antes do Arch Linux.

Arch Linux

Esse foi o meu xodó por muito tempo, mas foi desbancado por outra distro... que eu já conto, calma aí.

O principal motivo nem é ser rolling release, prefiro o openSUSE nesse quesito. O principal motivo de eu amar o Arch Linux é o AUR. Nenhuma distro tem algo remotamente perto disso, mesmo com o Repology apontando para o Nix ter ganhado, o Nix não tem tudo que o AUR tem.

No AUR eu posso achar tudo que eu preciso: pacotes que só tem para Debian e derivados, binários que não podem ser distribuídos, pacotes non-free, apps distribuídos só para Windows e macOS mas que são multiplataforma por trás (apps Electron), etc...

E muito frequentemente no meu trabalho eu acabo precisando de algo que só consigo encontrar no AUR e que daria um pouco mais de trabalho de obter no openSUSE (quando possível, já que na maioria das vezes não é).

Coisas que seriam normalmente distribuídas no mesmo pacote, são distribuídas em pacotes separados no Nix, como alguns plugins básicos [mas não necessários] do OBS.

E coisas que normalmente seriam distribuídas por gerenciadores de pacotes externos, como plugins do vim e neovim (inclusive parsers do tree-sitter), pacotes do Python e Ruby, etc... São distribuídos diretamente no nixpkgs, o que aumenta significativamente o número de pacotes.

E finalmente... NixOS

Sim, ele mesmo... Hoje o NixOS é minha distro favorita.

O Nix tem reproducibilidade de instalação, reproducibilidade de builds, rollbacks, ambientes coerentes para os pacotes, é extremamente confiável e carrega uma fama de inquebrável. Ele não é de fato inquebrável, só é extremamente difícil de fazer acidentalmente. Obviamente intencionalmente é fácil, só jogar a máquina no oceano... ou rodar um rm com --no-preserve-root (o que for mais simples).

No NixOS eu salvo meus arquivos .nix no Git, e sempre que eu quiser um clone do meu sistema, só copiar e colar durante a instalação, ou a qualquer momento que eu quiser. Se algo der errado após atualizar ou reconstruir meu sistema, o Nix tem algo chamado Gerações, que permite voltar para um estado anterior do sistema.

No NixOS quase tudo se resume a: se o sistema foi reconstruído com sucesso, vai funcionar. O Nix cuida de todas as configurações que precisam ser feitas para as coisas funcionarem em harmonia, algo que no Arch Linux nem sempre é tão simples.

A principal diferença das Gerações do Nix para algo tipo um openSUSE Microos (Snapshots BTRFS) e Fedora Silverblue (OSTree), é que ambos voltam o sistema de arquivos para um estado anterior, onde não há nenhuma visibilidade do que aconteceu após aquele snapshot/commit. Já o Nix é construído em volta de symlinks e ambientes coerentes, então trocar de Geração é basicamente atualizar symlinks, e tudo que foi feito após aquela Geração ainda está visível, apenas não está configurado como o ambiente atual.

Ambientes de desenvolvimento também é algo muito interessante, tudo pode ser resumido a: shell.nix e nix-shell. Não precisa de um nvm, rvm, sdkman. Depois que você sair desse shell, tudo que foi instalado sai de escopo (de forma resumida: sai do seu $PATH, mas continua instalado).

E as builds reproduzíveis são uma maravilha, você já pode aproveitar enquanto desenvolve sua aplicação para criar uma derivação para o Nix, e você vai saber que se compilar na sua máquina, vai compilar na de qualquer outro (contanto que seja da mesma arquitetura e sistema operacional, já que o Nix suporta macOS). Não só isso, a sua versão que você compilou, roda na minha máquina (dado as mesmas condições anteriores), e com isso o cachix entra em ação: o Nix roda as builds em servidores CI/CD que já enviam os artefatos ao cachix, e você só precisa baixar os binários.

Existem muitas outras coisas que amo sobre o Nix e o NixOS, como, por exemplo:

Principalmente esses dois últimos pontos fazem do Nix praticamente um gerenciador de pacotes universal, contanto que você esteja disposto a fazer alguns sacrifícios (espaço em disco, dois gerenciadores de pacotes para lidar, etc.), ou seja, não precisa fazer um pacote separado para cada distro e para o macOS, e depois descobrir como publicar esse pacote em cada uma das infinitas distros, só fazer para o Nix.