Logotipos de sistemas operacionais com efeito brilhante sobre um fundo escuro de placa de circuito. Estão organizados em três fileiras: na parte superior estão Windows, Apple e Linux; no meio estão Ubuntu, Android e Google Chrome; e na parte inferior estão Red Hat, Debian e dois ícones do FreeBSD.

Apresentação

No artigo anterior, Programas ou Softwares, vimos que, de todos os programas, um é especial: o que comanda o computador e faz todos os outros funcionarem. Esse programa é o sistema operacional.

Dá para pensar nele de dois jeitos, que se completam. Ele é uma ponte entre a pessoa que usa o computador e o próprio computador. E é também um organizador, que decide quais programas vão ser executados, em que hora e quais partes do computador (como a memória e o processador) cada um vai usar.

Lembra da cozinha de Estrutura Básica dos Computadores? A memória RAM é a bancada, e o disco é o armário. O sistema operacional é quem organiza essa cozinha: decide quanto da bancada cada programa ganha e onde cada coisa fica guardada no armário. Mas quem prepara cada prato continua sendo o próprio programa.

A mágica que o sistema operacional faz

O sistema operacional é quem manda em tudo no computador: ele abre e fecha programas, cuida da memória, faz o computador conversar com outros aparelhos, deixa tudo funcionar junto e ainda protege as informações para ninguém mexer sem permissão.

Para isso, ele fica entre as peças do computador (como o disco, a memória e as portas USB) e os aplicativos que usamos no dia a dia:

Diagrama ilustrando o funcionamento do computador com três camadas. A primeira são os aplicativos e tem os itens editor de textos, reprodutor de mídia e editor gráfico. A segunda camada é o sistema operacional que está no centro. A terceira é o hardware que tem os itens disco rígido, memória, portas USB e rede. A imagem mostra que o sistema operacional atua como um coordenador entre os aplicativos e o hardware.
Relação entre o sistema operacional, o hardware do computador e os aplicativos.

Ele também faz parecer que o computador está fazendo várias coisas ao mesmo tempo, como tocar uma música, abrir um programa e baixar um arquivo.

Na prática, cada programa aberto vira um processo, ou seja, um programa em execução. Os processos se revezam no processador, cada um por um tempinho, e a troca é tão rápida que tudo parece acontecer junto.

Além disso, o sistema esconde dos programas os detalhes de cada peça. O programa pede algo como “guarde este arquivo”, e o sistema cuida de conversar com o HD ou o SSD. É a mesma ideia de abstração que apareceu em Programas ou Softwares.

Os principais sistemas operacionais que usamos no dia a dia são:

  • Windows
  • macOS
  • Linux
  • iOS
  • Android
  • ChromeOS

Windows, macOS e Linux são os mais usados em computadores. O iOS e o Android são os dos celulares, e o ChromeOS é feito para computadores leves, focados no uso da internet.

As interfaces de uso

Para usar o computador, a gente precisa de uma forma de conversar com ele. Essa forma se chama interface, e existem três tipos principais.

A interface de terminal, também chamada de linha de comando, é bem técnica. Nela, usamos apenas o teclado para digitar comandos, como se estivéssemos conversando com o computador por mensagens.

Monitor CRT antigo exibindo um terminal monocromático verde de um sistema UNIX, com uma pessoa executando comandos de diretório e abrindo um editor de texto.
Interface de terminal em um sistema UNIX.

A interface textual também utiliza texto, mas é um pouco mais amigável: possui menus, janelas e botões. Ela era comum em computadores mais antigos, especialmente nos anos 80 e começo dos 90, mas hoje em dia sua utilização é bem rara.

Esquema de uma tela em modo texto, com letras brancas sobre fundo azul, como nos computadores antigos. No alto, uma barra de menus com as palavras Arquivo, Editar, Exibir e Ajuda. No meio, uma janela com borda de linha dupla e o título Arquivos, mostrando uma lista de arquivos: CARTA.TXT, NOTAS.TXT, que está destacado, e RELATORIO.TXT. Sobre a janela, uma caixa de aviso vermelha diz Arquivo não encontrado e tem um botão OK, escrito entre colchetes. Na parte de baixo, uma barra lembra as teclas F1 Ajuda e F10 Sair. Todas as palavras usam letras de tamanho fixo, como as de uma máquina de escrever.
Esquema de uma interface textual: menus, janela e botões feitos só de texto.

A interface gráfica, ou GUI (do inglês Graphical User Interface), é a mais comum atualmente. Ela apresenta imagens, ícones, botões e janelas, e dá para controlar tudo com o mouse, com o teclado ou até com o toque na tela. Essa interface é muito mais fácil para quem não deseja digitar comandos.

Área de trabalho do KDE Plasma. Duas janelas estão abertas, uma é o gerenciador de arquivos, mostrando pastas como, Templates, Music e Downloads. A outra janela, menor, é a caixa de diálogo, About KDE, que exibe um texto sobre a comunidade KDE e seu mascote, um dragão verde. A barra de tarefas na parte inferior da tela mostra ícones de aplicativos e a data.
Ambiente gráfico KDE Plasma, uma interface gráfica popular para sistemas Linux.

Um pouco de história

No início, antes de existirem sistemas operacionais, era preciso fazer quase tudo no computador de forma manual. Isso começou a mudar nos anos 1950. Um dos primeiros sistemas operacionais foi criado pela General Motors junto com a North American Aviation para o computador IBM 704, e começou a ser usado em 1956.

Em 1969, Ken Thompson começou a criar o UNIX nos laboratórios da AT&T, chamados de Bell Labs. Logo depois, Dennis Ritchie entrou no projeto e criou para ele uma linguagem de programação nova, chamada C.

Monitor CRT antigo exibindo uma tela de terminal clássica com texto verde em um fundo escuro, mostrando o processo de inicialização e login de um sistema UNIX.

Depois disso, vieram vários outros sistemas operacionais, como o BSD em 1977, o Apple DOS em 1978, o Apple SOS em 1980 e o MS-DOS em 1981.

O MS-DOS, por exemplo, era o sistema usado nos computadores da IBM, que o vendia com o nome de PC DOS. A primeira versão, de 1981, só funcionava com disquetes.

Em 1983, a versão 2.0 chegou junto com o computador IBM PC XT e passou a guardar arquivos em discos rígidos de 10 MB, além de organizar esses arquivos em pastas dentro de pastas, como uma árvore com vários galhos.

Com o passar do tempo, ele ganhou um sistema de arquivos (o jeito de organizar os arquivos no disco) chamado FAT16 (na versão 3.0, de 1984) e funções para ligar vários computadores em rede (na versão 3.1, de 1985). O sistema de arquivos FAT também passou a ser aceito pelo Windows.

Monitor CRT antigo exibindo a interface de linha de comando clássica do sistema operacional MS-DOS, listando os arquivos básicos do sistema.

Outro sistema famoso foi o MINIX, criado por Andrew S. Tanenbaum. Ele serviu de inspiração para Linus Torvalds criar o Linux em 1991.

O Linux é diferente porque é um software livre, como vimos em Programas ou Softwares: qualquer pessoa pode estudar o código dele, mudar o que quiser e distribuir a versão modificada. Por isso, existem várias versões do Linux, feitas para usos diferentes. E a maioria delas pode ser usada sem pagar nada.

Monitor CRT exibindo a interface baseada em texto do sistema operacional MINIX 3, mostrando um sistema de janelas rudimentar com comandos de terminal sendo executados.

O Windows surgiu a partir do MS-DOS e ficou muito conhecido entre as pessoas comuns em 1995, quando lançaram o Windows 95. Foi aí que apareceram o Menu Iniciar e a barra de tarefas, coisas que ainda usamos hoje.

