Capítulo 6 — Sistema Operacional e Sistemas de Arquivo¶
Neste capítulo você vai estudar o papel do sistema operacional como camada de interface entre hardware, software e usuário; a forma como os sistemas de arquivo organizam o armazenamento secundário em unidades chamadas clusters; a operação de formatação e suas implicações sobre a permanência real dos dados; o conceito de partição e as duas soluções de tabela de partição em uso — MBR e GPT; e o procedimento de inicialização do computador, do POST ao carregamento do sistema operacional. O Capítulo 7 dá sequência direta a este, tratando da instalação propriamente dita.
6.1 O sistema operacional como interface¶
Um sistema operacional (SO, do inglês Operating System, OS) é um software cuja função central é atuar como interface entre o hardware do computador e os demais softwares e usuários. O termo interface designa aquilo que se coloca entre duas faces, mediando a relação entre elas sem se confundir com nenhuma delas.
Em termos de camadas, o hardware ocupa a base do sistema; sobre ele executa o sistema operacional, cujo núcleo é chamado de kernel; e acima do sistema operacional executam os demais programas — desde o próprio ambiente gráfico (o menu iniciar, os ícones, as janelas) até os aplicativos que o usuário abre, como um navegador ou um editor de texto.
Figura pendente
diagrama em camadas — hardware na base, kernel do sistema operacional no meio, aplicativos e usuário no topo
6.1.1 Abstração e plataforma¶
O Capítulo 2 (§2.1) apresentou os conceitos de plataforma e abstração em camadas a partir do exemplo do navegador. Aplicados ao sistema operacional: um desenvolvedor de software não precisa saber qual é o modelo da memória RAM instalada, a marca do disco ou a velocidade da placa de vídeo do computador em que seu programa vai rodar — ele apenas chama funções do sistema operacional, e é o SO quem trata da comunicação efetiva com aquele hardware específico. Um programa feito para a plataforma Windows não roda nativamente em outra plataforma, a menos que exista uma versão também disponível para ela — o que caracteriza um software multiplataforma; no caso de uma aplicação web, a própria plataforma é o navegador, e não o sistema operacional subjacente.
Antes da existência do sistema operacional, um programa era escrito diretamente para o hardware que o executaria — de forma semelhante ao que ocorre hoje com uma placa Arduino, cujo programa precisa ser reescrito se a placa mudar. O sistema operacional resolveu esse problema criando uma camada intermediária estável, da qual decorre uma segunda propriedade fundamental — e essa sim exclusiva do sistema operacional, sem paralelo na discussão do Capítulo 2: a possibilidade de executar múltiplos programas ao mesmo tempo, alternando (fazendo o chaveamento) entre eles os recursos de hardware disponíveis.
6.1.2 Da era monofunção à multitarefa¶
Exemplo. Antes dos smartphones modernos, cada função dependia de um dispositivo dedicado: um iPod para ouvir música, uma câmera para fotografar, um telefone para ligar, um bloco de papel para anotar. Esses aparelhos eram monofunção. O smartphone moderno reúne um hardware capaz de realizar todas essas tarefas e, sobre ele, instala um sistema operacional capaz de gerenciar múltiplos programas simultaneamente — permitindo, por exemplo, ouvir música no Spotify enquanto se recebe uma mensagem e um e-mail ao mesmo tempo. É o sistema operacional que faz a interface entre esses vários programas aplicativos, o usuário e o hardware do aparelho.
6.2 Sistemas de arquivo e a unidade mínima de alocação: o cluster¶
O sistema de arquivo é o protocolo — o conjunto de combinados — pelo qual o sistema operacional organiza e localiza dados dentro de uma unidade de armazenamento secundário. Sistemas operacionais diferentes utilizam, em geral, sistemas de arquivo diferentes: o Windows usa hoje o NTFS (e usou historicamente o FAT); distribuições Linux usam tipicamente EXT4; Android, iOS e macOS têm, cada um, seus próprios sistemas de arquivo.
A unidade mínima de alocação de espaço em disco para arquivos e diretórios é o cluster.
Ao formatar uma unidade de armazenamento, o sistema operacional solicita, entre outras informações, o tamanho da unidade de alocação (o tamanho do cluster). Valores típicos oferecidos pelo Windows incluem 8.192 bytes, 16 KB, 32 KB e 64 KB, além de um tamanho padrão sugerido para o dispositivo [1].
Figura pendente
janela de formatação do Windows mostrando a escolha do sistema de arquivo (FAT32, NTFS, exFAT) e do tamanho da unidade de alocação
6.2.1 File slack¶
Como cada arquivo ocupa um número inteiro de clusters, raramente o tamanho lógico de um arquivo coincide exatamente com o espaço físico que ele ocupa em disco. Essa diferença é chamada de file slack.
Exemplo. Nas propriedades de um arquivo de áudio real usado em demonstração, o tamanho do arquivo (tamanho lógico) era de 27.550.336 bytes (26,2 MB), enquanto o tamanho em disco (espaço físico ocupado) era de 27.553.792 bytes — uma diferença decorrente de o arquivo não preencher por completo o último cluster que lhe foi atribuído.
6.2.2 Fragmentação¶
A escolha do tamanho do cluster no momento da formatação gera compromissos entre quatro cenários possíveis, resumidos na tabela a seguir.
| Cenário | Cluster | Arquivo | Efeito |
|---|---|---|---|
| 1 | Pequeno | Pequeno | Cenário ideal, mas irreal em um computador de uso geral |
| 2 | Pequeno | Grande | Fragmentação: o arquivo é quebrado em muitos pedaços |
| 3 | Grande | Pequeno | File slack elevado: grande parte do disco é desperdiçada |
| 4 | Grande | Grande | Cenário aceitável, mas também irreal isoladamente |
Como um computador moderno lida simultaneamente com arquivos pequenos e grandes, a situação real está sempre mais próxima dos cenários 2 e 3, exigindo um meio-termo na escolha do tamanho do cluster. O cenário 3 — cluster grande com arquivo pequeno — é considerado o mais prejudicial, por gerar o maior desperdício proporcional de espaço em disco.
A fragmentação ocorre porque, à medida que arquivos são apagados e recriados de tamanhos distintos, os espaços livres deixados por exclusões (buracos) nem sempre comportam o próximo arquivo a ser gravado por inteiro, obrigando o sistema operacional a dividir um mesmo arquivo em blocos não contíguos no disco. A ferramenta de desfragmentação existe justamente para reorganizar esses blocos e reduzir esse efeito.
6.3 A operação de formatação¶
Formatar uma unidade de armazenamento significa atribuir a ela um sistema de arquivo — ou seja, "colocá-la em um formato", um combinado que o sistema operacional passa a reconhecer e utilizar. Antes da formatação, uma partição sem sistema de arquivo atribuído não pode ser usada pelo sistema operacional: nenhum programa consegue gravar ou ler dados nela.
Um efeito colateral direto da formatação é a perda de todos os arquivos e diretórios anteriormente existentes naquela unidade.
6.3.1 O que a formatação realmente faz: metadados, exclusão e recuperação de dados¶
Cada dado gravado em disco é acompanhado de metadados: informações sobre o próprio dado, como o nome do arquivo, o momento de criação, de modificação e de último acesso, atributos de somente leitura ou oculto, e assinatura digital, entre outros. Um mecanismo semelhante a uma tabela de referências indica onde cada arquivo começa e onde termina dentro do disco.
Exemplo. Suponha uma sequência de células de memória em que o valor 1001 foi gravado, seguido do valor 101. Sem uma marcação adicional, não é possível saber onde termina um número e começa o outro. A solução é registrar, para cada dado, uma referência com a posição inicial e o comprimento (por exemplo: "o dado A começa aqui e tem comprimento 4"). Apagar um arquivo consiste, nesse esquema, simplesmente em remover essa referência — não em reescrever os bits do dado propriamente dito.
Essa é a razão pela qual formatar ou apagar um arquivo não desgasta uma memória flash (como um pendrive ou SSD) na mesma proporção que reescrever cada bit: a operação normalmente descarta apenas a tabela de referências, preservando o conteúdo bruto até que aquele espaço seja reutilizado.
A lixeira do sistema operacional é uma lista de arquivos cuja referência está marcada como "pode ser removida no futuro", mas ainda não foi de fato eliminada — uma camada extra de segurança contra exclusões acidentais. Enquanto o dado permanecer fisicamente gravado, softwares de recuperação de dados podem restaurá-lo, mesmo após a formatação: eles percorrem o disco bit a bit em busca de cabeçalhos característicos de cada tipo de arquivo (por exemplo, os bytes iniciais que identificam um .docx) e, pelo princípio da localidade, reconstroem o conteúdo entre o início e o fim identificados.
Aplicação prática. Se um computador estiver infectado por um malware capturando dados do usuário, formatar o disco elimina o malware — mas também elimina, junto com ele, todos os demais dados do usuário, incluindo aqueles que se desejaria preservar. É, na expressão usada em aula, "matar uma mosca com uma bazuca": resolve o problema, mas com um custo desproporcional se não houver backup prévio (Capítulo 7, §7.2.1).
Figura pendente
esquema comparando a tabela de referências antes e depois da exclusão de um arquivo
6.4 Partições: divisão lógica do disco¶
Uma partição é uma divisão lógica de um disco físico — não uma divisão física real.
Todo disco precisa ter ao menos uma partição para que o sistema operacional possa atribuir a ele um sistema de arquivo e utilizá-lo — mesmo que essa única partição ocupe a totalidade do espaço físico disponível.
6.4.1 Sistemas de arquivo por partição e o conceito de dual boot¶
Cada partição pode ter atrelado a si um sistema de arquivo próprio, independente das demais partições do mesmo disco. Essa propriedade tem duas consequências práticas relevantes:
- Modularização de uso. É possível reservar cotas de espaço distintas para finalidades diferentes — por exemplo, dividir um mesmo disco entre dois usuários de uma mesma máquina.
- Coexistência de sistemas operacionais. Como sistemas operacionais diferentes exigem sistemas de arquivo diferentes (o Windows opera sobre NTFS; uma distribuição Linux como o Ubuntu opera sobre EXT4), um único disco físico pode conter partições distintas, cada uma com seu próprio sistema operacional instalado.
Quando um computador com múltiplos sistemas operacionais instalados é ligado e apresenta uma tela de escolha entre eles, esse mecanismo é chamado de dual boot (ou multi boot, se houver mais de dois sistemas). Boot é o termo em inglês para o procedimento de inicialização; dual boot significa, portanto, que há mais de uma forma possível de inicializar aquele computador, cada uma delas carregando um sistema operacional diferente, tratado em detalhe no Capítulo 7, §7.5.
| Sistema operacional | Sistema de arquivo típico |
|---|---|
| Windows | NTFS (historicamente, FAT) |
| Linux (ex.: Ubuntu) | EXT4 (historicamente, EXT3) |
| Pendrives / mídias removíveis | FAT32 ou exFAT |
Figura pendente
captura do gerenciador de disco do Windows mostrando um disco físico dividido em múltiplas partições
6.5 Tabelas de partição: MBR e GPT¶
As informações sobre quantas partições um disco possui, onde cada uma começa e termina, e qual sistema de arquivo está atrelado a cada uma constituem, elas próprias, um conjunto de metadados que precisa ser gravado em algum lugar do disco. A estrutura responsável por essa organização é chamada de tabela de partições.
Existem duas soluções de tabela de partição amplamente utilizadas: MBR (mais antiga) e GPT (mais recente).
6.5.1 Master Boot Record (MBR)¶
O MBR (Master Boot Record) grava a tabela de partições em um setor específico no início do disco, usando endereçamento de 32 bits. Dessa limitação de endereçamento decorrem duas restrições centrais:
- O tamanho máximo de uma partição é de 2 TB.
- É possível criar no máximo quatro partições primárias
[2].
Para superar o limite de quatro partições, uma das partições primárias pode ser convertida em partição estendida, dentro da qual é possível criar até 128 partições lógicas. Uma consequência prática dessa regra é que múltiplas partições lógicas devem estar todas contidas dentro de uma única partição estendida — não é possível, por exemplo, dividir 64 partições lógicas entre duas partições primárias diferentes.
Exemplo. Um disco já dividido em quatro partições primárias atingiu o limite da tabela MBR. Para criar uma quinta divisão, uma das quatro partições primárias precisa ser apagada e recriada como partição estendida; somente dentro dela é possível abrir novas partições lógicas adicionais.
6.5.2 GUID Partition Table (GPT)¶
O GPT (GUID Partition Table) foi desenvolvido para superar as limitações do MBR, mantendo retrocompatibilidade com ele — isto é, softwares e firmwares mais antigos, mesmo sem reconhecer o GPT, ainda conseguem ler as informações essenciais gravadas no mesmo local histórico do disco.
Cada disco identificado em GPT recebe um GUID (Globally Unique Identifier), um identificador único análogo a um endereço IP em uma rede. Usando endereçamento de 64 bits, o GPT permite partições na ordem de zettabytes [3], até 128 partições — o padrão adotado pelo Windows; a especificação GPT em si permite um número de partições configurável, tipicamente maior [4] — sem a necessidade do artifício de partições estendidas, e inclui um mecanismo de redundância: como historicamente ataques que reescreviam apenas o setor da tabela de partições eram suficientes para inutilizar o acesso a um disco inteiro (sem apagar os dados propriamente ditos, mas destruindo a referência para encontrá-los), o GPT mantém cópias redundantes dessa informação.
| Característica | MBR | GPT |
|---|---|---|
| Época de criação | Mais antiga | Mais recente |
| Endereçamento | 32 bits | 64 bits |
| Tamanho máximo de partição | 2 TB | Na casa de zettabytes |
| Partições primárias | Até 4 | Até 128 (sem partição estendida) |
| Partições lógicas | Até 128, dentro de uma partição estendida | Não se aplica |
| Redundância da tabela | Não | Sim |
| Firmware associado historicamente | BIOS | UEFI |
Figura pendente
diagrama do layout de um disco em MBR — código de inicialização, tabela de partições e partições de dados
6.6 BIOS, UEFI e o procedimento de inicialização¶
O BIOS (Basic Input/Output System), introduzido no Capítulo 1 a propósito do IBM PC, é o conjunto de softwares gravado na placa-mãe responsável por inicializar o hardware e oferecer uma interface básica de entrada e saída antes de qualquer sistema operacional ser carregado. Ele é composto, entre outros elementos, por dois programas centrais: o POST e o Setup. O UEFI (Unified Extensible Firmware Interface) é a evolução moderna desse firmware, com interface gráfica navegável por mouse — em contraste com as telas de texto do BIOS tradicional.
6.6.1 POST¶
O POST (Power On Self Test, autoteste de inicialização) é o primeiro programa executado quando o computador é ligado. Sua função é varrer os componentes de hardware — processador, memória, teclado, entre outros — em busca de falhas, antes de liberar o controle da CPU para qualquer outro software.
Se algum componente essencial falhar no teste, o POST comunica o erro por meio de sinais sonoros (bips), já que, sem memória funcional, ele não tem como exibir uma mensagem na tela — mostrar algo na tela já é, em si, uma operação de software que depende de memória disponível. A quantidade e o padrão de bips indicam, conforme o manual da placa-mãe, qual componente falhou (por exemplo, ausência ou defeito de memória RAM); o Capítulo 9 aprofunda o POST sob a ótica dos componentes de hardware que ele avalia.
Do ponto de vista do diagnóstico técnico, um POST bem-sucedido indica que processador, memória e placa-mãe estão minimamente funcionais — o que não exclui problemas de hardware que só se manifestem sob carga (como superaquecimento durante o uso), nem problemas de software, que só podem ocorrer depois que o POST é concluído com sucesso.
6.6.2 Setup¶
O Setup é o programa que permite alterar as configurações de hardware do computador — frequência do processador e da memória (overclock), habilitação ou desabilitação de funcionalidades, data e hora do sistema, e a ordem de inicialização (boot order), entre outras.
Essas configurações — incluindo a informação de qual dispositivo de armazenamento contém o sistema operacional a ser carregado — precisam ser preservadas mesmo com o computador desligado. Por isso, ficam gravadas em uma pequena memória flash não volátil na própria placa-mãe, dedicada a esse fim; o Capítulo 9 trata da bateria que mantém essa memória energizada com o computador desligado da tomada.
6.6.3 Boot: carregamento do sistema operacional¶
Concluído o POST com sucesso, o próximo passo padrão é o boot (inicialização) do sistema operacional: a cópia do sistema operacional da memória secundária, onde está instalado, para a memória primária (RAM), de onde ele passa a ser executado — retomando o conceito de hierarquia de memória apresentado no Capítulo 1 (Seção 1.10) e aprofundado no Capítulo 5.
Para saber onde procurar o sistema operacional entre as possivelmente várias partições e discos existentes, o computador consulta a variável de ordem de inicialização gravada na memória da placa-mãe (Seção 6.6.2). É possível interromper esse fluxo padrão e forçar a inicialização a partir de outro dispositivo — como um pendrive — de duas formas: alterando permanentemente a ordem de boot dentro do Setup, ou acionando, na tela do POST, um atalho de teclado que abre o chamado boot menu, uma lista de dispositivos disponíveis para inicialização imediata (nas máquinas descritas em aula, a tecla de atalho variava entre F9, F11/F12 ou a sequência 10 → F12, dependendo do fabricante).
Figura pendente
tela de POST/BIOS de um computador real, mostrando o logotipo do fabricante e a instrução para acessar o boot menu
Figura pendente
tela de Setup/BIOS com a configuração de ordem de inicialização (boot order) destacada
6.6.4 Segurança e ética do acesso físico¶
Um ponto central para a formação de um técnico de informática é a compreensão de que o acesso físico a uma máquina muda todos os paradigmas de segurança — formulação que corresponde à "Lei nº 3" das clássicas "10 Immutable Laws of Security" da Microsoft [5]. Se é possível interromper o boot padrão e carregar, em vez do sistema operacional instalado, um programa alternativo a partir de um pendrive — por exemplo, um Live CD/USB (Capítulo 7, §7.3) —, é possível se tornar administrador daquela máquina sem conhecer nenhuma senha, e a partir daí acessar, copiar ou apagar qualquer dado nela contido, independentemente das proteções de software configuradas pelo usuário original.
Essa mesma técnica que permite, de forma legítima, recuperar o acesso a uma máquina cujo usuário esqueceu a senha, pode ser usada de forma ilegítima para violar dados de terceiros sem autorização. Por essa razão, deixar um pendrive ou dispositivo USB como primeira opção na ordem de inicialização é considerado uma falha de segurança grave: qualquer pessoa com acesso físico breve à máquina pode assumir controle administrativo total sobre ela. O uso ético dessas técnicas — e a orientação de nunca acessar dados sensíveis de um cliente sem que ele esteja presente e ciente do procedimento — é parte inseparável da formação técnica apresentada neste capítulo.
Síntese do capítulo¶
Este capítulo apresentou o sistema operacional como a camada de interface entre hardware, software e usuário, detalhando como essa camada organiza o armazenamento secundário — introduzido no Capítulo 5 em termos de blocos, páginas e setores — por meio de clusters, sistemas de arquivo e partições. Foram estudadas as duas soluções de tabela de partição em uso, MBR e GPT, e o procedimento completo de inicialização do computador: POST, Setup/BIOS e boot. Esses conceitos formam a base necessária para o Capítulo 7, no qual o processo completo de instalação de um sistema operacional é tratado em detalhe — da preparação da mídia à instalação de drivers, passando por backup, dual boot, diagnóstico via Live CD/USB e a manutenção contínua dessa camada de software.
Referências¶
- MICROSOFT. "NTFS overview." Disponível em: https://learn.microsoft.com/en-us/windows-server/storage/file-server/ntfs-overview.
- MICROSOFT. "Windows support for hard disks exceeding 2 TB." Disponível em: https://learn.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/support-for-hard-disks-exceeding-2-tb; UEFI FORUM. "FAQ: Drive Partition Limits." Disponível em: https://uefi.org/sites/default/files/resources/UEFI_Drive_Partition_Limits_Fact_Sheet.pdf.
- UEFI FORUM. "FAQ: Drive Partition Limits." Disponível em: https://uefi.org/sites/default/files/resources/UEFI_Drive_Partition_Limits_Fact_Sheet.pdf.
- MICROSOFT. "Windows and GPT FAQ." Disponível em: https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-and-gpt-faq.
- MICROSOFT. "10 Immutable Laws of Security (Version 2.0)." Disponível em: https://learn.microsoft.com/en-us/archive/blogs/rhalbheer/ten-immutable-laws-of-security-version-2-0.