Fundamentos

O que é Linux: kernel, distribuições e sistema de arquivos explicados

Atualizado: · Skillaria.Top

Linux é o kernel de um sistema operacional de código aberto que gerencia processador, memória, discos e rede. Somado a utilitários, gerenciador de pacotes e sistema de inicialização, o kernel forma uma distribuição, como Ubuntu, Debian ou Fedora. Como o Linux roda na maioria dos servidores, contêineres e nuvens, saber trabalhar com ele é uma habilidade básica para DevOps e administradores de sistemas.

Linux é o kernel de um sistema operacional de código aberto, em torno do qual são montados sistemas completos para servidores, computadores de mesa e dispositivos embarcados. Quando se diz «servidor com Linux», não se fala de um único programa, mas de uma distribuição: o kernel somado a um conjunto de utilitários, bibliotecas, gerenciador de pacotes e sistema de inicialização. Neste artigo você vai entender o que é o Linux de fato, de que partes ele é composto e por que quase nenhum engenheiro DevOps consegue trabalhar sem ele.

Linux é o kernel, não o sistema inteiro

Tecnicamente, Linux é apenas o kernel. O kernel é o programa executado logo após o gerenciador de boot e que permanece na memória enquanto o computador estiver ligado. Ele distribui o tempo do processador entre os processos, aloca memória, trabalha com discos e placas de rede por meio de drivers e verifica as permissões de acesso.

Programas comuns não acessam o hardware diretamente. Quando um editor salva um arquivo, ele faz uma chamada de sistema (open, write, close), e é o kernel que decide em qual bloco do disco os dados serão gravados e se o processo tem o direito de fazer isso. Essa divisão torna o sistema estável: se um programa travar, o computador inteiro não cai.

Para ver a versão do kernel basta um comando:

$ uname -r
6.8.0-45-generic

O kernel foi criado por Linus Torvalds em 1991 e desde então é desenvolvido de forma aberta. O código-fonte é distribuído sob a licença GNU GPL versão 2, e qualquer pessoa pode lê-lo, modificá-lo e redistribuí-lo nas mesmas condições.

O que é uma distribuição Linux

Só o kernel não basta: é preciso um shell para digitar comandos, utilitários para manipular arquivos, bibliotecas e um instalador de programas. Boa parte dos utilitários básicos (ls, cp, bash, grep) veio do projeto GNU, por isso o sistema às vezes é chamado de GNU/Linux. O kernel junto com esse conjunto, compilado e testado de uma vez, forma uma distribuição.

As distribuições diferem principalmente pelo gerenciador de pacotes, pela política de atualizações e pelo público a que se destinam.

FamíliaExemplosPacotesOnde aparece
DebianDebian, Ubuntu, Linux Mint.deb, aptservidores, nuvem, estações de trabalho
Red HatRHEL, Fedora, Rocky Linux, AlmaLinux.rpm, dnfservidores corporativos
AlpineAlpine Linuxapkimagens Docker em que o tamanho importa
ArchArch Linux, Manjaropacmanentusiastas e quem quer versões mais recentes

Para descobrir qual distribuição está em uso, consulte o arquivo /etc/os-release:

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
ID=ubuntu
ID_LIKE=debian

Para estudar e para servidores, costumam ser escolhidos o Ubuntu LTS ou o Debian: há muita documentação, e os comandos encontrados na internet quase sempre funcionam sem alterações.

Como o sistema é organizado: kernel, shell e espaço do usuário

O Linux é mais fácil de entender em camadas. Embaixo está o hardware, acima dele o kernel, e acima ainda o espaço do usuário, com os serviços do sistema, as bibliotecas (como a glibc) e os aplicativos. Entre a pessoa e o sistema fica o shell, geralmente o bash, que recebe os comandos e inicia os programas.

  • Kernel: processos, memória, sistemas de arquivos, rede e drivers.
  • Sistema de inicialização: o primeiro processo, com PID 1; na maioria das distribuições atuais é o systemd, que inicia os demais serviços.
  • Serviços (daemons): servidor web, servidor SSH, cron, registro de logs.
  • Shell e utilitários: aquilo com que você trabalha no terminal.