Captura de tela da área de trabalho do Windows 95 clássico, com o Menu Iniciar aberto e janelas dos programas Meu Computador, WordPad, Paint e Calculadora.

Em 2001 veio o Windows XP, que fez muito sucesso e ajudou a Microsoft a ficar ainda mais famosa entre quem usava computador em casa.

Monitor CRT antigo exibindo a clássica tela preta de carregamento do Windows XP, com o logotipo colorido e a barra de progresso azul.
Captura de tela da área de trabalho do clássico Windows XP, mostrando o icônico papel de parede das colinas verdes, o Menu Iniciar aberto e a pasta Meus Documentos.

Ainda em 2001, além do Windows XP, a Apple lançou o Mac OS X 10.0, um sistema que misturava partes do Mac antigo com ideias do Unix. Isso fez com que o macOS (nome que ele ganhou depois) ficasse mais estável, conseguisse rodar (executar) vários programas ao mesmo tempo sem travar e ainda tivesse uma tela mais bonita e moderna.

Hoje, a versão mais recente é o macOS 27 Golden Gate, lançado em setembro de 2026. A lista oficial da Apple de computadores compatíveis com ele só tem Macs com chip feito pela própria Apple.

Captura de tela da interface clássica do Mac OS X tema Aqua, mostrando o Menu Apple aberto, uma janela do Finder e o painel de Preferências do Sistema.

Depois do Windows XP, a Microsoft lançou outros sistemas. O Windows Vista, de 2007, trouxe mudanças na segurança e nos programas que fazem o computador conversar com impressoras e outros aparelhos, mas muita gente achou ele pesado e difícil de usar.

Em 2009 veio o Windows 7, que melhorou o que deu errado antes e ficou muito popular.

Mais tarde, apareceram o Windows 8 e 8.1 (2012 e 2013), que mudaram bastante a tela do computador para ficar melhor em aparelhos com toque, como tablets, mas nem todo mundo gostou.

O Windows 10, lançado em 2015, tentou juntar o melhor dos outros e recebeu atualizações até 14 de outubro de 2025, quando o suporte da Microsoft acabou.

Depois dessa data, quem continua com ele precisa entrar em um programa da Microsoft chamado ESU (do inglês Extended Security Updates, ou seja, atualizações de segurança estendidas) para receber correções de segurança até 12 de outubro de 2027.

Por fim, o Windows 11 chegou em 2021, com um visual novo, ficou mais seguro e funciona melhor em computadores mais modernos. Ele recebe uma versão nova por ano, e a mais recente, chamada 26H2, saiu em 29 de setembro de 2026.

Área de trabalho do Windows 11 com o menu Iniciar e a barra de tarefas centralizados. O papel de parede abstrato tem tons de azul claro.

Nesse meio tempo, o Linux virou uma base importante para servidores, supercomputadores e vários aparelhos diferentes. Algumas versões, como o Debian (de 1993), o Red Hat Enterprise Linux (desde 2002) e o Ubuntu (de 2004), tornaram tudo mais fácil para instalar, atualizar e arrumar o sistema.

Captura de tela da área de trabalho do Red Hat Enterprise Linux com várias janelas abertas, incluindo um terminal atualizando o sistema, um navegador web, um gerenciador de arquivos e um editor de código.

Para quem usa Linux no dia a dia, ele se tornou uma opção prática, com telas e menus fáceis de mexer (como o GNOME e o KDE) e com gerenciadores de pacotes: programas que baixam, instalam e atualizam outros programas, como uma loja de aplicativos. Os mais conhecidos são o APT, o DNF e o pacman.

Notebook sobre uma mesa de madeira. A tela exibe uma interface gráfica moderna, característica do ambiente GNOME no Linux, com um papel de parede de ondas abstratas em tons de verde e roxo. Na parte inferior central, há uma dock flutuante com os ícones do navegador Firefox, um gerenciador de arquivos, o Terminal e o editor de código Visual Studio Code.
Sistema operacional Linux com interface gráfica GNOME.
Esquema com três quadros lado a lado, um para cada gerenciador de pacotes. No primeiro, APT, usado no Debian e no Ubuntu: o comando apt update atualiza a lista de pacotes e o comando apt install nome-do-pacote instala um programa. No segundo, DNF, usado no Fedora: o comando dnf upgrade atualiza os programas e o comando dnf install nome-do-pacote instala um programa. No terceiro, pacman, usado no Arch Linux: o comando pacman -Syu atualiza a lista e todos os programas e o comando pacman -S nome-do-pacote instala um programa.
Comparação entre os gerenciadores de pacotes APT, DNF e pacman.

Lá por 2007 e 2008, duas novidades mudaram tudo: o iOS, que veio com o iPhone, e o Android. O iOS é o sistema fechado que só funciona nos aparelhos da Apple, enquanto o Android, que é baseado no Linux, pode ser usado por várias marcas e é mais aberto.

Esses sistemas trouxeram o computador para o nosso bolso, ou seja, deixaram os celulares muito mais inteligentes.

Depois apareceram também o iPadOS (para os iPads, separado dos iPhones) e o ChromeOS (que funciona em computadores bem leves e foca em usar a internet).

Desktop do ChromeOS com o menu de aplicativos centralizado. O fundo é um papel de parede abstrato em tons de azul.
Área de trabalho do ChromeOS.

Atualmente, quase todo mundo tem mais de um sistema operacional por perto: no celular, no computador, na TV, no roteador, no relógio e até na máquina de lavar.

As partes do sistema operacional

Um sistema operacional tem uma parte que a gente vê e usa no dia a dia, e outra que fica escondida trabalhando por trás para manter o computador funcionando.

Quando pensa nas diferenças entre Windows, macOS e Linux, a maioria das pessoas lembra da tela: os ícones, as janelas e o quanto cada um é fácil de usar, com ou sem recursos de acessibilidade.

Mas, além dessa parte, os sistemas operacionais também têm várias funções nos bastidores que fazem tudo acontecer.

O núcleo do sistema: kernel

O kernel é como o “coração” (parte central) do sistema operacional. Ele cuida de tudo dentro do computador: faz o processador funcionar, controla a memória e garante que aparelhos como teclado, mouse e impressora estejam ligados e funcionando. Além disso, toma conta dos lugares onde os arquivos ficam guardados.

Diagrama com o título Kernel: o núcleo do sistema. No centro, um círculo escrito Kernel. À esquerda, uma caixa Programas com uma seta até o kernel, escrita chamada de sistema. Em volta do kernel, ligadas a ele por linhas, estão quatro caixas: em cima, Processador (CPU); à direita, Memória RAM; embaixo à direita, Dispositivos, como teclado, mouse e impressora; embaixo à esquerda, Armazenamento, onde os arquivos ficam guardados.
Kernel do sistema operacional.

Por exemplo: quando você vai assistir a um vídeo, o programa que está aberto pede ao sistema do computador algo como “preciso desse vídeo aqui”. Esse pedido é chamado de chamada de sistema (ou syscall).

O sistema então procura o vídeo no computador, confere se você pode mesmo ver o arquivo, e faz uma ligação entre o programa e o vídeo, tudo isso sem que você perceba.

Fluxograma de cima para baixo. Primeiro, o programa aberto faz uma chamada de sistema dizendo: preciso desse vídeo. A seta leva ao sistema operacional, que procura o arquivo e confere a permissão. Aí o caminho se divide em dois. À esquerda, se o arquivo foi encontrado e a permissão foi concedida, o sistema liga o programa ao vídeo, e o vídeo toca no player. À direita, se o arquivo não foi encontrado ou a permissão foi negada, o caminho termina em erro de acesso, e o vídeo não toca.
Fluxo de acesso a um vídeo.

