Pular para o conteúdo principal

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.

Definição Formal

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:

ModoQuem roda aquiPode fazer
Modo Kernel (ring 0)O núcleo do SO e driversAcessa 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
Por que essa separação existe?

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

Veja como o sistema operacional decide quem usa a CPU e quando — compare FCFS, SJF e Round-Robin no mesmo cenário

ℹ️ 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.

P1chega em t=0, precisa de 5
P2chega em t=1, precisa de 3
P3chega em t=2, precisa de 8
P4chega em t=3, precisa de 2
Linha do Tempo (Gráfico de Gantt)
0
2
4
6
8
10
12
14
16
🖥️ CPU Agora
ociosa
⏳ Fila de Prontos
P1
🕓 Ainda Não Chegou
P2P3P4
✅ Concluídos
nenhum ainda
t = 0 de 18
ProcessoChegadaDuraçãoStatusConclusãoTurnaroundEspera
P105Fila de prontos
P213Ainda não chegou
P328Ainda não chegou
P432Ainda não chegou
💡 Compare os algoritmos: rode o mesmo cenário nos três modos. O FCFS é justo na ordem de chegada, mas um processo longo (P3) atrasa todo mundo atrás dele. O SJF minimiza a espera média — mas só é possível na prática se o sistema souber de antemão quanto tempo cada processo vai precisar, o que raramente acontece. O Round-Robin é o modelo mais realista de sistemas de uso geral (Windows, Linux, macOS): ninguém espera "para sempre", ao custo de uma espera média maior por causa das trocas de contexto.

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)?

ArquiteturaComo funcionaVantagemDesvantagemExemplo
MonolíticoKernel inteiro (processos, memória, drivers, sistema de arquivos) roda em um único bloco, em modo kernelRápido — chamadas internas sem troca de contextoUm driver com bug pode derrubar o sistema inteiroLinux tradicional
MicrokernelSó 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 isoladosMais estável e seguro — um driver trava sem derrubar o SOMais troca de contexto = overhead de performanceMinix, QNX
HíbridoKernel monolítico na prática, mas organizado em módulos com fronteiras de microkernel (alguns serviços isolados)Tenta equilibrar desempenho e robustezMais complexo de projetarWindows 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:

SistemaKernelArquiteturaCódigo-fonteOnde domina
WindowsNTHíbridoFechado (proprietário)Desktops corporativos, jogos PC
LinuxLinuxMonolítico modularAberto (GPL)Servidores, nuvem, supercomputadores, embarcados
macOSXNU (Darwin)Híbrido (Mach + BSD)Núcleo aberto, resto fechadoNotebooks/desktops Apple
AndroidLinux (modificado)Monolítico modularAberto (AOSP) + camada Google fechadaSmartphones (maioria mundial)
iOSXNU (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 →