Skip to main content

Distribuições Linux

Antes de adentrar nos detalhes abaixo, é crucial compreender o que é o Kernel do Linux e o conceito de distribuição Linux.

O Kernel é essencialmente o núcleo do Linux, sendo responsável por diversas operações vitais, como:

  • Gerenciamento de memória
  • Inicialização do sistema (boot)
  • Gerenciamento de disco
  • Controle de processos
  • Gestão de drivers (módulos)
  • E outras funções fundamentais.

Por sua vez, uma distribuição Linux consiste na combinação de um Kernel com um conjunto específico de softwares, otimizações do Kernel e personalizações, que podem ser desenvolvidas pela comunidade ou por empresas. Cada distribuição pode conter conjuntos de softwares diferentes. Para ilustrar, é semelhante ao sistema Android: há o Android da Samsung (One UI), com as personalizações da Samsung, e o Android da Xiaomi (MIUI), com as características distintivas da Xiaomi.

O ecossistema Linux abriga uma ampla variedade de distribuições, cada qual com seus propósitos específicos.

Um usuário que frequentemente alterna entre distribuições é comumente chamado de "distro hopper". Embora pessoalmente não tenha enfrentado essa situação, é bastante comum entre aqueles que estão explorando esse universo em busca da distribuição ideal. Conhecer diversas distribuições, suas ideias, arquiteturas e ambientes pode ser enriquecedor, porém, chega um momento em que se almeja estabilidade e consistência.

Dê uma olhada na imagem abaixo para ter uma ideia da diversidade de distribuições:

distro-timeline

É importante observar que muitas dessas linhas (ou seja, distribuições) não foram adiante e se tornaram projetos abandonados. Portanto, devemos concentrar nossa atenção nas distribuições que continuaram até o final, eliminando assim algumas opções. Vale ressaltar que ainda existem inúmeras outras distribuições não representadas nesta imagem.

Analisando a história, percebemos que muitas distribuições têm origens em projetos fundamentais, como Debian, Slackware, Arch e Red Hat, algumas sendo derivadas destas. Há também aquelas independentes, nascendo como projetos completamente novos. As distribuições raiz tendem a permanecer ativas, demonstrando sua solidez e reputação.

O Ubuntu, por exemplo, surgiu do Debian, e a partir dele foram desenvolvidas muitas outras distribuições, o que evidencia sua importância e influência no cenário Linux.

Além das derivadas, existem as distribuições independentes, criadas com propósitos específicos. Por exemplo, o Alpine é uma distribuição extremamente enxuta, focada na minimalismo e amplamente utilizada em containers para instalação apenas dos componentes necessários para uma aplicação. O NixOS prioriza a imutabilidade, enquanto o OpenWRT é projetado para dispositivos de rede.

Ao escolher uma distribuição, é essencial considerar a solidez do projeto. Optar por distribuições com bases sólidas, apoiadas por empresas ou comunidades ativas, é fundamental. Entre elas estão o ZorinOS, Pop OS, Manjaro, Fedora e Ubuntu, que contam com suporte confiável.

Por vezes, mesmo sem o respaldo de uma empresa, uma comunidade dedicada pode manter a distribuição, como é o caso do Arch, Mint, MX Linux e Void.

Principais aspectos a considerar na escolha de uma distribuição:

  • Estabilidade
  • Atividade e suporte da comunidade ou mantenedores
  • Qualidade da documentação
  • Disponibilidade e qualidade dos repositórios de software
  • Política de atualizações e tempo de suporte
  • Adequação para o ambiente de uso (desktop, servidor, containers, etc.)

Desktop

Quando se trata da nossa estação de trabalho para fins profissionais, há uma série de considerações adicionais a serem feitas, como a escolha do ambiente gráfico. Opções populares incluem GNOME, KDE, Cinnamon, XFCE, Mate, Deepin, entre outros. No meu caso, tenho preferência pelo GNOME, pois estou habituado a ele e me sinto mais produtivo. Com essa preferência, consigo eliminar várias distribuições ou "flavors" delas, embora reconheça que essa seja uma escolha pessoal.

O termo "flavors" é comumente utilizado para se referir a distribuições que compartilham a mesma base e pacotes essenciais, mas possuem ambientes gráficos diferentes. Por exemplo, o Fedora utiliza o termo "skins" para descrever essa variedade. O Ubuntu padrão adota o GNOME, enquanto o Kubuntu traz o KDE Plasma, o Xubuntu utiliza o XFCE, e o Ubuntu Budgie traz o Budgie, e assim por diante. No final das contas, todas são variantes do Ubuntu, oferecendo diferentes experiências de desktop.

Considero importante ressaltar que não acredito que os leitores deste texto estejam utilizando uma máquina com menos de 8GB de RAM para tarefas de desenvolvimento e operações (DevOps). Portanto, não vamos considerar limitações de hardware ao escolher uma distribuição Linux como sistema operacional.

A preferência pelo gerenciador de pacotes pode ser uma questão pessoal. Na prática, a maneira de instalar um pacote pode não fazer muita diferença, pois há ampla documentação disponível na Internet para qualquer um dos gerenciadores.