Gerenciamento de processos: controlando os programas abertos

Toda vez que você abre um programa no computador, como um navegador, uma planilha ou um jogo, o sistema cria um processo para esse programa. Esse processo é como uma “caixinha” com tudo que o programa precisa: espaço na memória, tempo do processador e maneiras de conversar com outros programas.

Ilustração de um monitor de computador exibindo um diagrama sobre o conceito de Processo. O diagrama mostra três recursos principais que um processo utiliza, memória, representada por um chip de RAM, tempo do processador, representado por um chip de CPU e outros programas, representado por um ícone de setas de comunicação. A palavra Processo é o título central na parte superior da tela.
Conceito de processo em um sistema operacional.

O sistema operacional escolhe, de forma organizada, qual programa vai usar o processador em cada momento. Por exemplo, existe um jeito chamado “round robin” (ou “rotação circular”), em que cada programa tem sua vez de rodar (ser executado) por um tempinho, um depois do outro.

Diagrama em duas partes. Em cima, o processador fica no centro e três programas ficam em volta dele, ligados por setas que formam um círculo: editor, depois navegador, depois jogo e de volta ao editor. Embaixo, uma linha do tempo do processador dividida em fatias do mesmo tamanho, que se repetem na ordem editor, navegador, jogo, editor, navegador, jogo. Cada programa usa o processador por um tempinho e passa a vez para o próximo.
Alocação de tempo do processador usando o método de rotação circular (round robin).

Tem também outro método, chamado “fila de prioridades”, onde programas que precisam de respostas rápidas, como um editor de texto, acabam passando na frente e rodando antes dos outros.

Diagrama de uma fila que anda da esquerda para a direita até o processador. Na frente da fila, mais perto do processador, está o editor de texto, marcado com prioridade alta. Atrás dele vêm o navegador e o jogo, marcados com prioridade normal. Uma seta sai do editor e entra no processador: o editor passa na frente e roda antes dos outros.
Alocação de tempo do processador usando o método de fila de prioridades.

Cada caixinha também fica fechada: um processo não pode mexer no espaço do outro. Isso se chama isolamento, e impede que um programa com defeito estrague os dados de outro.

Quando dois processos precisam trocar informações, o sistema oferece canais próprios, chamados de comunicação entre processos (IPC, do inglês Inter-Process Communication). Alguns exemplos são as filas de mensagens, os tubos (canais de mão única, por onde um processo manda dados para outro) e os sinais (avisos curtos, como “termine”).

Diagrama que ilustra o conceito de Isolamento e Comunicação entre Processos IPC. A parte superior mostra dois blocos, Processo A e Processo B, separados por uma linha pontilhada, indicando isolamento. A parte inferior da imagem descreve a Comunicação entre Processos, IPC, mostrando uma seta que conecta um processo ao Processo B, com ícones e rótulos para filas, tubos e sinais como métodos para essa comunicação.
Isolamento e comunicação entre processos (IPC) em um sistema operacional.

Gerenciamento de memória: onde os dados vivem temporariamente

Lembra da bancada de Estrutura Básica dos Computadores? A memória RAM é onde o computador coloca tudo o que está usando no momento, e o sistema operacional decide como dividir esse espaço entre os programas abertos. Para isso, ele usa algumas técnicas:

  • Paginação: divide a memória em pedaços do mesmo tamanho, chamados de páginas, para facilitar a organização.
  • Segmentação: separa a memória de cada programa por uso, em partes de tamanhos diferentes: uma para o código (as instruções), uma para o heap e uma para a pilha. Os dois aparecem mais adiante.
  • Swap: quando a bancada fica cheia ou quase cheia, o sistema leva para um cantinho do armário, no disco (HD ou SSD), os dados que não são usados há algum tempo. Assim, sobra RAM para o que está em uso.
Diagrama em três partes, de cima para baixo. Paginação: uma faixa que representa a memória, dividida em oito pedaços do mesmo tamanho, as páginas. Segmentação: outra faixa dividida em três pedaços de tamanhos diferentes, um para o código, um para o heap e um para a pilha. Swap: à esquerda, a memória RAM; à direita, o disco; entre os dois, uma seta de ida e volta mostra que parte das informações sai da RAM para o disco e depois volta quando é preciso.
Técnicas de gerenciamento de memória: paginação, segmentação e swap.

O swap evita que o computador trave com muitos programas abertos. Mas, como vimos em Estrutura, o disco é bem mais lento que a RAM, e o computador fica mais devagar quando usa o swap toda hora.

Diagrama com o título Swap: a RAM pede ajuda ao disco. À esquerda, três caixas: Programa 1, Programa 2 e Programa 3, com uma seta para a Memória RAM, desenhada como uma coluna de quatro fatias. A última fatia é listrada e representa os dados menos usados. Dela sai uma seta para baixo, escrita vão para o disco, até uma caixa Disco (HD ou SSD), com o arquivo de swap. Ao lado, o texto: assim, sobra RAM para o que você está usando agora.
Conceito de swap de memória em um sistema operacional.

Como o sistema operacional organiza a memória

Na memória, cada byte tem um endereço, como o número de uma casa. Antigamente, os programas podiam usar qualquer parte da memória, desde que soubessem o endereço exato. Muitas vezes, alguns pedaços já estavam reservados para o próprio sistema operacional ou para algum aparelho ligado ao computador.

Hoje em dia, é diferente: cada programa recebe um “espaço” só dele, chamado de espaço de endereços virtuais. No Windows, por exemplo, um programa de 32 bits costuma enxergar até 2 gigabytes, e um programa de 64 bits pode enxergar até 128 terabytes.

Diagrama em três colunas. À esquerda, o espaço de endereços virtuais do Programa A, com quatro pedaços em ordem: página 0, página 1, página 2 e página 3. À direita, o espaço do Programa B, que também começa na página 0 e vai até a página 2. No meio, a memória física (a memória RAM de verdade), dividida em pedaços. Setas ligam cada página dos programas a um pedaço da memória física, em lugares espalhados e diferentes para cada programa. Embaixo, uma frase explica: o sistema operacional decide onde cada pedaço fica de verdade.
Cada programa tem seu próprio espaço de endereços virtuais, e o sistema operacional decide onde cada pedaço fica na memória física.

Esses endereços são como endereços de mentira: quem decide onde cada coisa fica na memória de verdade é o sistema, e o programa nem precisa saber. Assim, vários programas funcionam juntos sem se atrapalhar, como se cada um tivesse a sua própria memória, mesmo dividindo a mesma RAM.

Para ir além: quando a memória acaba de vez

No Linux, quando a memória acaba de vez e o kernel não consegue liberar mais nada, entra em ação o OOM Killer (que significa “eliminador por falta de memória”), que fecha um processo para salvar o resto do sistema.

Nos celulares é um pouco diferente. No Android, um programa chamado lmkd (do inglês low memory killer daemon, ou seja, um programa que elimina processos quando falta memória) fecha os processos menos importantes quando a memória fica apertada.

Já o iOS não guarda no disco os dados que os aplicativos alteraram: quando a memória fica baixa, ele pede aos aplicativos que liberem espaço e fecha os que não liberam.

Pilha e heap: onde os programas guardam informações

