01
Do que o Linux é feito: kernel, shell, distribuições e licenças
Fica mais fácil pensar no Linux como uma cebola. No centro está o hardware: CPU, memória, discos e placa de rede. Em volta dele fica o kernel, que cuida desse hardware diretamente. Por fora do kernel vem o shell (o bash, por exemplo), que interpreta os comandos que você digita, e na camada mais externa estão os programas que você usa de fato.
Os programas nunca mexem no hardware por conta própria. Quando um deles precisa ler um arquivo ou mandar algo pela rede, ele pede ao kernel com uma chamada de sistema (system call), e o kernel lida com o hardware e devolve o resultado. Assim, mesmo que um programa dê problema, o kernel protege o hardware e todos os outros programas. Troque o comando na cena abaixo para ver.
- Comando
- ls /home
Um comando desce pelas camadas até o hardware e volta · verde-limão = pedido, azul-claro = resultado
O shell interpreta “ls /home” e inicia o programa. O programa nunca mexe no disco por conta própria: ele pede ao kernel com uma chamada de sistema (openat · getdents64). O kernel cuida do hardware e devolve o resultado, e o shell mostra tudo na sua tela. É por isso que, mesmo quando um programa dá problema, o kernel protege o hardware e todos os outros programas.
Distribuições: o kernel junto com as ferramentas
A rigor, “Linux” é o nome do kernel. Só o kernel não dá para usar, então ele vem empacotado com um shell, ferramentas de linha de comando, um gerenciador de pacotes e um instalador. Esse pacote completo se chama distribuição (ou distro). Existem duas grandes famílias, e sempre que os comandos forem diferentes, este guia mostra as duas lado a lado.
| Família RHEL | Família Debian | |
|---|---|---|
| Principais distribuições | Red Hat Enterprise Linux, Rocky Linux, AlmaLinux, Fedora | Debian, Ubuntu |
| Formato de pacote | .rpm | .deb |
| Gerenciadores de pacotes | rpm / dnf (antes, yum) | dpkg / apt |
| Grupo de administradores | wheel | sudo |
Uma versão do kernel como 5.15.0 se lê como “principal.secundária.patch” (major.minor.patch). Antigamente havia uma regra de que um número secundário par indicava uma versão estável, mas essa regra não é mais usada. Hoje o kernel.org publica a versão de desenvolvimento mais recente (mainline), as versões estáveis (stable) e as versões com suporte de longo prazo (longterm).
Software livre e a GPL
Linus Torvalds lançou o kernel Linux em 1991, e muitas das ferramentas em volta dele vieram do Projeto GNU, iniciado por Richard Stallman. Stallman também fundou a Free Software Foundation (FSF), cuja licença principal é a GPL. Qualquer pessoa pode usar, modificar e redistribuir um programa GPL, mas, se você distribuir uma versão modificada, precisa liberar o código-fonte dela nos mesmos termos da GPL. Esse jeito de garantir que a liberdade passe adiante para a próxima pessoa se chama copyleft.
| Licença | Ideia principal | Exemplos |
|---|---|---|
| GPL | Distribuiu uma versão modificada? O código-fonte também tem de sair sob a GPL (copyleft) | O kernel Linux (GPLv2), bash |
| LGPL | Programas que só usam a biblioteca (fazem link com ela) não precisam ser liberados sob a GPL | Bibliotecas como a glibc |
| BSD, MIT, Apache | Licenças permissivas, quase sem obrigação de liberar o código-fonte | Muitas ferramentas e bibliotecas |
Se a questão disser… → escolha isto
- “A parte que gerencia o hardware diretamente e distribui os recursos entre os programas”Kernel
- “O programa que interpreta e executa os comandos digitados pelo usuário”Shell (bash etc.)
- “Distribuiu uma versão modificada, o código-fonte tem de sair nos mesmos termos”GPL (copyleft)
- “Programas que fazem link com a biblioteca não são obrigados a liberar o código-fonte”LGPL
- “A pessoa que iniciou o Projeto GNU e a FSF”Richard Stallman
- “Distribuições gratuitas compatíveis com o RHEL”Rocky Linux, AlmaLinux
Você já viu do que o Linux é feito. Agora vamos ver em que ordem essas camadas acordam quando você aperta o botão de ligar.
02
O que acontece quando você liga a máquina: a sequência de boot
Entre apertar o botão de ligar e ver a tela de login, várias etapas rodam uma depois da outra. É uma corrida de revezamento em que cada etapa encontra a próxima e passa o bastão, então, se você souber em que etapa o boot parou, também sabe o que quebrou.
| Passo | Etapa | O que faz |
|---|---|---|
| 1 | Firmware (BIOS ou UEFI) | Verifica o hardware e escolhe o dispositivo de boot |
| 2 | Setor de boot (MBR) ou partição do sistema EFI | Onde fica o carregador de inicialização |
| 3 | Carregador de inicialização (GRUB2) | Mostra um menu e carrega na memória o kernel e o initramfs |
| 4 | Kernel + initramfs | Inicializa o hardware e usa uma raiz temporária para encontrar e montar o sistema de arquivos raiz de verdade |
| 5 | systemd (PID 1) | O primeiro processo — sobe os serviços na ordem certa |
| 6 | Target | Quando chega ao multi-user (texto) ou ao graphical (gráfico), você pode fazer login |
- Modo
- UEFI + GPT
- Resultado
- Chegou à tela de login
Do botão de ligar até a tela de login · quebre algo e o boot para naquela etapa
Quando você aperta o botão de ligar, o UEFI verifica o hardware, encontra o dispositivo de boot e executa o carregador de inicialização a partir da partição do sistema EFI. O GRUB2 carrega na memória o kernel e o initramfs (uma raiz temporária usada até o sistema de arquivos raiz de verdade ser montado), e o kernel inicia o primeiríssimo processo, o systemd (PID 1). Quando o systemd sobe os serviços até o target padrão, você já pode fazer login.
BIOS/MBR e UEFI/GPT: o jeito antigo e o jeito atual
Quatro nomes parecem muita coisa, mas fica simples quando você separa em dois pares. BIOS e UEFI são o firmware: o programa gravado na placa-mãe que roda primeiro quando você liga a máquina. MBR e GPT são formatos de tabela de partições: um sumário na frente do disco que diz “este disco está dividido assim”. O par antigo costuma ser BIOS + MBR, e o par atual, UEFI + GPT. O que muda entre os dois é como eles encontram a próxima etapa, o carregador de inicialização.
| Jeito antigo | Jeito atual | |
|---|---|---|
| Firmware | BIOS | UEFI |
| Tabela de partições | MBR | GPT |
| Como encontra o carregador de inicialização | Executa do jeito que está o pequeno código guardado no primeiro setor do disco (512 bytes) | Abre uma pequena partição só para o boot (a partição do sistema EFI) e escolhe um arquivo de carregador para executar |
| Pense assim | Ler o bilhete colado na contracapa de um livro e fazer o que ele manda | Abrir uma pasta “boot” e escolher o arquivo a executar |
No Linux, a partição do sistema EFI costuma ficar montada em /boot/efi. As provas adoram perguntar isso como “onde fica o carregador de inicialização no boot com UEFI”.
O carregador de inicialização GRUB2
O carregador de inicialização encontrado e executado desse jeito é o GRUB2. O LILO também foi usado no passado, mas hoje o padrão é o GRUB2. Aqui está a pegadinha na hora de mudar as configurações: você não edita à mão o grub.cfg, que é o arquivo lido de fato no boot. Em vez disso, edita o arquivo de origem, /etc/default/grub, e depois roda o grub2-mkconfig (no Ubuntu, update-grub), que gera um grub.cfg novo.
Dos runlevels aos targets
O init antigo dividia os estados do sistema em “níveis de execução” (runlevels) numerados. O systemd trocou isso por targets e mapeia os números antigos para eles, então os nomes antigos continuam funcionando.
| Runlevel | Target do systemd | Estado |
|---|---|---|
| 0 | poweroff.target | Desligar |
| 1 | rescue.target | Modo de recuperação (só o administrador, só serviços básicos) |
| 3 | multi-user.target | Vários usuários, modo texto (um padrão comum em servidores) |
| 5 | graphical.target | Vários usuários, tela gráfica |
| 6 | reboot.target | Reiniciar |
Você vê o target padrão com systemctl get-default e muda com systemctl set-default. Há dois modos para quando algo quebra. O rescue.target é o modo de recuperação: monta os sistemas de arquivos e deixa o administrador entrar sozinho, com um conjunto mínimo de serviços. O emergency.target é o modo de emergência, que sobe ainda menos coisa (o sistema de arquivos raiz é montado só para leitura). Quando um /etc/fstab errado trava o boot, normalmente você cai no modo de emergência.
Se a questão disser… → escolha isto
- “Onde fica o carregador de inicialização no boot com UEFI”Partição do sistema EFI (/boot/efi)
- “O carregador de inicialização padrão no Linux hoje”GRUB2 (antes, LILO)
- “O primeiro processo que o kernel executa (PID 1)”systemd
- “O target do systemd que corresponde ao runlevel 3”multi-user.target
- “O target que inicia com login gráfico”graphical.target (runlevel 5)
- “O que fazer depois de mudar as configurações do GRUB”Gerar o grub.cfg de novo com grub2-mkconfig (update-grub)
Nos passos 3 e 4 do boot, o kernel encontrou o “sistema de arquivos raiz” e o montou. Agora vamos ver como os discos são divididos e montados.
Publicidade
03
Dividir e montar discos: partições, sistemas de arquivos e a estrutura de diretórios
Não dá para usar um disco novo direto da caixa. São três passos. Primeiro você divide o disco em áreas (partições). Depois cria em cada partição um formato para guardar arquivos (um sistema de arquivos) com o mkfs. Por fim, monta a partição em um ponto da árvore de diretórios com o mount. Diferente do Windows, não existem unidades C: e D: separadas. Todo disco entra como um galho de uma única árvore que começa em /.
- Tabela de partições
- MBR
- Espaço utilizável
- 2 / 4 TiB
Divida o prato do disco (uma volta completa = o disco inteiro) em partições em forma de fatia e monte cada uma em um ponto da árvore de diretórios (as pastas)
O MBR guarda as informações das partições nos primeiros 512 bytes do disco e permite até 4 partições primárias. Precisa de mais? Transforme uma delas em partição estendida e crie partições lógicas dentro dela (as lógicas são numeradas a partir de 5). Com setores de 512 bytes, nada além de 2 TiB pode ser usado. Cada partição só fica utilizável depois que você cria um sistema de arquivos nela (mkfs) e a monta em um ponto da árvore de diretórios (mount).
| MBR | GPT | |
|---|---|---|
| Número de partições | Até 4 primárias (transforme uma em estendida e crie partições lógicas dentro dela, numeradas a partir de 5) | 128 por padrão |
| Tamanho do disco | Até 2 TiB com setores de 512 bytes | Discos muito maiores que isso |
| Boot | BIOS | UEFI (partição do sistema EFI) |
Sistemas de arquivos e swap
Os sistemas de arquivos mais comuns no Linux são o ext4 e o XFS. Os dois usam journaling: antes de aplicar uma mudança, eles a anotam primeiro em um diário (o journal). Assim, mesmo que a energia caia de repente, o sistema de arquivos corre menos risco de corromper, e a verificação também é mais rápida. A família RHEL usa XFS por padrão. O XFS é fácil de aumentar, mas considere diminuí-lo praticamente impossível (existe só um recurso que corta um pedacinho do final). A swap é um espaço em disco que o sistema usa por um tempo quando a memória fica curta. Ela não é montada em um diretório; você a liga com o swapon.
/etc/fstab: onde montar a cada boot
O que você monta com o comando mount some depois de reiniciar. Para montar a cada boot, adicione uma linha no /etc/fstab. Cada linha tem seis campos.
# dispositivo (ou UUID) montar em tipo de FS opções dump ordem fsck UUID=4c2f…a91e /home xfs defaults 0 0 /dev/sdb1 /data ext4 defaults,nofail 0 2
Se um disco listado aqui não estiver presente, o boot para no modo de emergência (capítulo 2). Coloque nofail nos discos que não são essenciais. Nomes de dispositivo como /dev/sdb1 podem mudar conforme a ordem em que os discos são conectados, então é mais seguro usar o UUID, que não muda.
A estrutura de diretórios (FHS)
Em qualquer distribuição, cada diretório tem uma função definida (o Padrão de Hierarquia do Sistema de Arquivos, FHS).
| Diretório | O que guarda |
|---|---|
| /etc | Arquivos de configuração do sistema |
| /home | Diretórios home dos usuários comuns (/root é o home do administrador) |
| /var | Dados que mudam o tempo todo, como logs (/var/log), e-mail e caches |
| /tmp | Arquivos temporários que qualquer um pode usar (Sticky Bit, capítulo 5) |
| /usr | Programas e bibliotecas instalados (hoje em dia /bin e /sbin muitas vezes estão unificados em /usr/bin e /usr/sbin) |
| /opt | Software adicional instalado à parte |
| /boot | Arquivos do kernel e do carregador de inicialização |
| /dev | Arquivos de dispositivo (/dev/sda etc.) |
| /proc | Um sistema de arquivos virtual que mostra informações do kernel e dos processos como arquivos (não fica no disco) |
Se a questão disser… → escolha isto
- “Você precisa de mais de 4 partições primárias no MBR”Transformar uma em partição estendida e criar partições lógicas dentro dela
- “Uma partição só em um disco maior que 2 TiB”GPT
- “O método que reduz danos ao sistema de arquivos depois de uma queda de energia”Journaling (ext4, XFS)
- “Montar automaticamente a cada boot”Adicionar ao /etc/fstab
- “O diretório que guarda os arquivos de configuração do sistema”/etc
- “Onde os arquivos de log se acumulam”/var/log
- “Um sistema de arquivos virtual que mostra informações do kernel, não do disco”/proc
Com o disco montado, vamos olhar os arquivos dentro dele. O nome de um arquivo e o conteúdo dele, na verdade, ficam em lugares separados.
Exclusivo Pro
Até aqui vai a parte gratuita
Os outros 6 capítulos estão disponíveis para assinantes Pro. Cada um continua com visuais em 3D e dicas de “se a questão disser…”, e no último capítulo você testa o que aprendeu.
- 04Inodes, links e comandos básicos
- 05Permissões
- 06Usuários e grupos
- 07O shell: redirecionamento, pipes e vi
- 08Processos e sinais
- 09Gerenciamento de pacotes e serviços
PasslyExam
Você já leu o conceito. Agora teste com questões de prova
O PasslyExam oferece questões práticas originais, explicações e simulados completos baseados no guia oficial de cada certificação. As explicações mostram por que a opção certa está certa e por que as opções parecidas estão erradas. Cadastre-se e pratique de graça todos os dias.