☰ Menu

06.10.2026 · Signal Titans Editorial

Anéis de Cobre e Filas de Prioridade: Como Margaret Hamilton Criou as Salvaguardas de Software da Apollo

Como Margaret Hamilton desenvolveu o software de voo da Apollo, estabelecendo princípios para a recuperação de falhas em tempo real.

Uma ilustração editorial mostrando fios de cobre trançados em anéis magnéticos iluminados por luz azul-turquesa contra um fundo azul-marinho escuro.

Dentro de uma caixa de alumínio de 70 libras que media 24 por 12,5 por 6,5 polegadas, fios de cobre físicos eram trançados manualmente através de anéis magnéticos para armazenar código digital. Cada passagem por um núcleo representava um binário, enquanto a passagem por fora representava um zero. Na década de 1960, essa memória de núcleo entrelaçado guardava o software de voo para o computador de navegação do programa Apollo, da NASA, no Laboratório de Instrumentação do Instituto de Tecnologia de Massachusetts (MIT). À frente da divisão encarregada de escrever e supervisionar esse código estava a matemática Margaret Hamilton, cuja missão era criar um software resiliente o suficiente para guiar voos espaciais tripulados.

Do Piscar das Luzes do SAGE à Memória de Núcleo Entrelaçado

Hamilton formou-se em matemática pela faculdade Earlham College com o título de Bacharel em Artes em 1958. No MIT, ela começou desenvolvendo software de previsão do tempo para o professor Edward N. Lorenz em computadores Librascope LGP-30 e DEC PDP-1. Entre 1961 e 1963, Hamilton transferiu-se para os Laboratórios Lincoln para trabalhar no protótipo de computador XD-1 AN/FSQ-7 do projeto de defesa aérea SAGE. As falhas do sistema naquele computador do tamanho de uma sala disparavam luzes piscantes intensas e alarmes sonoros que alertavam imediatamente todos no edifício. Essa experiência convenceu Hamilton da absoluta necessidade de confiabilidade nos softwares. Em seguida, ela ascendeu ao comando da Divisão de Engenharia de Software da Apollo no Laboratório de Instrumentação do MIT, onde os circuitos integrados permitiram à sua equipe encaixar o processamento de voo na estrutura compacta da espaçonave.

Nove Horas Sobre a Listagem de Código no Dia de Natal

A vulnerabilidade das operações de missão a entradas humanas inesperadas ficou demonstrada durante a missão Apollo 8. Às 14h, no horário da Costa Leste dos Estados Unidos, no Dia de Natal de 1968, o astronauta Jim Lovell pressionou inadvertidamente uma sequência de teclas no teclado de exibição que apagou os dados de navegação do computador enquanto estavam na órbita lunar. Diante do risco de perder o alinhamento orbital, Hamilton e seus programadores passaram nove horas analisando sistematicamente uma listagem impressa do programa com oito polegadas de espessura sobre suas mesas. Após testar e verificar uma complexa sequência de recuperação que exigia centenas de toques precisos no teclado, a equipe permitiu que os astronautas reiniciassem o sistema de navegação e retornassem em segurança à Terra.

Prioridade Assíncrona e a Sobrecarga da Apollo 11

Durante a descida lunar da Apollo 11, a arquitetura tolerante a falhas desenvolvida por Hamilton enfrentou seu teste definitivo. À medida que o Módulo Lunar descia em direção à superfície, uma configuração inesperada do radar sobrecarregou o computador de navegação com demandas excessivas de processamento, disparando alarmes de aviso para a tripulação. Em vez de interromper a execução ou travar, o software executou rotinas de recuperação pré-programadas que descartaram tarefas secundárias em segundo plano para reservar capacidade de processamento às funções críticas de pouso. Como Hamilton detalhou em uma carta enviada em 1971 à publicação Datamation, o escalonamento por prioridade assíncrona inerente ao código permitiu que o computador reconhecesse a sobrecarga de tarefas e mantivesse os comandos de navegação em tempo real de alta prioridade.

Formalizando a Disciplina da Engenharia de Software

Após o programa Apollo, Hamilton aplicou seus métodos de engenharia aos sistemas do Skylab e do Ônibus Espacial da NASA. Em 1976, ela fundou a empresa Higher Order Software para aplicar princípios de tolerância a falhas em projetos de defesa e, em 1986, criou a Hamilton Technologies para comercializar sua Universal Systems Language. O reconhecimento concedido a ela pelo Computer History Museum destacou seu papel pioneiro na definição da engenharia de software moderna.

A arquitetura pioneira de Hamilton provou que sistemas complexos podiam ser projetados para resistir a erros humanos imprevisíveis e a sobrecargas de hardware em tempo real. Ao estabelecer que os softwares necessitavam de salvaguardas matemáticas formais em vez de correções temporárias e improvisadas, o trabalho de Hamilton transformou a programação de computadores em uma disciplina formal de engenharia.

Ilustração editorial gerada por IA; não é uma fotografia documental.

Fonte: 2017 CHM Fellow Margaret Hamilton