Quando um programa é aberto, o sistema separa dois lugares principais para guardar dados (informações): a pilha (stack) e o heap.

  • Pilha (stack): fica com informações rápidas, como variáveis e endereços temporários. Funciona como uma pilha de pratos: o último colocado é o primeiro a sair. Se o programa exagera e usa espaço demais aqui, estoura a pilha (stack overflow) e pode causar problemas.
  • Heap: é um espaço mais flexível, usado para guardar coisas que podem durar mais ou menos tempo (como listas, arquivos e outros objetos). O programa pede espaço no heap quando precisa e tem que devolver depois para não desperdiçar memória (memory leak). Esse espaço serve, por exemplo, para agrupar várias informações que o programa vai usar, como uma lista de contatos ou fotos.
Diagrama com a caixa Programa no alto e duas áreas embaixo. À esquerda, a pilha (stack): blocos empilhados como pratos, com variáveis e endereços temporários; o último colocado é o primeiro a sair. À direita, o heap: blocos de tamanhos diferentes, como uma lista de contatos e fotos. Duas setas ligam o programa ao heap: uma diz pede espaço (malloc) e a outra diz devolve o espaço quando não precisa mais (free).
Gerenciamento de memória pelo sistema operacional: pilha e heap.

malloc e free: pedindo e devolvendo memória

Em linguagens de programação como C, existe a função malloc para pedir um pedaço de memória, e free para devolver esse espaço quando não precisa mais.

Se o programa esquecer de devolver, a memória fica ocupada à toa. Isso se chama vazamento de memória: a memória usada pelo programa cresce sem controle e fica indisponível para os outros, o que pode causar problemas.

Fluxograma que explica a alocação de memória dinâmica. O processo começa com a chamada malloc, seguida por pedir um pedaço de memória. Uma vez alocada na MEMÓRIA, a memória é devolvida pela chamada free. Uma nota lateral destaca que se a memória não for devolvida, ela fica ocupada à toa, um problema conhecido como vazamento de memória.
Alocação de memória dinâmica: malloc e free.
Para ir além: arenas e compactação

Quando programas executam várias tarefas ao mesmo tempo, o computador pode ficar lento se todas (as tarefas) tentarem pegar memória juntas. Por isso, as bibliotecas que reservam memória para os programas, como o malloc, dividem a memória em arenas (reservas separadas). Assim, cada tarefa pode mexer na sua parte sem atrapalhar as outras.

Mesmo com toda essa organização, a memória pode ficar cheia de “espaços vazios” perdidos no meio dos dados que estão sendo usados. Os sistemas mais modernos tentam juntar esses espaços ou reorganizar tudo para evitar desperdício.

Esse processo é chamado de compactação de memória (memory compaction). No Linux, quem compacta a memória física é o próprio kernel: às vezes aos poucos, em segundo plano, e às vezes na hora em que um programa pede memória.

Coleta de lixo (garbage collection): limpando a memória

Em muitas linguagens de programação mais modernas, ninguém precisa chamar o free: a própria linguagem libera a memória do heap. Quem faz isso é o coletor de lixo, que verifica quais dados ainda estão sendo usados e apaga os que não servem mais. É a mesma ideia da faxina do SSD, vista em Estrutura, só que na memória.

Para ir além: os tipos de coletor de lixo

Existem vários tipos de coletor de lixo, cada um com vantagens e desvantagens. Alguns exemplos:

  • Contagem de referências: cada coisa que ocupa espaço na memória (como objetos e dados) sabe quantas vezes está sendo usada. Quando ninguém mais precisa dela, ela pode ser apagada para liberar espaço. Mas às vezes, algumas coisas ficam presas umas nas outras, como em círculos de referências, e isso pode causar problemas. Para evitar isso, existem as chamadas referências fracas, que não entram nessa contagem e ajudam a resolver esses casos.
  • Mark-and-sweep (marcação e varredura): esse tipo de coletor de lixo primeiro marca os objetos que ainda estão sendo usados e depois apaga todos os outros. Às vezes, ele também junta os dados para não deixar espaços vazios na memória. Isso acontece, por exemplo, em Java.
  • Geracional: os programas verificam se objetos recém-criados ainda estão sendo usados com mais frequência, porque geralmente eles são apagados logo de cara. Aqueles que continuam sendo usados por mais tempo passam a ser checados menos vezes. Linguagens como Java e Python usam esse jeito de organizar a limpeza da memória.
  • Coletor de lixo em partes: para não travar o computador por muito tempo, alguns programas que limpam a memória fazem isso aos poucos, enquanto o resto do sistema continua funcionando normalmente. Isso acontece, por exemplo, nos coletores de memória das linguagens Java, Erlang e Ruby.

A memória hoje

Hoje em dia, os computadores têm tanta memória que é difícil ficar sem espaço, mas se ela for usada de qualquer jeito, pode acabar sendo desperdiçada. Em servidores que ficam ligados muito tempo, pequenos problemas podem travar tudo; já nos celulares, se algum aplicativo usa memória demais, o sistema simplesmente o fecha.

Por isso, o sistema operacional organiza a memória com tanto cuidado: para que os programas rodem bem e para que um aplicativo que exagera não atrapalhe os outros.

Até aqui: o sistema operacional reveza o processador entre os processos e dá a cada um uma caixinha fechada, com memória só dela e endereços de mentira. Quando a bancada enche, ele usa o swap. Dentro de cada programa, a memória se divide em pilha e heap, e o coletor de lixo, quando existe, libera o que não serve mais.

Entrada e saída: como o computador conversa com o mundo

Tudo o que você faz no computador, como digitar ou ver algo na tela, passa por um sistema chamado de entrada e saída, ou I/O. Nesse processo, existem os chamados drivers, que são programas pequenos que ajudam o computador a se comunicar com cada peça diferente de hardware.

Por exemplo, quando você aperta uma tecla, o teclado envia um sinal ao computador. O driver do teclado entende esse sinal e avisa ao sistema qual tecla foi apertada. Isso acontece por meio de interrupções, que são como avisos que pedem ao processador para dar atenção a algo importante naquele momento.

Fluxograma com cinco passos ligados por setas, de cima para baixo. 1: você aperta a tecla A. 2: o teclado envia um sinal ao computador. 3: interrupção, um aviso que pede ao processador para dar atenção ao teclado naquele momento. 4: o driver do teclado entende o sinal e avisa ao sistema qual tecla foi apertada. 5: a letra A aparece na tela.
Processo de uma interrupção de hardware para entrada de dados via teclado.

Outro exemplo: quando um programa pede um arquivo de um pen drive, o sistema usa o controlador USB para começar a leitura, espera um sinal avisando que os dados chegaram e só então entrega o arquivo ao programa. Quem usa o computador não precisa saber nada disso.

Para ir além: como o sistema conversa com as peças

Para falar com as peças, o sistema operacional usa recursos próprios de cada tipo de processador:

  • Modos de funcionamento: o processador tem um modo restrito, para os programas comuns, e o modo do kernel, que pode tudo. No modo restrito, um programa não consegue, por exemplo, pedir sozinho uma leitura ao disco: ele precisa pedir ao sistema, com uma chamada de sistema.
  • Interrupções: os avisos que vimos acima, como quando uma tecla é apertada ou um aparelho é conectado.
  • Registradores de controle: espacinhos dentro do processador, como o registrador de Programas ou Softwares, usados para ajustar o funcionamento dele.
  • Canais de conexão: os caminhos padronizados que ligam os aparelhos ao computador, como PCIe, USB e SATA.

Explorador de arquivos: a parte visual do sistema de arquivos

Gerenciadores de arquivos, também chamados de “exploradores”, são programas que ajudam a pessoa a ver, procurar, copiar, mover, renomear e compartilhar arquivos e pastas. Eles mostram os arquivos em lista ou em ícones, buscam pelo nome ou pelo conteúdo e dão acesso a pen drives, discos externos e pastas de outros computadores da rede.

