O que é um Sistema Operacional?
Definição
Um Sistema Operacional (SO) é o software que gerencia o hardware de um computador e oferece uma camada de abstração para que aplicações não precisem "falar" diretamente com o processador, a memória ou os discos.
Sistema Operacional é o software de sistema responsável por gerenciar recursos de hardware (CPU, memória, dispositivos de E/S, armazenamento) e fornecer serviços comuns para os programas de aplicação, através de uma interface controlada.
Sem SO, cada aplicativo teria que reimplementar do zero como mover a cabeça de leitura de um disco, como alternar entre tarefas na CPU ou como desenhar um pixel na tela. O SO existe para que isso nunca precise ser refeito — ele oferece uma API estável e todo programa a reaproveita.
Onde o SO entra na cadeia hardware → software
O boot de um computador segue uma cadeia de entrega de controle, cada elo passando a "batuta" para o próximo:
O firmware (BIOS/UEFI) só faz o mínimo: testar a memória, detectar dispositivos e carregar o kernel do disco para a RAM. A partir daí, quem manda é o SO — veja o processo completo de POST em BIOS/UEFI.
O coração do SO: o Kernel
O kernel (núcleo) é a parte do SO que roda com privilégio total sobre o hardware. Para proteger o sistema de programas com bugs (ou maliciosos), a CPU separa a execução em dois modos:
| Modo | Quem roda aqui | Pode fazer |
|---|---|---|
| Modo Kernel (ring 0) | O núcleo do SO e drivers | Acessa qualquer endereço de memória, qualquer instrução de CPU, qualquer dispositivo diretamente |
| Modo Usuário (ring 3) | Aplicativos comuns (navegador, editor, jogo) | Só acessa a própria memória isolada; para tocar hardware, precisa pedir ao kernel |
Quando um aplicativo em modo usuário precisa de algo que só o kernel pode fazer — abrir um arquivo, alocar memória, enviar dados pela rede — ele faz uma syscall (system call): uma chamada especial que interrompe a CPU, troca para modo kernel, executa a operação com segurança, e volta o controle ao programa.
Aplicativo (modo usuário)
│ printf("olá") → precisa escrever na tela
▼
syscall write()
│ CPU troca ring 3 → ring 0
▼
Kernel (modo kernel)
│ valida o pedido, executa, protege outros processos
▼
Driver de vídeo → hardware
│ CPU troca ring 0 → ring 3
▼
Aplicativo recebe o resultado e continua
Sem modo kernel/usuário, um erro de ponteiro em qualquer programa (mesmo uma calculadora) poderia sobrescrever a memória de outro processo ou travar o sistema inteiro. A separação de privilégio é o que permite que o Chrome trave sem derrubar o resto do computador.
As três responsabilidades centrais
1. Gerência de processos
O kernel decide quem executa e por quanto tempo na CPU. Como a maioria dos processadores tem muito menos núcleos do que processos rodando, o escalonador (scheduler) alterna rapidamente entre eles (context switch), criando a ilusão de multitarefa simultânea.
Experimente o mesmo cenário de 4 processos nos três algoritmos de escalonamento mais estudados — e veja por que sistemas operacionais reais (Windows, Linux, macOS) usam variações de Round-Robin em vez de sempre escolher o processo "ótimo":
Simulador de Escalonamento de Processos
ℹ️ Executa os processos na ordem exata de chegada, do início ao fim, sem interrupção. Simples, mas sofre do "efeito comboio": um processo longo atrasa todos os curtos atrás dele.
| Processo | Chegada | Duração | Status | Conclusão | Turnaround | Espera |
|---|---|---|---|---|---|---|
| P1 | 0 | 5 | Fila de prontos | — | — | — |
| P2 | 1 | 3 | Ainda não chegou | — | — | — |
| P3 | 2 | 8 | Ainda não chegou | — | — | — |
| P4 | 3 | 2 | Ainda não chegou | — | — | — |
2. Gerência de memória
O kernel dá a cada processo a ilusão de ter a memória inteira só para si — a memória virtual — traduzindo endereços virtuais para endereços físicos reais na RAM (e, quando ela não é suficiente, no disco). Veja o mecanismo completo, com simulador interativo, em Memória Virtual.
3. Gerência de dispositivos e arquivos
O kernel expõe discos, teclados, placas de rede e impressoras através de drivers, e organiza dados em sistemas de arquivos (NTFS, ext4, APFS...). Aprofundamos isso em Drivers e Bibliotecas.
Tipos de arquitetura de kernel
Nem todo kernel é organizado da mesma forma. A decisão de projeto é: quanto código roda em modo kernel (rápido, mas arriscado) versus modo usuário (mais lento, mas mais seguro e estável)?
| Arquitetura | Como funciona | Vantagem | Desvantagem | Exemplo |
|---|---|---|---|---|
| Monolítico | Kernel inteiro (processos, memória, drivers, sistema de arquivos) roda em um único bloco, em modo kernel | Rápido — chamadas internas sem troca de contexto | Um driver com bug pode derrubar o sistema inteiro | Linux tradicional |
| Microkernel | Só o essencial (comunicação entre processos, escalonamento básico) roda em modo kernel; drivers e sistema de arquivos rodam em modo usuário, como processos isolados | Mais estável e seguro — um driver trava sem derrubar o SO | Mais troca de contexto = overhead de performance | Minix, QNX |
| Híbrido | Kernel monolítico na prática, mas organizado em módulos com fronteiras de microkernel (alguns serviços isolados) | Tenta equilibrar desempenho e robustez | Mais complexo de projetar | Windows NT, macOS/iOS (XNU) |
Essa escolha de arquitetura molda como cada sistema operacional que vamos estudar nas próximas páginas foi construído.
A família dos 5 sistemas operacionais que dominam o mercado
Apesar de parecerem produtos totalmente diferentes, os 5 SOs mais usados do mundo vêm de apenas duas linhagens de kernel:
| Sistema | Kernel | Arquitetura | Código-fonte | Onde domina |
|---|---|---|---|---|
| Windows | NT | Híbrido | Fechado (proprietário) | Desktops corporativos, jogos PC |
| Linux | Linux | Monolítico modular | Aberto (GPL) | Servidores, nuvem, supercomputadores, embarcados |
| macOS | XNU (Darwin) | Híbrido (Mach + BSD) | Núcleo aberto, resto fechado | Notebooks/desktops Apple |
| Android | Linux (modificado) | Monolítico modular | Aberto (AOSP) + camada Google fechada | Smartphones (maioria mundial) |
| iOS | XNU (Darwin) | Híbrido (Mach + BSD) | Fechado (proprietário) | iPhones/iPads |
Nas próximas páginas, exploramos cada um em detalhe — começando pelo mais usado em desktops corporativos: Windows.
Próximo: Windows
➡️ Windows →