O que é Linux: kernel, distribuições e sistema de arquivos explicados
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ília | Exemplos | Pacotes | Onde aparece |
|---|---|---|---|
| Debian | Debian, Ubuntu, Linux Mint | .deb, apt | servidores, nuvem, estações de trabalho |
| Red Hat | RHEL, Fedora, Rocky Linux, AlmaLinux | .rpm, dnf | servidores corporativos |
| Alpine | Alpine Linux | apk | imagens Docker em que o tamanho importa |
| Arch | Arch Linux, Manjaro | pacman | entusiastas 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ório | Conteúdo |
|---|---|
/etc | configuração do sistema e dos serviços: /etc/passwd, /etc/ssh/sshd_config, /etc/fstab |
/home | diretórios pessoais dos usuários: /home/alice |
/root | diretório pessoal do superusuário root |
/var | dados que mudam: logs em /var/log, cache de pacotes, bancos de dados, filas de e-mail |
/usr | programas e bibliotecas instalados: /usr/bin, /usr/lib |
/bin, /sbin | comandos básicos; nas distribuições atuais são links para /usr/bin e /usr/sbin |
/boot | kernel (vmlinuz-*), initramfs e arquivos do gerenciador de boot |
/dev | arquivos de dispositivos: /dev/sda, /dev/null |
/proc, /sys | sistemas de arquivos virtuais: o kernel mostra por eles processos e configurações |
/tmp | arquivos temporários, geralmente apagados na reinicialização |
/opt | programas de terceiros fornecidos como um pacote completo |
/mnt, /media | pontos 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:
- Firmware (UEFI ou BIOS) verifica o hardware e localiza o gerenciador de boot.
- Gerenciador GRUB mostra o menu e carrega na memória o kernel e a imagem initramfs a partir de
/boot. - Kernel inicializa o hardware e, com a ajuda do initramfs, encontra e monta o sistema de arquivos raiz.
- systemd é iniciado como processo PID 1 e sobe os serviços na ordem correta: rede, logs, SSH, cron e os demais.
- 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,ssedf. 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 bashabre 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.
Este tema é abordado em profundidade, com prática, no curso “Linux: с нуля до уверенного администрирования”.
- Linux: с нуля до уверенного администрирования
- Как устроена файловая система Linux: от корня до загрузки ядра