Alguns também mostram os arquivos da nuvem, como os do Google Drive ou do OneDrive, e avisam quando um arquivo está sincronizado, ou seja, igual no computador e na nuvem.

Cada sistema operacional tem o seu explorador, e o Linux tem vários:

  • Windows:
    • Explorador de Arquivos (Explorer)
  • macOS:
    • Finder
  • Linux:
    • Nautilus (GNOME Files)
    • Dolphin (KDE)
    • Thunar (XFCE)
    • Caja (MATE)
    • Nemo (Cinnamon)
  • Android:
    • Google Files
    • Gerenciador de Arquivos (varia por fabricante)
  • iOS:
    • Arquivos (Files)

No Linux, o nome entre parênteses é o ambiente gráfico que acompanha cada explorador. GNOME, KDE, XFCE, MATE e Cinnamon aparecem no próximo artigo, Windows, Linux e macOS.

macOS: Finder

O Finder é o explorador do Mac usado para mexer nos arquivos. Nele, dá para mudar a forma como as pastas e documentos aparecem na tela (em Ícones, Lista, Colunas ou Galeria), e você pode deixar cada pasta do jeito que preferir, mudando o tamanho dos ícones, as colunas e a ordem dos arquivos.

Usando o Quick Look, é possível ver rapidinho o que tem em um arquivo só apertando a tecla Espaço, e até fazer pequenas marcações ou anotações sem abrir o programa próprio.

Captura de tela da área de trabalho do macOS no modo escuro, com uma janela do Finder centralizada exibindo as pastas do sistema e o Dock de aplicativos na parte inferior.
Finder, o explorador de arquivos do macOS.

No Finder, também dá para colocar tags (etiquetas coloridas) nos arquivos, o que facilita achar tudo depois, inclusive nas coisas que estão guardadas na nuvem pelo iCloud Drive. Isso ajuda a manter os arquivos sincronizados em todos os aparelhos Apple.

Windows: Explorador de Arquivos (Explorer)

O Explorador de Arquivos é o programa que você usa para ver e organizar seus arquivos no Windows (basta apertar Windows + E).

No Windows 11, ele ganhou abas (como no navegador), um visual mais moderno e, nas versões mais novas, passou a compactar e descompactar arquivos 7z e TAR sem precisar de programas extras.

Captura de tela da área de trabalho do Windows 11 no modo escuro, exibindo uma janela do Explorador de Arquivos aberta na seção Este Computador.
Explorador de Arquivos (Explorer) no Windows 11.

O OneDrive aparece junto no Explorador, com uma coluna de Status que indica se o arquivo está só na nuvem ou se já foi baixado para o computador.

Sistema de arquivos: onde os dados ficam guardados

Lembra do armário de Estrutura? O sistema de arquivos é a organização desse armário. Ele transforma os bytes gravados no disco em arquivos e pastas com nome e guarda informações sobre cada um, como quem pode abrir, as datas e o lugar exato onde cada pedaço está gravado.

É como um caderninho que anota onde está cada coisa. Por isso, dá para dar a um arquivo um nome como “tarefa.docx” e achá-lo rapidinho, sem saber em que parte do HD ou do SSD cada pedacinho dele ficou.

Um bom sistema de arquivos também cuida para que tudo continue funcionando bem, mesmo se faltar luz. E pode trazer recursos como proteção dos dados, limites de espaço, cópias de segurança e integração com serviços de nuvem.

Diagrama que ilustra a estrutura de um sistema de arquivos. No topo, a etiqueta FILE SYSTEM se conecta a ícones de um arquivo e uma pasta. Esses ícones, por sua vez, se conectam a uma camada intermediária que representa um banco de arquivos, com divisões para Proteção e Backup. Na parte inferior, tudo se conecta a um ícone de disco rígido, rotulado como HDD / SSD, representando o armazenamento físico dos dados.
Estrutura de um sistema de arquivos, mostrando como arquivos e pastas se conectam ao armazenamento físico.

Cada sistema operacional usa o seu: o APFS nos Macs, o NTFS no Windows e o ext4, o mais comum no Linux. Para levar arquivos em um pen drive de um sistema para outro, muita gente usa o exFAT, que funciona bem no Mac, no Windows e no Linux.

Até aqui: o explorador de arquivos é a parte que a gente vê e usa. Por trás dele, o sistema de arquivos organiza o armário, ou seja, o disco, e anota onde está cada pedaço de cada arquivo.

Para ir além: por dentro do APFS, do NTFS e do ext4

macOS

O APFS (Apple File System) é o sistema de arquivos que vem nos computadores Mac desde o macOS 10.13. Ele foi feito especialmente para funcionar bem com SSDs e outros tipos de memória rápida.

Com ele, é possível usar o mesmo espaço no computador para vários volumes (partes separadas do disco) de arquivos, fazer cópias rápidas de pastas e arquivos sem gastar espaço extra, criar pontos de restauração para voltar atrás se algo der errado e ainda proteger tudo com criptografia automática. Assim, os dados ficam mais seguros.

Desde o macOS 11 (Big Sur), o Time Machine passou a guardar cópias de segurança usando APFS, o novo sistema de arquivos da Apple. Agora, o sistema consegue iniciar o computador a partir de uma “foto” protegida do sistema, o que ajuda a manter o sistema funcionando mesmo depois de atualizações.

Diagrama com a caixa APFS, o sistema de arquivos dos Macs desde o macOS 10.13, no alto. Dela saem linhas para quatro recursos: vários volumes dividindo o mesmo espaço; clones, cópias rápidas que não gastam espaço extra; snapshots, pontos de restauração para voltar atrás; e criptografia. Embaixo, uma faixa diz que o APFS foi feito para funcionar bem com SSDs.
Funcionalidades do APFS, o sistema de arquivos da Apple.
  • Sensibilidade a maiúsculas e minúsculas: normalmente, o APFS não faz diferença entre letras maiúsculas e minúsculas no nome dos arquivos, mas há como escolher a opção onde isso importa. Essa escolha é útil para quem precisa que “Arquivo.txt” e “arquivo.txt” sejam considerados coisas diferentes, como em alguns trabalhos de programação.
  • Compatibilidade: o Mac consegue abrir arquivos de discos formatados em NTFS, mas não deixa salvar nada neles sem programas extras.
Windows

NTFS é o tipo de sistema de arquivos que o Windows usa normalmente. Ele traz recursos como permissões de acesso para proteger arquivos, registro de alterações para evitar perdas, e também salva informações extras sobre os arquivos.

O NTFS tem ainda um sistema que permite fazer cópias de segurança de arquivos e restaurar versões antigas. Além disso, dá para criptografar arquivos e pastas (com um recurso chamado EFS), para que só quem tem a chave certa consiga abrir o conteúdo. Não é uma senha para cada arquivo, e esse recurso não existe na edição Home do Windows.

Alternate Data Streams (ou ADS) permitem colocar informações extras “escondidas” dentro de um arquivo, o que pode ser útil para alguns programas, mas também pode ter riscos de segurança.

