Uma missão lunar escondida em dois fichários
Aqui está uma verdade surpreendente: o código que levou humanos à Lua em 1969 ainda existe, meticulosamente transcrito de dois fichários de papel preservados no MIT Museum. Voluntários converteram minuciosamente essas digitalizações históricas em uma base de código digital utilizável, agora publicamente acessível e executável. É um testemunho da preservação e do esforço colaborativo.
Esta não é uma narrativa de um gênio solitário. Margaret Hamilton, então uma cientista da computação pioneira, liderou a Software Engineering Division no MIT Instrumentation Laboratory. Sua equipe de mais de 400 pessoas desenvolveu o software crítico tanto para o módulo de comando quanto para o módulo lunar da Apollo. A liderança de Hamilton e a escala do esforço ressaltam o brilho coletivo por trás da Apollo.
Escrito em linguagem assembly para o Apollo Guidance Computer, este código-fonte sobrevivente pode ser montado para corresponder perfeitamente à imagem de memória original. Entusiastas podem até executá-lo através do emulador Virtual AGC, experimentando as sequências exatas que os astronautas da Apollo 11 executaram. Isso permite uma visão sem precedentes do mundo rigoroso e limitado do software dos primeiros voos espaciais.
O computador tinha menos memória do que um tweet
As missões lunares rodavam em hardware menos potente do que um termostato moderno. O Apollo Guidance Computer (AGC), construído no MIT Instrumentation Laboratory, operava a apenas 1,024 MHz, com apenas 2.048 palavras de memória apagável—aproximadamente 3.840 bytes. Um Raspberry Pi Pico moderno, em comparação, possui 70 vezes mais RAM e um clock 130 vezes mais rápido.
As limitações definiram o AGC. Seus 72 KB de memória somente leitura dependiam da core rope memory, uma maravilha da programação física. Fios passados através de minúsculos núcleos magnéticos codificavam o software diretamente: um fio através de um anel sinalizava um binário '1', ao redor dele um '0'. Isso significava que não havia correções rápidas de software; o código de voo era literalmente tecido no hardware, travado meses antes do lançamento.
Tais limitações forçaram um design brilhante. Os engenheiros criaram um código excepcionalmente compacto, rigorosamente verificado para a perfeição. O agendador Executive do AGC priorizava tarefas, lidando com até oito trabalhos em slots de 12 palavras. Até mesmo os comentários internos do código, como revela uma olhada no repositório do GitHub transcrito, às vezes divergiam da lógica implementada, um testemunho do desenvolvimento rápido e iterativo sob pressão extrema.
O código tem piadas. As salvaguardas levam o trabalho a sério.
O humor, ao que parece, é uma constante universal, mesmo em códigos destinados à Lua. Apesar da imensa pressão, os engenheiros do MIT Instrumentation Laboratory salpicaram o assembly do Apollo Guidance Computer com comentários encantadores e humanizadores. “Please crank this silly thing around” instrui o astronauta a mover a antena do radar de pouso, enquanto “Off to see the wizard” precede a sequência de ignição do motor, ludicamente intitulada “Burn Baby Burn.”
Os astronautas interagiam com este sistema complexo através do DSKY (Display/Keyboard), uma interface minimalista de um pequeno teclado numérico e display. Os comandos eram pares concisos de verbo e substantivo numéricos—um “verbo” para a ação (ex: exibir) e um “substantivo” para o objeto (ex: relógio). Essas instruções ensaiadas, frequentemente memorizadas ou consultadas em checklists, eram a única maneira de operar o computador em voo.
No entanto, por trás da sagacidade, havia uma resiliência inabalável. O Executive scheduler do Apollo Guidance Computer priorizava tarefas, garantindo que as funções críticas de orientação sempre fossem executadas. Quando os sistemas sobrecarregavam, como aconteceu durante a descida da Apollo 11 devido a um radar de encontro com defeito, tarefas menos importantes eram descartadas, acionando alarmes como o 1202.
Crucialmente, os restart checkpoints protegiam trabalhos vitais. Se o computador reiniciasse, ele retomava processos essenciais a partir do último ponto de verificação, reiniciando até mesmo o motor de descida. Esse design robusto permitiu que o computador gerenciasse falhas sem abandonar a missão, um testemunho de previsão sob restrições extremas. Para aqueles curiosos em explorar essa mistura de rigor e humor, o Código-fonte original do Apollo 11 Guidance Computer (AGC) está disponível publicamente.
Gostando do artigo? Receba um assim na sua caixa de entrada toda manhã.
um e-mail por dia · cancele em dois cliques · sem rastreadores de terceiros
Por que o 1202 não impediu o pouso
O alarme 1202, infame desde o pouso da Apollo 11, sinalizou uma luta desesperada por tempo de processador. À medida que o Módulo Lunar descia, o rendezvous radar consumia inesperadamente 13-15% dos ciclos do computador ao disparar 12.800 pulsos por segundo. Essa atividade, combinada com o processador já utilizado em 90%, impedia que tarefas críticas de navegação fossem concluídas no prazo.
O Executive do Apollo Guidance Computer (AGC), seu agendador, só podia gerenciar oito slots de trabalho, cada um com 12 palavras de comprimento. Quando a tarefa de navegação não terminava, novas cópias entravam na fila, preenchendo rapidamente esses slots e acionando o alarme 1202. O AGC respondia descartando trabalhos não protegidos e reiniciando, priorizando funções essenciais de descida. Os controladores de voo, notavelmente Steve Bales, tiveram que avaliar rapidamente se o pouso poderia continuar, uma decisão tomada cinco vezes durante os minutos finais.
Essa resiliência não foi acidental. A equipe de Margaret Hamilton no MIT Instrumentation Laboratory projetou o AGC com uma robusta restart protection, permitindo que ele retomasse operações críticas mesmo no meio da descida. Pontos de verificação em todo o código garantiam que tarefas vitais, como o motor de descida, pudessem ser reativadas imediatamente.
Hoje, a genialidade do AGC é inspecionável. O projeto Virtual AGC emula fielmente o computador e sua interface Display and Keyboard (DSKY), permitindo que qualquer pessoa execute o código de voo da Apollo 11. Você pode explorar as sequências exatas que os astronautas usaram, desde verificações pré-lançamento até os alarmes de pouso, no repositório do Apollo 11 AGC. Como Hamilton observou, sua equipe não teve "segunda chance", mas o código deles nos dá infinitas oportunidades de aprender.
Perguntas Frequentes
É possível executar o código-fonte original da Apollo 11 hoje?
Sim. O código-fonte transcrito pode ser montado e executado no emulador de código aberto Virtual AGC.
Quanta memória o Apollo Guidance Computer tinha?
Ele tinha 2.048 palavras de memória apagável, aproximadamente 3.840 bytes, além de memória fixa do tipo core rope somente leitura.
O que causou o alarme 1202 durante o pouso da Apollo 11?
Os pulsos do radar consumiram tempo de processador, sobrecarregando os slots de trabalho limitados do agendador. O computador descartou trabalhos de menor prioridade e reiniciou tarefas protegidas.
Quem foi Margaret Hamilton?
Hamilton foi líder de software na Apollo no Instrumentation Laboratory do MIT e ajudou a desenvolver o software que guiou as missões tripuladas.