Em servidores normalmente não há interface gráfica: o administrador se conecta por SSH e trabalha na linha de comando. Por isso, aprender Linux é, antes de tudo, aprender o terminal.

Sistema de arquivos do Linux: tudo começa na raiz /

No Linux não existem unidades como C: e D:. Existe uma única árvore de diretórios que começa na raiz /. Todos os discos, pen drives e compartilhamentos de rede são montados (mount) em algum diretório dessa árvore. Outro princípio: quase tudo no Linux é representado como arquivo, sejam arquivos comuns, diretórios, dispositivos ou até informações sobre processos.

$ ls /
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

A organização dos diretórios é descrita pelo padrão FHS (Filesystem Hierarchy Standard), por isso, em qualquer distribuição, os arquivos de configuração ficam mais ou menos nos mesmos lugares.

DiretórioConteúdo
/etcconfiguração do sistema e dos serviços: /etc/passwd, /etc/ssh/sshd_config, /etc/fstab
/homediretórios pessoais dos usuários: /home/alice
/rootdiretório pessoal do superusuário root
/vardados que mudam: logs em /var/log, cache de pacotes, bancos de dados, filas de e-mail
/usrprogramas e bibliotecas instalados: /usr/bin, /usr/lib
/bin, /sbincomandos básicos; nas distribuições atuais são links para /usr/bin e /usr/sbin
/bootkernel (vmlinuz-*), initramfs e arquivos do gerenciador de boot
/devarquivos de dispositivos: /dev/sda, /dev/null
/proc, /syssistemas de arquivos virtuais: o kernel mostra por eles processos e configurações
/tmparquivos temporários, geralmente apagados na reinicialização
/optprogramas de terceiros fornecidos como um pacote completo
/mnt, /mediapontos de montagem de discos e mídias removíveis

Caminhos absolutos e relativos

O caminho absoluto começa com / e não depende de onde você está: /var/log/syslog. O caminho relativo é contado a partir do diretório atual: ../logs/app.log. O ponto . é o diretório atual, dois pontos .. é o diretório pai, e o til ~ é o seu diretório pessoal.

$ pwd
/home/alice
$ cd /var/log
$ cd ..
$ pwd
/var
$ cd ~
$ pwd
/home/alice

/proc: o sistema como um conjunto de arquivos

O diretório /proc não fica gravado no disco: ele é gerado pelo kernel na hora. Por exemplo, cat /proc/cpuinfo mostra os processadores, cat /proc/meminfo mostra a memória, e cada processo tem um diretório /proc/<PID> com sua linha de comando e os arquivos abertos. Ferramentas como ps e top apenas leem esses arquivos.

Montagem

O comando df -h mostra quais sistemas de arquivos estão montados onde e quanto espaço ainda têm:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        40G   12G   26G  32% /
/dev/sda1       1.1G  6.1M  1.1G   1% /boot/efi
tmpfs           393M  1.2M  392M   1% /run

Os pontos de montagem permanentes são descritos em /etc/fstab, que o sistema lê na inicialização.

Como o Linux inicializa: do liga até o prompt de login

Entender a inicialização ajuda quando o servidor «não sobe» depois de uma reinicialização. De forma simplificada, a cadeia é esta:

  1. Firmware (UEFI ou BIOS) verifica o hardware e localiza o gerenciador de boot.
  2. Gerenciador GRUB mostra o menu e carrega na memória o kernel e a imagem initramfs a partir de /boot.
  3. Kernel inicializa o hardware e, com a ajuda do initramfs, encontra e monta o sistema de arquivos raiz.
  4. systemd é iniciado como processo PID 1 e sobe os serviços na ordem correta: rede, logs, SSH, cron e os demais.
  5. Prompt de login aparece no console ou fica disponível por SSH.

As mensagens do kernel durante a inicialização podem ser vistas com sudo dmesg ou journalctl -k, e o tempo de cada etapa com systemd-analyze.

Usuários e permissões: proteção embutida

O Linux é um sistema multiusuário desde o início. Todo arquivo tem um dono, um grupo e permissões de leitura, escrita e execução. Um usuário comum não consegue estragar arquivos do sistema, e as tarefas administrativas são feitas com sudo. O superusuário root pode tudo, por isso não é recomendado trabalhar com ele o tempo todo.