Diagrama com a caixa NTFS, o sistema de arquivos do Windows, no alto. Dela saem linhas para quatro recursos: permissões, com listas de quem pode fazer o quê; registro de alterações, para evitar perdas; criptografia de arquivos e pastas, chamada EFS; e Alternate Data Streams (ADS), informações extras escondidas dentro de um arquivo.
Funcionalidades do NTFS, o sistema de arquivos do Windows.
  • Tamanho máximo: usando o padrão (blocos de 4 KB), o NTFS comporta arquivos e volumes de até 16 TB. Se aumentar o tamanho dos blocos, o volume pode chegar a 8 PB (petabytes; cada petabyte equivale a cerca de mil terabytes) no Windows 10 a partir da versão 1709 e no Windows 11. Nas versões mais antigas, o limite era 256 TB.
  • Sensibilidade a letras maiúsculas e minúsculas: o NTFS guarda se o nome tem letra grande ou pequena, mas normalmente não faz distinção na hora de acessar. Porém, é possível escolher pastas que diferenciem nomes com maiúsculas e minúsculas (útil para quem usa programas de Linux no Windows, por exemplo).
Linux

O ext4 é o sistema de arquivos mais comum hoje. Ele é seguro, rápido, suporta arquivos bem grandes (teoricamente até 16 terabytes) e funciona bem em praticamente qualquer computador com Linux.

Desde a versão 5.10 do Linux, o sistema de arquivos ext4 ganhou um recurso opcional chamado fast commits: um espaço de registro que salva só as mudanças mais importantes feitas entre salvamentos.

Ele deixa mais rápidas as operações que confirmam a gravação de um arquivo e as que mexem com muitas informações de controle (os metadados). Esse recurso não vem ligado: precisa ser ativado na hora de criar (formatar) o sistema de arquivos.

O ext4 parou de guardar cada bloco separadamente e passou a usar extents (faixas de blocos juntos). Isso facilita o trabalho com arquivos grandes e evita que eles fiquem espalhados no disco. Por exemplo, um extent pode guardar até 128 MB de dados seguidos.

Com alocação atrasada e alocador de vários blocos, o ext4 consegue agrupar blocos para guardar tudo junto. Assim, ocupa menos espaço e deixa tudo mais organizado.

Diagrama com a caixa ext4, o sistema de arquivos mais comum no Linux, no alto. Dela saem linhas para cinco recursos: fast commits, opcional, desde o Linux 5.10; extents, faixas de blocos seguidos; alocação atrasada; alocador de vários blocos; e verificação das informações de controle (metadados).
Funcionalidades do ext4, o sistema de arquivos do Linux.

O ext4 também confere a integridade das informações de controle do sistema de arquivos (os metadados, como as pastas e a lista de onde cada arquivo está), para detectar problemas e deixar a checagem do sistema mais rápida. Tem recursos para criar sistemas de arquivos grandes rapidamente e proteção contra montagem errada em vários servidores.

Para melhorar a leitura direta, o ext4 tem a opção dioread_nolock, que ajuda quando vários acessos acontecem ao mesmo tempo. O ext4 permite também que você marque certas pastas para que elas não levem em conta letras maiúsculas e minúsculas (como no Windows). Para isso, ative o recurso casefold e escolha as pastas desejadas.

Segurança e estabilidade: protegendo tudo

Quando falamos de segurança digital, muita gente pensa logo em antivírus ou programas para bloquear invasores. Mas, na verdade, o sistema operacional do computador é o primeiro a proteger tudo.

É ele que define quem pode acessar cada parte do computador, controla o que os programas podem fazer, organiza onde os arquivos ficam guardados e registra o que acontece na máquina para consultas futuras, se for preciso.

Pense em um condomínio. A portaria confere quem está entrando, cada morador tem a chave só do seu apartamento, a portaria anota quem entrou e saiu, o que é valioso fica em um cofre, e as paredes separam um apartamento do outro. O sistema operacional faz algo parecido, e nenhuma dessas proteções é perfeita sozinha.

A seguir, veja como os sistemas Linux, Windows e macOS cuidam de cinco pontos: permissões, autenticação, auditoria, criptografia e isolamento.

1. Permissões: quem pode fazer o quê

Todo sistema precisa saber quem pode abrir, mudar ou rodar cada arquivo e programa. São as chaves do condomínio: regras chamadas de permissões dizem quem pode fazer cada coisa.

  • No Linux, cada arquivo e pasta tem regras para o dono, para o grupo e para as outras pessoas. Cada regra diz se dá para ler, mexer ou rodar o arquivo.
  • No Windows, cada arquivo tem uma lista de quem pode fazer o quê, como abrir, mudar ou apagar. As regras de uma pasta podem valer também para o que está dentro dela.
  • No macOS, as permissões funcionam quase igual às do Linux e podem ser mudadas tanto pela tela quanto digitando comandos.
Diagrama com o título Permissões: quem pode fazer o quê, e três colunas. Linux: três linhas de regras, para o dono, para o grupo e para outras pessoas, e cada uma diz se pode ler, mexer ou rodar o arquivo. Windows: uma lista que mostra, para cada pessoa ou grupo, o que pode fazer, como abrir, mudar ou apagar; uma seta indica que as regras da pasta valem também para os arquivos dentro dela. macOS: as mesmas três regras do Linux, para dono, grupo e outras pessoas, que podem ser mudadas pela tela ou por comandos.
Comparação do gerenciamento de permissões de arquivo em Linux, Windows e macOS.

2. Autenticação: confirmando quem está usando

Autenticação é conferir se a pessoa é mesmo quem diz ser, como faz a portaria. Além da senha, os três sistemas aceitam outras formas de entrar, como a impressão digital.

  • No Linux, um sistema chamado PAM deixa escolher a forma de entrar: senha, cartão, chave ou impressão digital.
  • No Windows, a tela de login confere quem está entrando, e o Windows Hello deixa usar o rosto ou a digital.
  • No macOS, as senhas e chaves ficam guardadas em um lugar chamado Keychain, e o Touch ID (o leitor de impressão digital dos Macs) libera o acesso com a digital.
Diagrama com o título Autenticação: confirmando quem está usando, e três colunas. Linux: o PAM, que deixa escolher o jeito de entrar: senha, cartão, chave ou impressão digital. Windows: a tela de login passa pelo Winlogon e pelo LSASS, que conferem quem está entrando com Kerberos ou NTLM; ao lado, o Windows Hello, para entrar com o rosto ou a digital. macOS: as contas e o Keychain, que guarda senhas e chaves, e o Touch ID, para entrar com a digital.
Comparação da autenticação em Linux, Windows e macOS.

3. Auditoria: registrando o que acontece

Guardar registros do que acontece no computador é importante para descobrir problemas, fraudes ou erros. É o caderno da portaria, onde fica anotado quem entrou e quando.

  • No Linux, os registros ficam no syslog ou, nas versões mais novas, no systemd-journald, que facilita buscar uma informação.
  • No Windows, o Visualizador de Eventos (Event Viewer) separa os registros por tipo: sistema, segurança e programas. Assim, dá para ver, por exemplo, quem entrou no computador ou se alguém mudou arquivos ou configurações importantes.
  • No macOS, os registros ficam no Unified Logging, que permite filtrar as mensagens para achar só as de um programa ou de uma parte do sistema.
Diagrama com o título Auditoria: registrando o que acontece, e três colunas. Linux: o syslog, o registro clássico, e o systemd-journald, nas versões novas. Windows: o Visualizador de Eventos, que separa os registros por tipo: sistema, segurança e programas. macOS: o Unified Logging, o registro unificado, com filtros por programa.
Comparação da auditoria de sistemas em Linux, Windows e macOS.

4. Criptografia: protegendo os dados

