Curso de Linux / O que é Linux? Kernel, distribuições e código aberto
Em sentido estrito, Linux é um kernel, o núcleo do sistema operacional que gerencia recursos entre o hardware e os programas. O sistema que você instala costuma ser uma distribuição Linux: o kernel combinado com comandos, bibliotecas e ferramentas de instalação e atualização. Essa diferença explica por que Ubuntu e Rocky Linux usam Linux, mas oferecem ambientes e formas de administração diferentes.
Para transformar esses conceitos em uma instalação de prática, as lições sobre escolha da distribuição e preparação de uma máquina virtual e recuperação detalham as decisões envolvidas. Essas duas referências estão em inglês.
Linux é um kernel ou um sistema operacional?
As duas expressões aparecem no uso cotidiano, com alcances diferentes. O kernel Linux é uma parte central do sistema operacional; chamar o sistema completo de Linux normalmente inclui também os programas necessários para usá-lo. Assim, atualizar o kernel e instalar uma distribuição inteira são tarefas distintas.
O kernel distribui tempo de processamento e memória entre programas e lida com sistemas de arquivos, rede e dispositivos por meio de drivers, os controladores de dispositivos. Em operações comuns, como abrir um arquivo, o programa usa interfaces do kernel para acessar esses recursos. A documentação oficial do kernel Linux separa a documentação interna das interfaces destinadas aos programas do espaço do usuário.
O comando que copia arquivos, o navegador, o servidor web e o ambiente gráfico não são o próprio kernel. Esses programas executam no espaço do usuário (user space) e recorrem às funções do kernel quando necessário. Muitas distribuições incluem ferramentas do projeto GNU, dedicado ao software livre, mas nem todo programa desse espaço pertence ao GNU. A explicação do projeto GNU sobre GNU e Linux apresenta a relação entre esses projetos.
Quais são as partes de um sistema Linux?
Para começar, organize os conceitos em três camadas. É uma simplificação para estudar as responsabilidades, não uma descrição completa da arquitetura: o sistema real também tem uma sequência de inicialização e outros componentes intermediários.
- Hardware: os componentes físicos, como a unidade central de processamento (CPU), a memória, o armazenamento e as interfaces de rede.
- Kernel Linux: gerencia recursos do hardware e oferece funções comuns aos programas.
- Espaço do usuário: inclui o interpretador de comandos, chamado shell, os comandos, as bibliotecas, os serviços, o ambiente gráfico e as aplicações.
Ao executar no terminal um comando que lê um arquivo, o programa do comando funciona no espaço do usuário, enquanto a abertura e a leitura utilizam os mecanismos do kernel. Escolher ferramentas de servidor ou um ambiente de trabalho gráfico muda o uso do sistema sem transformar essas ferramentas em partes do kernel.
O que uma distribuição acrescenta?
Uma distribuição Linux seleciona e combina o kernel com outros programas e oferece meios de instalar, configurar e atualizar o conjunto. Normalmente inclui um gerenciador de pacotes, repositórios de software, serviços básicos, documentação e uma política de atualizações de segurança. A apresentação do projeto Debian descreve essa distribuição como um sistema operacional com aplicações, além do kernel.
Ubuntu e Rocky Linux usam o kernel Linux, mas diferem em formatos de pacotes, ferramentas de administração, configurações padrão e políticas de suporte. Ao seguir um tutorial, identifique se a instrução trata do kernel, de uma ferramenta presente em várias distribuições ou de um procedimento específico de uma delas. Compartilhar o kernel não torna dois sistemas completos idênticos nem garante que o mesmo comando de instalação sirva para ambos.
O que significa código aberto?
Código aberto (open source) vai além de conseguir ler o código-fonte. A licença deve permitir usar, modificar e redistribuir o programa, dentro das condições aplicáveis. A Open Source Definition da Open Source Initiative (OSI) inclui critérios sobre acesso ao código, redistribuição e obras derivadas. Ter o código disponível para consulta, por si só, não satisfaz essa definição.
Código aberto não significa necessariamente ausência de cobrança. Um programa pode ser gratuito para baixar sem conceder os direitos de alteração e redistribuição. Também é possível vender software de código aberto ou cobrar por suporte. Os componentes de uma distribuição podem ter licenças diferentes, e nem todos os componentes fornecidos precisam ser de código aberto; consulte a licença de cada programa para entender suas condições.
Como identificar o kernel e a distribuição em uso
Execute os comandos no Linux que pretende identificar. A consulta abaixo mostra a versão de lançamento do kernel em execução, conforme a descrição de uname -r no GNU Coreutils:
uname -r
Para consultar a identificação fornecida pela distribuição, leia:
cat /etc/os-release
Em os-release, PRETTY_NAME é o nome de apresentação; ID identifica o sistema, e VERSION_ID, quando presente, identifica sua versão. Esse último campo é opcional. Se /etc/os-release não existir, a especificação prevê /usr/lib/os-release como alternativa; alguns ambientes mínimos podem não fornecer esses dados. Esses arquivos descrevem o sistema operacional e não precisam ter números iguais ao resultado de uname -r. As consultas apenas leem informações e não atualizam o kernel nem a distribuição.
Conceitos essenciais
- Kernel: núcleo que gerencia recursos e fornece funções aos programas.
- Espaço do usuário: onde funcionam comandos, bibliotecas, serviços e aplicações.
- Distribuição: sistema instalável que reúne o kernel e outros programas, com ferramentas e políticas de manutenção.
- Código aberto: software com licença que permite uso, modificação e redistribuição sob suas condições.
A história do Linux, do projeto iniciado em 1991 à infraestrutura mundial mostra como o kernel e seu ecossistema evoluíram ao longo do tempo.




