O que é um sistema operacional?
Um sistema operacional (SO) é o software que gerencia o hardware de um computador e executa todos os outros programas, dividindo entre eles o processador, a memória e o armazenamento e oferecendo arquivos, rede, entrada e saída. Windows, macOS, Linux, Android e iOS são sistemas operacionais.
Atualizado em 24 de setembro de 2026
Aperte uma tecla com um editor de texto aberto. O teclado envia um sinal elétrico, e um driver dentro do sistema operacional o lê. O sistema operacional descobre qual janela está na frente, entrega a tecla para aquele programa, e o editor desenha a letra. O editor nunca fala com o teclado. Salvar o arquivo, tocar um som e carregar uma página web funcionam do mesmo jeito: os programas pedem, e o sistema operacional faz o trabalho com o hardware.
O que um sistema operacional faz
Um sistema operacional tem algumas tarefas, e todo programa no computador depende de todas elas:
- Executar programas (gerenciamento de processos). Um notebook com 8 núcleos de CPU pode ter algumas centenas de programas e serviços em segundo plano rodando. O escalonador do SO dá a cada um turnos curtos em um núcleo, alternando muitas vezes por segundo, então todos parecem rodar ao mesmo tempo.
- Gerenciar a memória. Cada programa recebe o seu próprio espaço de endereçamento privado. Quando um programa lê uma memória que não é dele, o SO o interrompe; em C esse é o famoso segmentation fault.
- Guardar arquivos. O SO transforma um disco, que só guarda blocos numerados de bytes, em pastas e arquivos com nome, um caso clássico de abstração. O formato se chama sistema de arquivos: NTFS no Windows, APFS no macOS, ext4 na maioria dos sistemas Linux.
- Falar com o hardware. Os drivers traduzem entre o SO e cada dispositivo: placa de vídeo, chip de Wi-Fi, impressora, webcam.
- Rede. O SO implementa o TCP/IP, então um programa pode abrir uma conexão com um servidor sem saber nada sobre a placa de rede.
- Segurança e usuários. Contas, senhas e permissões de arquivo decidem quem pode ler ou alterar o quê.
- A interface com o usuário. A área de trabalho, as janelas e a barra de tarefas, ou um shell de texto como o Bash ou o PowerShell.
O kernel e as chamadas de sistema
O núcleo de um sistema operacional é o kernel. Ele roda com controle total do hardware, enquanto os programas comuns rodam em um modo restrito e não podem tocar nos dispositivos diretamente. Quando um programa precisa de algo, ele faz uma chamada de sistema (system call): um pedido ao kernel como "abra este arquivo", "envie estes bytes" ou "inicie um novo processo".
Na maior parte do tempo você não vê as chamadas de sistema, porque a sua linguagem as encapsula. O open() e o print() do Python terminam em chamadas ao kernel. O módulo os permite fazê-las quase diretamente:
O ID do processo e o número de núcleos dependem da máquina; a última linha sempre imprime File size: 23 bytes. os.open retorna um descritor de arquivo, um número pequeno que o kernel usa para acompanhar o arquivo aberto, e os.write envia 23 bytes para ele. Em C os mesmos pedidos ficam quase idênticos, porque essas funções são camadas finas sobre as chamadas de sistema:
int fd = open("note.txt", O_WRONLY | O_CREAT | O_TRUNC, 0644);
write(fd, "saved by a system call\n", 23);
close(fd);
No Linux você pode ver cada chamada de sistema que um programa faz com strace python3 script.py.
Exemplos e tipos de sistemas operacionais
| Sistema operacional | Onde roda | Kernel |
|---|---|---|
| Windows 11 | A maioria dos PCs desktop e notebooks | Windows NT |
| macOS | Computadores Mac da Apple | XNU (Darwin) |
| Linux (Ubuntu, Fedora, Debian e outros) | A maioria dos servidores e das máquinas na nuvem, alguns desktops | Linux |
| Android | A maioria dos celulares no mundo | Linux |
| iOS | iPhone | XNU (Darwin) |
| ChromeOS | Chromebooks | Linux |
Além desses sistemas de uso geral existem os sistemas operacionais de tempo real, como FreeRTOS e Zephyr, que rodam em microcontroladores de eletrodomésticos, sensores e máquinas industriais e garantem uma resposta dentro de um tempo fixo. Muitos dispositivos pequenos rodam sistemas embarcados, feitos para uma única função.
A tabela mostra que um mesmo kernel pode sustentar produtos muito diferentes. O Android e o ChromeOS usam o kernel Linux com o seu próprio software por cima, e o iOS compartilha o kernel com o macOS.
Por que o sistema operacional importa quando você programa
Um programa compilado é gerado para um sistema operacional. Um .exe do Windows não roda nativamente no Linux, mesmo no mesmo computador, porque o formato do arquivo e as chamadas de sistema são diferentes. É por isso que as páginas de download oferecem versões separadas, e é por isso que existem ambientes de execução como a JVM, o Node.js e o CPython: eles são gerados uma vez para cada sistema operacional, para que o seu código não precise ser. Veja ambiente de execução.
Pequenas diferenças escapam mesmo assim. Execute isto e compare com um amigo em outro sistema:
No Linux e no macOS ele imprime:
Path separator: '/'
Line ending: '\n'
projects/notes/todo.txt
No Windows o separador é '\\' (uma única barra invertida), o fim de linha é '\r\n' e o caminho vira projects\notes\todo.txt. Usar os.path.join (ou pathlib) em vez de digitar / à mão é o que mantém um script funcionando nos três.
Equívocos comuns
- "Linux é um sistema operacional." A rigor, Linux é um kernel. Uma distribuição Linux como o Ubuntu acrescenta o shell, ferramentas de sistema, um gerenciador de pacotes e normalmente uma área de trabalho para formar um sistema operacional completo. No dia a dia, as duas coisas são chamadas de Linux.
- "A BIOS faz parte do sistema operacional." O firmware BIOS ou UEFI fica na placa-mãe. Ele verifica o hardware, carrega o sistema operacional do disco, e aí a sua tarefa principal termina.
- "A área de trabalho é o sistema operacional." A área de trabalho é um programa por cima do kernel. Servidores normalmente rodam sem nenhuma área de trabalho, controlados só por um shell de texto.
- "Os apps falam com o hardware." Programas comuns não têm permissão para isso. Cada leitura de arquivo, pacote de rede e pixel na tela passa pelo sistema operacional, e é por isso que um app que trava normalmente não derruba o computador inteiro junto.
Para onde ir agora
O sistema operacional é a camada de baixo; o ambiente de execução fica entre ele e o seu código. A proteção de memória é o que produz um segmentation fault, e a página sobre byte explica a unidade que o SO usa para arquivos e memória. Para controlar um sistema operacional pelo shell de texto, experimente o curso de terminal.
Perguntas frequentes
Um computador funciona sem sistema operacional?
Quais são os 5 sistemas operacionais mais comuns?
Quais são os principais tipos de sistemas operacionais?
Como descubro qual sistema operacional eu tenho?
winver. No Mac, abra o menu Apple e escolha Sobre Este Mac. No Linux, execute cat /etc/os-release em um terminal, e uname -r mostra a versão do kernel.