A criptografia embaralha os dados, e só quem tem a chave certa consegue desembaralhar. É o cofre do condomínio: se o computador for perdido ou roubado, quem pegar não consegue ler os arquivos.

  • No Linux, o LUKS protege o disco inteiro, e o fscrypt pode proteger só algumas pastas.
  • No Windows, o BitLocker protege o disco inteiro. Se algo der errado ao ligar o computador (depois de uma troca de peça, por exemplo), o Windows pede a chave de recuperação, que pode ficar guardada na conta da Microsoft.
  • No macOS, o FileVault protege volumes inteiros (cada volume é uma parte do disco que funciona como se fosse um disco separado), e não pastas escolhidas.

Alguns computadores já vêm com discos que fazem essa proteção sozinhos, mas o melhor é sempre usar uma senha ou chave junto, para garantir que ninguém acesse seus dados sem autorização.

Diagrama com o título Criptografia: protegendo os dados, e três colunas. Linux: LUKS e dm-crypt protegem o disco todo; o fscrypt protege só algumas pastas. Windows: o BitLocker protege o disco todo com a ajuda do chip TPM; a chave de recuperação pode ficar guardada na conta da Microsoft. macOS: o FileVault protege volumes inteiros; nos Macs com chip da Apple ou com o chip T2, as chaves ficam com o Secure Enclave.
Comparação das soluções de criptografia em Linux, Windows e macOS.

5. Isolamento: limitando os danos

Por que separar? São as paredes do condomínio: se um programa der problema ou for invadido, o estrago tende a ficar só nele, e o resto do computador fica mais protegido.

Existem três jeitos principais de isolar programas, e dá para compará-los com moradias:

  • uma máquina virtual (VM) é um computador inteiro simulado dentro do computador de verdade, com o seu próprio sistema operacional, criada por um programa chamado hipervisor. É como uma casa com fundação própria;
  • um contêiner divide o kernel com o sistema principal e separa só os programas, com a ajuda de um motor de contêineres. É como os apartamentos de um prédio, que dividem a mesma estrutura: são mais leves, mas as paredes são um pouco mais finas;
  • uma sandbox (caixa de areia, em inglês) é um espaço fechado e controlado dentro do próprio sistema, como o que os navegadores usam para separar as abas. É como um cercadinho.

Observação: em telas pequenas, deslize horizontalmente para ler todas as colunas da tabela.

Comparação entre máquina virtual, contêiner e sandbox
Tipo Como funciona Quanto isola Quanto pesa Usos comuns
Máquina virtual Simula um computador inteiro, com sistema operacional próprio É a que mais isola Gasta muita memória e espaço Testar programas e rodar outros sistemas
Contêiner Divide o kernel do sistema principal e separa só os programas Um pouco menos que a máquina virtual Leve, liga rápido Criar programas e colocá-los para funcionar em servidores
Sandbox Fecha o programa em um espaço controlado dentro do próprio sistema Menos que os outros dois, e depende das regras do sistema A mais leve Abrir programas desconhecidos, analisar vírus e separar as abas do navegador

A escolha depende do que se precisa: mais isolamento, mais rapidez ou menos gasto de memória. E as empresas muitas vezes combinam as três, por exemplo, com contêineres rodando dentro de uma máquina virtual e as partes mais importantes ainda protegidas por sandboxes.

Diagrama em duas partes, com o título Máquinas virtuais e contêineres. À esquerda, máquinas virtuais: três pilhas lado a lado, cada uma com, de cima para baixo, programa, bibliotecas e sistema operacional. Embaixo das três, o hipervisor e, por último, o hardware. À direita, contêineres: três pilhas, cada uma só com programa e bibliotecas. Embaixo delas, o motor de contêineres, depois um único sistema operacional, com o kernel compartilhado, e por último o hardware. As notas dizem: cada máquina virtual tem o seu sistema operacional, e os contêineres dividem o mesmo kernel.
Cada máquina virtual tem o seu sistema operacional, e os contêineres dividem o mesmo kernel.

Recapitulando (revisão)

Atualmente, o sistema operacional faz muito mais do que apenas abrir programas e guardar arquivos. Ele funciona como um segurança do computador: protege as informações, controla quem pode acessar, registra o que acontece e cria áreas seguras para rodar programas separados.

Para ir além: os bastidores da segurança

Permissões. Além das regras do dono, do grupo e das outras pessoas, o Linux aceita regras extras para situações diferentes. Ele também tem proteções mais fortes, chamadas de controle obrigatório de acesso, como o SELinux e o AppArmor, que bloqueiam certas ações mesmo quando as permissões normais deixariam.

O Windows e o macOS usam proteções parecidas, como as regras do Defender e as áreas isoladas chamadas sandboxes.

Autenticação. No Linux, o PAM permite mudar o jeito de entrar sem mexer nos programas do computador. No Windows, o login passa por programas como o Winlogon e o LSASS, que conferem quem está entrando com métodos chamados Kerberos ou NTLM.

Nas edições Enterprise e Education do Windows, o Credential Guard guarda as senhas em uma área separada e isolada do resto do sistema. Para isso, ele usa a VBS (do inglês virtualization-based security, ou seja, segurança baseada em virtualização). No macOS, o Touch ID cria uma espécie de “chave digital” para liberar o acesso sem mostrar a senha verdadeira.

Auditoria. O systemd-journald, do Linux, salva os registros de um jeito mais moderno, que permite buscar informações com facilidade e saber se o registro é verdadeiro.

Criptografia. No Linux, o LUKS trabalha junto com o dm-crypt, e essas ferramentas também funcionam com o chip de segurança TPM ou com chaves de segurança. No Windows, o BitLocker usa o TPM para destravar o disco sozinho quando o computador liga.

Nos Macs com chip da Apple ou com o chip T2, as chaves do FileVault são cuidadas por uma parte protegida do chip, chamada Secure Enclave.

Isolamento. Quem cuida das máquinas virtuais é o hipervisor, como o KVM, o Hyper-V ou o VirtualBox. Ele faz a ponte entre o computador de verdade (o host, ou hospedeiro) e as máquinas virtuais (os guests, ou convidados). Se um vírus aparecer dentro de uma máquina virtual, quase nunca consegue passar para o computador principal.

Os contêineres usam recursos do kernel chamados namespaces, que separam processos, rede e contas, e cgroups, que limitam o uso de processador, memória e disco. Ferramentas como Docker e Podman facilitam a criação e o gerenciamento dos contêineres. Como o isolamento é um pouco menor, as boas práticas de segurança fazem muita diferença.

Já as sandboxes podem vir do próprio sistema, dos navegadores (que isolam abas e extensões) ou de programas específicos.

Resumo

  1. O sistema operacional fica entre a pessoa, os programas e as peças do computador. A parte central dele se chama kernel.
  2. A gente conversa com ele por uma interface: de linha de comando, textual ou gráfica.
  3. Ele reveza o processador entre os processos, tão rápido que tudo parece acontecer ao mesmo tempo.
  4. Ele organiza a memória, a bancada do computador: dá a cada programa o seu espaço, usa paginação e segmentação e, quando a RAM enche, manda parte dos dados para o disco (swap).
  5. Ele cuida da entrada e saída, usando drivers para conversar com teclado, tela, disco e outros dispositivos.
  6. Ele guarda os arquivos com um sistema de arquivos (APFS no macOS, NTFS no Windows, ext4, muito usado no Linux), e o explorador de arquivos é a parte que a gente vê.
  7. Ele protege o computador com permissões, autenticação, auditoria, criptografia e isolamento.
  8. Dentro de cada programa, a memória se divide em pilha e heap, e muitas linguagens usam um coletor de lixo para liberar o que não é mais usado.

