Pular para o conteúdo principal

Linux

O que é "Linux", exatamente?

Linux é, tecnicamente, apenas o kernel — criado por Linus Torvalds em 1991, como projeto pessoal inspirado no Minix (um Unix acadêmico). Sozinho, o kernel não é um sistema operacional utilizável: precisa de bibliotecas, um shell, gerenciador de pacotes e utilitários ao redor.

Esse conjunto (kernel Linux + ferramentas GNU + gerenciador de pacotes + tudo mais) é o que forma uma distribuição (distro):

┌─────────────────────┐
│ Kernel Linux │ ← o mesmo código-fonte,
│ (mesmo para todas) │ compartilhado por todas
└──────────┬───────────┘
┌──────────────┬──────┴───────┬──────────────┐
▼ ▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ Ubuntu │ │ Debian │ │ Fedora │ │ Arch │
│ (.deb, │ │ (.deb, │ │ (.rpm, │ │(pacman, │
│ apt) │ │ apt) │ │ dnf) │ │rolling) │
└─────────┘ └─────────┘ └─────────┘ └─────────┘

Cada distro escolhe seu próprio gerenciador de pacotes, ambiente gráfico padrão (GNOME, KDE, XFCE), política de lançamento e foco (Ubuntu/Debian para desktop e servidor geral, Fedora para tecnologia de ponta, Arch para controle granular, Kali para segurança ofensiva).


Arquitetura do kernel

O kernel Linux é monolítico modular: todo o núcleo (processos, memória, rede, sistemas de arquivos) roda em modo kernel para máximo desempenho, mas drivers e funcionalidades podem ser compilados como módulos (.ko) carregados e descarregados em tempo de execução, sem recompilar o kernel inteiro.

lsmod # lista módulos carregados no momento
sudo modprobe nome # carrega um módulo (ex.: driver de rede)
sudo rmmod nome # descarrega um módulo

Isso dá parte da flexibilidade de um microkernel (adicionar/remover funcionalidade sem reiniciar) sem abrir mão do desempenho de chamadas internas de um monolítico.


"Tudo é um arquivo"

Uma filosofia central herdada do UNIX: dispositivos, processos e até informações do kernel são expostos como arquivos, navegáveis com os mesmos comandos (cat, ls, echo) usados para documentos comuns.

CaminhoO que é
/dev/sdaDisco físico inteiro (bloco de dispositivo)
/dev/ttyTerminal atual
/proc/cpuinfoInformações da CPU, geradas ao vivo pelo kernel
/proc/[pid]/Estado de um processo em execução
/sys/class/thermal/Sensores de temperatura expostos pelo kernel

Sistema de arquivos e boot

  • ext4 é o sistema de arquivos padrão na maioria das distros (journaling, como o NTFS); alternativas modernas incluem Btrfs (snapshots nativos) e XFS (servidores de alta performance).
  • systemd é o sistema de init (o primeiro processo, PID 1) na maioria das distros atuais — gerencia a ordem de inicialização de serviços, dependências e logs (journalctl). Substituiu o antigo init/SysV em quase todas as distros principais desde meados dos anos 2010.
systemctl status nginx # estado de um serviço
systemctl enable nginx # inicia automaticamente no boot
journalctl -u nginx # logs desse serviço

Código aberto e a licença GPL

O Linux é distribuído sob a GPL (GNU General Public License): qualquer um pode ler, modificar e redistribuir o código-fonte, desde que trabalhos derivados também sejam abertos sob a mesma licença (copyleft). É esse modelo que permite que fabricantes de hardware, a Google (Android) e distros comerciais (Red Hat) construam produtos sobre o mesmo núcleo sem pagar licenciamento.

Por que isso importa na prática?

Você pode ler o código-fonte exato do driver que está rodando na sua máquina, ou o do kernel de um roteador doméstico — não é possível fazer isso com o kernel NT do Windows ou o XNU do macOS, que são fechados.


Onde o Linux domina

AmbientePor quê
Servidores/nuvemEstabilidade, sem custo de licença, controle total via linha de comando — a imensa maioria da AWS/Azure/GCP roda instâncias Linux
Supercomputadores100% dos 500 supercomputadores mais rápidos do mundo rodam Linux (top500.org)
Sistemas embarcadosRoteadores, smart TVs, carros — kernel enxuto e customizável
Desenvolvimento/DevOpsContêineres (Docker), Kubernetes e a maior parte da infraestrutura de nuvem nasceram e rodam nativamente em Linux
AndroidBilhões de smartphones — ver próxima página

Próximo: macOS

➡️ macOS →