$ ls -l /etc/passwd
-rw-r--r-- 1 root root 2847 Oct  1 10:12 /etc/passwd

Essa linha se lê assim: arquivo comum, o dono root pode ler e gravar, e os demais só podem ler.

Por que o engenheiro DevOps precisa do Linux

Para o engenheiro DevOps, o Linux não é um tema entre vários, mas o ambiente em que quase todo o trabalho acontece. Estes são os lugares onde ele aparece todos os dias:

  • Servidores. Servidores web, bancos de dados e filas rodam, na grande maioria dos casos, em Linux.
  • Contêineres. O Docker usa mecanismos do kernel Linux, como namespaces e cgroups. Um contêiner é um processo Linux isolado, e a imagem se baseia em uma distribuição como Debian ou Alpine.
  • Nuvem e Kubernetes. As máquinas virtuais da nuvem e os nós dos clusters também são Linux.
  • CI/CD. As compilações dos pipelines são executadas em runners Linux, e os scripts de build costumam ser escritos em bash.
  • Diagnóstico. Quando um serviço cai, a resposta é procurada em journalctl, top, ss e df. Sem conhecer essas ferramentas, não há como analisar um incidente.

O conjunto mínimo de habilidades inclui: andar com segurança pelo sistema de arquivos, entender permissões, instalar pacotes, gerenciar serviços com systemctl, ler logs, trabalhar com processos, rede e SSH, e escrever scripts bash simples.

Como começar a estudar Linux

Não é preciso instalar o Linux no lugar do sistema principal. Existem algumas formas seguras de experimentar:

  • Máquina virtual (VirtualBox, VMware) com Ubuntu Server, que pode ser quebrada e restaurada a partir de um snapshot.
  • WSL no Windows: um ambiente Ubuntu completo dentro do terminal do Windows, instalado com wsl --install.
  • Servidor na nuvem: a opção mais próxima do trabalho real, acessada por SSH.
  • Contêiner Docker: docker run -it --rm ubuntu bash abre um shell em segundos.

Comece pela navegação (pwd, ls, cd), depois arquivos e permissões, depois pacotes, processos e serviços. A ajuda embutida está sempre disponível: man ls ou ls --help.

Conclusão

Linux é o kernel, e a distribuição é o kernel somado a utilitários, bibliotecas, gerenciador de pacotes e systemd. O sistema inteiro é uma árvore de diretórios que começa na raiz /, com as configurações em /etc, os logs em /var/log e os programas em /usr. Entendendo o que é Linux e como ele inicializa, você adquire a base para trabalhar com servidores, contêineres e nuvem. Sistema de arquivos, inicialização e administração são explicados com prática no curso de Linux.

Perguntas frequentes

Linux é um sistema operacional ou um kernel?

Formalmente, Linux é o kernel. O sistema operacional é formado pela distribuição: o kernel mais utilitários GNU, bibliotecas, gerenciador de pacotes e sistema de inicialização. Na conversa do dia a dia, «Linux» geralmente significa o sistema completo.

Linux é gratuito?

O kernel e a maioria das distribuições (Ubuntu, Debian, Fedora) são distribuídos gratuitamente sob licenças livres. Pagam-se assinaturas de suporte, como as do Red Hat Enterprise Linux.

Qual distribuição Linux um iniciante deve escolher?

Para servidores e para aprender administração, o Ubuntu LTS e o Debian são boas opções: têm versões estáveis e muita documentação. Os conhecimentos são transferíveis entre distribuições, e a diferença principal está no gerenciador de pacotes.

Preciso conhecer Linux para usar Docker?

Sim, pelo menos o básico. Os contêineres são construídos sobre mecanismos do kernel Linux, as imagens contêm uma distribuição, e a depuração é feita com comandos de shell.

Qual é a diferença entre Linux e Unix?

Unix é uma família de sistemas surgida nos anos 1970, enquanto Linux é um kernel escrito de forma independente que repete as ideias e interfaces do Unix (seguindo o padrão POSIX). Por isso, os comandos e os princípios de funcionamento são muito parecidos.

Aprenda este tema em vídeo

Este tema é abordado em profundidade, com prática, no curso “Linux: с нуля до уверенного администрирования”.

Ir para o curso