Referências

  • Computer History Museum, Software Preservation Group. Operating Systems at Conception (sistema da General Motors e da North American Aviation para o IBM 704, usado desde 1956). Disponível em: https://softwarepreservation.computerhistory.org/os/gm.html. Acesso em: 10 out. 2026.
  • Computer History Museum. The Earliest Unix Code: An Anniversary Source Code Release. Disponível em: https://computerhistory.org/blog/the-earliest-unix-code-an-anniversary-source-code-release/. Acesso em: 10 out. 2026.
  • Computer History Museum. Microsoft MS-DOS early source code. Disponível em: https://computerhistory.org/blog/microsoft-ms-dos-early-source-code/. Acesso em: 10 out. 2026.
  • OS/2 Museum. DOS 3.0, 3.1, and 3.2. Disponível em: https://www.os2museum.com/wp/dos/dos-3-0-3-2/. Acesso em: 10 out. 2026.
  • Microsoft. Overview of FAT, HPFS, and NTFS File Systems. Disponível em: https://learn.microsoft.com/en-us/troubleshoot/windows-client/backup-and-storage/fat-hpfs-and-ntfs-file-systems. Acesso em: 10 out. 2026.
  • Microsoft. Windows 10 Home and Pro: Microsoft Lifecycle. Disponível em: https://learn.microsoft.com/en-us/lifecycle/products/windows-10-home-and-pro. Acesso em: 10 out. 2026.
  • Microsoft. Windows 10 Extended Security Updates (ESU). Disponível em: https://www.microsoft.com/en-us/windows/extended-security-updates. Acesso em: 10 out. 2026.
  • Microsoft. Windows 11: release information. Disponível em: https://learn.microsoft.com/en-us/windows/release-health/windows11-release-information. Acesso em: 10 out. 2026.
  • Apple. Find out which macOS your Mac is using. Disponível em: https://support.apple.com/en-us/109033. Acesso em: 10 out. 2026.
  • 9to5Mac. Apple confirms macOS 27 Golden Gate launch date: September 14 (com a lista oficial de Macs compatíveis). Disponível em: https://9to5mac.com/2026/09/09/apple-confirms-macos-27-golden-gate-launch-date-september-14/. Acesso em: 10 out. 2026.
  • Apple. Abra novas janelas e abas do Terminal do Mac. Disponível em: https://support.apple.com/pt-br/guide/terminal/trmlb20c7888/mac. Acesso em: 10 out. 2026.
  • Microsoft. Atalhos de teclado no Windows. Disponível em: https://support.microsoft.com/pt-br/windows/atalhos-de-teclado-no-windows-dcc61a57-8ff0-cffe-9796-cb9706c75eec. Acesso em: 10 out. 2026.
  • Microsoft. File Encryption (EFS). Disponível em: https://learn.microsoft.com/en-us/windows/win32/fileio/file-encryption. Acesso em: 10 out. 2026.
  • Microsoft. How To Encrypt a File or Folder. Disponível em: https://support.microsoft.com/en-us/windows/how-to-encrypt-a-file-1131805c-47b8-2e3e-a705-807e13c10da7. Acesso em: 10 out. 2026.
  • Microsoft. NTFS overview. Disponível em: https://learn.microsoft.com/en-us/windows-server/storage/file-server/ntfs-overview. Acesso em: 10 out. 2026.
  • The Linux Kernel documentation. ext4: Checksums. Disponível em: https://docs.kernel.org/filesystems/ext4/checksums.html. Acesso em: 10 out. 2026.
  • Kernel Newbies. Linux 5.10 (ext4 fast commit). Disponível em: https://kernelnewbies.org/Linux_5.10. Acesso em: 10 out. 2026.
  • Microsoft. Credential Guard overview. Disponível em: https://learn.microsoft.com/en-us/windows/security/identity-protection/credential-guard/. Acesso em: 10 out. 2026.
  • Apple. Use Touch ID on Mac. Disponível em: https://support.apple.com/guide/mac-help/use-touch-id-mchl16fbf90a/mac. Acesso em: 10 out. 2026.
  • Microsoft. Find your BitLocker recovery key. Disponível em: https://support.microsoft.com/en-us/windows/find-your-bitlocker-recovery-key-6b71ad27-0b89-ea08-f143-056f5ab347d6. Acesso em: 10 out. 2026.
  • Apple. Volume encryption with FileVault in macOS (Apple Platform Security). Disponível em: https://support.apple.com/guide/security/volume-encryption-with-filevault-sec4c6dc1b6e/web. Acesso em: 10 out. 2026.
  • Microsoft. Virtual Address Spaces. Disponível em: https://learn.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/virtual-address-spaces. Acesso em: 10 out. 2026.
  • The Linux Kernel documentation. Concepts overview (gerenciamento de memória, compactação e OOM killer). Disponível em: https://docs.kernel.org/admin-guide/mm/concepts.html. Acesso em: 10 out. 2026.
  • Android Open Source Project. Low memory killer daemon. Disponível em: https://source.android.com/docs/core/perf/lmkd. Acesso em: 10 out. 2026.
  • Apple. About the Virtual Memory System (Memory Usage Performance Guidelines). Disponível em: https://developer.apple.com/library/archive/documentation/Performance/Conceptual/ManagingMemory/Articles/AboutMemory.html. Acesso em: 10 out. 2026.
  • Debian. apt(8): manual do comando apt. Disponível em: https://manpages.debian.org/trixie/apt/apt.8.en.html. Acesso em: 10 out. 2026.
  • DNF. Command Reference. Disponível em: https://dnf.readthedocs.io/en/latest/command_ref.html. Acesso em: 10 out. 2026.
  • Arch Linux. pacman(8): manual do comando pacman. Disponível em: https://pacman.archlinux.page/pacman.8.html. Acesso em: 10 out. 2026.
  • LINUX MAN-PAGES PROJECT. mallopt(3): set memory allocation parameters (M_ARENA_MAX: uma arena é uma reserva de memória usada pelo malloc). Disponível em: https://man7.org/linux/man-pages/man3/mallopt.3.html. Acesso em: 10 out. 2026.
  • ARPACI-DUSSEAU, Remzi H.; ARPACI-DUSSEAU, Andrea C. Operating Systems: Three Easy Pieces. Capítulo The Abstraction: The Process (processo é um programa em execução). Disponível em: https://pages.cs.wisc.edu/~remzi/OSTEP/cpu-intro.pdf. Acesso em: 15 out. 2026.
  • ARPACI-DUSSEAU, Remzi H.; ARPACI-DUSSEAU, Andrea C. Operating Systems: Three Easy Pieces. Capítulo Mechanism: Limited Direct Execution (modo restrito e modo do kernel). Disponível em: https://pages.cs.wisc.edu/~remzi/OSTEP/cpu-mechanisms.pdf. Acesso em: 15 out. 2026.
  • ARPACI-DUSSEAU, Remzi H.; ARPACI-DUSSEAU, Andrea C. Operating Systems: Three Easy Pieces. Capítulo Segmentation (segmentos de código, heap e pilha). Disponível em: https://pages.cs.wisc.edu/~remzi/OSTEP/vm-segmentation.pdf. Acesso em: 15 out. 2026.
  • LINUX MAN-PAGES PROJECT. pipe(7): overview of pipes and FIFOs. Disponível em: https://man7.org/linux/man-pages/man7/pipe.7.html. Acesso em: 15 out. 2026.
  • LINUX MAN-PAGES PROJECT. signal(7): overview of signals. Disponível em: https://man7.org/linux/man-pages/man7/signal.7.html. Acesso em: 15 out. 2026.
  • DOCKER. What is a container? (o contêiner divide o kernel, e a máquina virtual tem o próprio). Disponível em: https://docs.docker.com/get-started/docker-concepts/the-basics/what-is-a-container/. Acesso em: 15 out. 2026.