Agora, vamos às minhas experiências pessoais.

As opiniões abaixo levam em conta um ambiente profissional e estudo. Ambiente para quem desenvolve ou irá trabalhar com Linux. A melhor distribuição é aquela que funciona no seu Hardware!

Ubuntu

O Ubuntu, mantido pela Canonical, é a base para muitas distribuições e possui uma variedade de "flavors". A cada dois anos, em abril, é lançada uma versão LTS (Long-Term Support) que recebe suporte e atualizações de segurança por cinco anos, proporcionando estabilidade a longo prazo e evitando a necessidade constante de reinstalar o sistema operacional.

Para aqueles que preferem estar mais atualizados, a cada seis meses há um novo lançamento, em abril e outubro.

Particularmente, aprecio usar o Ubuntu e personalizá-lo com extensões do GNOME. Além disso, a maioria dos servidores em nuvem utiliza o Ubuntu Server, tornando-se crucial estar familiarizado com esta distribuição ou alguma baseada nela.

Vale destacar que ao pesquisar na Internet por dúvidas sobre Linux, como "Como instalar o VSCode no Linux", os tutoriais mais comuns são para o Ubuntu. A estrutura de pastas e diretórios do Ubuntu é familiar e é uma excelente base para estudar para exames de certificação.

As versões LTS oferecem suporte estendido, podendo ser ainda mais prolongado para até 10 anos através do Ubuntu Pro. Estas versões são rigorosamente testadas, garantindo um sistema altamente estável em sua máquina até o próximo lançamento LTS.

Os repositórios do Ubuntu são abrangentes e bem mantidos, tornando-se o segundo maior repositório de pacotes, atrás apenas do Arch Linux, e oferecendo uma ampla gama de softwares disponíveis.

Do ponto de vista profissional, considero o Ubuntu como a distribuição mais importante, especialmente a versão original. A Canonical possui diversas parcerias com outras empresas, fortalecendo ainda mais o projeto. Um exemplo disso quando instalamos o WSL no Windows. Qual o Linux virá? Ubuntu.

Assim como outras distribuições, o Ubuntu personaliza o ambiente GNOME com sua identidade visual característica, geralmente associada à cor laranja. No entanto, essa personalização é flexível, especialmente ao utilizar as extensões do GNOME mencionadas anteriormente.

Acho que a frase que resume as versões LTS é: Deixa os peões ir na frente.

Pop! OS e ZorinOS

Tenho uma grande afinidade com estas distribuições. O Pop!_OS, mantido pela System76, e o Zorin OS, pela Zorin Group, são exemplos de distros Linux sólidas, respaldadas por empresas dedicadas. Ambas baseiam-se na mais recente versão LTS do Ubuntu, garantindo estabilidade e suporte a longo prazo.

É interessante notar que os tutoriais desenvolvidos para o Ubuntu são igualmente aplicáveis a qualquer distribuição baseada nele, facilitando a experiência do usuário.

Essas distros são cuidadosamente personalizadas para oferecer uma experiência de desktop moderna e acolhedora, ideais para ambientes de trabalho. Apesar de já virem prontas para uso, permitem personalizações adicionais, caso desejado.

O Zorin OS, em particular, destaca-se como uma excelente opção para quem está migrando do Windows para o Linux, devido à sua interface familiar. Da mesma forma, o Linux Mint é frequentemente citado para essa transição, embora eu não tenha experiência pessoal com esta distribuição

Fedora

Para quem prefere uma distribuição com base na Red Hat (RHEL), o Fedora é uma excelente opção para uso em ambientes de desktop. Uma das vantagens de utilizar um sistema Linux baseado no RHEL é a familiaridade com diversas distribuições utilizadas por grandes empresas, como Amazon Linux, Rocky Linux, Oracle Linux, entre outras.

O Fedora destaca-se por ser considerado o "parque de diversões" da Red Hat, com lançamentos a cada seis meses. Diferentemente do Ubuntu, não possui uma versão LTS, e o suporte para cada versão é de 13 meses.

Uma característica marcante do Fedora é a ativação por padrão do suporte a Flatpaks, em vez do formato Snap, incentivado pelo Ubuntu. Isso significa que na loja de aplicativos, os softwares serão instalados no formato Flatpak, conhecido por sua rapidez. No entanto, tanto os Flatpaks podem ser ativados no Ubuntu quanto os Snaps no Fedora.

O Fedora geralmente adota kernels mais recentes, tornando-se uma ótima escolha para máquinas modernas.

Seria interessante dedicar pelo menos um ano ao uso de uma distribuição baseada no RHEL no dia a dia, como forma de aprimorar o aprendizado e aprofundar o conhecimento em sistemas Linux.

Arch Linux

O Arch Linux é uma distribuição notável e, pessoalmente, uma das minhas favoritas. Destaca-se pela sua excelente performance e pelo modelo rolling release, o que significa atualizações contínuas. É uma escolha fantástica para máquinas pessoais, mas talvez não seja a melhor opção para ambientes de trabalho, onde a estabilidade é crucial para manter a produtividade.

Embora seja altamente customizável e permita aos usuários construir seus sistemas conforme suas preferências, o Arch Linux vem com o mínimo necessário instalado. Isso requer um pouco mais de conhecimento em Linux para configurar o sistema de acordo com as necessidades individuais.

O Arch Linux possui o Arch User Repository (AUR), o maior repositório de todos, que contém uma vasta coleção de pacotes mantidos pela comunidade. Embora ofereça acesso a uma ampla variedade de softwares, há o risco de baixar pacotes com bugs não testados. Isso ocorre devido à velocidade de lançamento dos pacotes.

A comunidade do Arch Linux é incrivelmente engajada e oferece uma vasta documentação, talvez uma das maiores atualmente. Isso o torna uma excelente escolha para aprender mais sobre Linux, embora a instalação possa ter sido considerada complicada no passado, hoje em dia dispomos de scripts de instalação que facilitam esse processo.

Para aqueles que apreciam as características do Arch Linux, mas desejam uma abordagem um pouco mais conservadora para o ambiente de trabalho, o Manjaro é uma excelente alternativa. Baseado no Arch, o Manjaro oferece uma versão mais estável dos pacotes, geralmente um pouco atrás da versão mais recente, garantindo uma experiência mais sólida e testada.

Kali

O Kali Linux é uma distribuição focada em testes de penetração e segurança, oferecendo uma variedade de recursos pré-instalados para esses fins específicos. No entanto, pessoalmente, não recomendo utilizar esta distribuição em workstations do dia a dia. Prefiro instalá-la em uma máquina virtual para fins específicos, quando necessário, mantendo assim um número menor de pacotes instalados na minha estação de trabalho principal.

Essa abordagem permite que eu mantenha minha workstation mais limpa e focada em tarefas cotidianas, enquanto ainda tenho acesso aos recursos avançados de segurança oferecidos pelo Kali Linux quando necessário, através de uma máquina virtual dedicada.


Servers

O que tenho experiência e posso recomendar são:

  • Ubuntu Server quando quiser uma distro baseada em Debian
  • Debian Extremamente estável e muito boa para servidores que não sofrem muitos upgrades para hardwares mais novos.
  • Rocky Linux quando precisar de uma distro baseada em Red Hat mas não quer utilizar diretamenteo RHEL e não precisa do suporte.
  • BottleRocket: Distro focada em rodar containers, muito bom para nodes do Kubernetes.
  • Proxmox: Focada em virtualização de nível 1.
  • RaspberryPI OS: Distro usada para raspberry PI.
  • Alpine: Distro minimalista muito usada como base para containers.

Com base na minha experiência, posso recomendar as seguintes distribuições para diferentes propósitos:

  • Ubuntu Server: Excelente escolha quando se deseja uma distribuição baseada no Debian para servidores. Oferece uma ampla gama de recursos e é bem suportado pela comunidade.
  • Debian: Reconhecido pela sua extrema estabilidade, o Debian é uma ótima opção para servidores que não necessitam de atualizações frequentes para hardware mais recente. É uma escolha sólida e confiável para infraestruturas críticas.
  • Rocky Linux: Se você precisa de uma distribuição baseada no Red Hat Enterprise Linux (RHEL), mas prefere evitar o uso direto do RHEL e não necessita de suporte comercial, o Rocky Linux é uma excelente alternativa. Oferece compatibilidade e estabilidade semelhantes ao RHEL.
  • BottleRocket: Focado em executar containers, o BottleRocket é uma escolha ideal para nós do Kubernetes. Sua otimização para ambientes de contêineres oferece desempenho e eficiência.
  • Proxmox: Proxmox é uma solução de virtualização de nível 1 que oferece uma plataforma aberta e poderosa para virtualização e gerenciamento de máquinas virtuais e contêineres. É uma opção robusta para ambientes de virtualização.
  • RaspberryPI OS: Projetado especificamente para uso com Raspberry Pi, esta distribuição oferece um sistema operacional otimizado para o hardware do Raspberry Pi. É ideal para projetos de IoT e computação de baixo custo.
  • Alpine: Conhecido por sua minimalismo e segurança, o Alpine Linux é amplamente utilizado como base para contêineres devido ao seu tamanho compacto e eficiência. É uma escolha popular para ambientes de contêineres que priorizam a segurança e a eficiência de recursos.

Não existe uma distro melhor ou pior, depende do propósito.

Vale a pena acompanhar o site DistroWatch que oferece uma ampla variedade de recursos, incluindo análises, rankings e tendências das distribuições Linux mais populares e também das mais recentes.

Através do DistroWatch, é possível descobrir novos projetos interessantes, acompanhar as atualizações das distribuições existentes e entender as preferências e tendências da comunidade Linux.

É importante não se deixar levar apenas pela popularidade de uma distribuição. Cada distribuição tem suas próprias características, comunidade e fluxo de trabalho, e pode não ser a melhor opção para todos os casos de uso. Explorar as distribuições é uma ótima maneira de expandir o seu conhecimento e entender diferentes abordagens e filosofias.