A filha de Margaret Hamilton, Lauren, teve um papel inesperado na prevenção de um erro no software da Apollo. Margaret Hamilton foi a diretora da equipe de engenharia de software do Programa Espacial Apollo e teve um papel fundamental no desenvolvimento do software de voo da missão.
Esse incidente revelou um problema sério: se um astronauta cometesse o mesmo erro durante uma missão real, o sistema poderia falhar ou comprometer a segurança da nave. Margaret imediatamente reportou o problema e argumentou que era necessário programar uma solução para evitar essa situação. Inicialmente, a NASA resistiu à ideia de gastar tempo e recursos corrigindo algo que, teoricamente, os astronautas deveriam evitar apenas seguindo as instruções corretamente.
Porém, sua preocupação se mostrou válida quando, durante a missão Apollo 8, o astronauta Jim Lovell acidentalmente digitou o mesmo comando que Lauren havia, brincando, descoberto, colocando o computador da espaçonave no modo errado. Felizmente, graças às modificações que Margaret insistiu em implementar, o software conseguiu se recuperar automaticamente e evitar um desastre.
Esse episódio reforçou a importância do trabalho de Hamilton e sua abordagem meticulosa ao desenvolvimento de software, garantindo que o sistema pudesse lidar com erros humanos e imprevistos, um conceito que se tornaria essencial para a engenharia de software moderna.
A falha durante a alunissagem da Apollo 11
Durante a aproximação do Módulo Lunar Eagle à superfície da Lua, o computador de navegação (AGC Apollo Guidance Computer) começou a exibir alarmes de erro, especificamente os códigos 1202 e 1201. Esses erros indicavam uma sobrecarga de processamento, ou seja, o computador estava recebendo mais tarefas do que conseguia processar.
Causa do problema:
O problema foi causado por um radar de acoplagem que, por engano, permaneceu ligado durante a descida. Isso gerou dados extras e sobrecarregou o computador.
Como o software evitou um desastre:
Graças ao design inteligente do software desenvolvido pela equipe de Margaret Hamilton, o sistema foi programado para priorizar tarefas essenciais automaticamente. Dessa forma, o computador descartou processos menos importantes e continuou executando apenas as funções críticas para a alunissagem, permitindo que Neil Armstrong e Buzz Aldrin completassem, manualmente, o pouso com segurança.
Se não fosse por esse design, o computador poderia ter travado ou exigido um reinício, forçando o cancelamento do pouso. Esse episódio comprovou a robustez do software da Apollo e consolidou a importância do trabalho de Margaret Hamilton na história da computação e da exploração espacial.
O reconhecimento tardio
Em 22 de novembro de 2016, Margaret Hamilton recebeu a Medalha Presidencial da Liberdade, a mais alta condecoração civil dos Estados Unidos, entregue pelo então presidente Barack Obama.
Ela foi reconhecida por seu trabalho pioneiro na engenharia de software e por sua contribuição fundamental para o sucesso das missões Apollo. Durante a cerimônia, Obama destacou sua importância ao afirmar que Hamilton foi responsável por garantir que o software do Apollo Guidance Computer (AGC) permitisse que os astronautas chegassem à Lua e voltassem em segurança.
Uma das imagens mais icônicas desse reconhecimento é Margaret Hamilton sorrindo ao lado de Barack Obama. Esse prêmio simbolizou o reconhecimento tardio, mas merecido, de seu impacto na história da computação e da exploração espacial.
A NASA disponibilizou o código fonte do AGC usado na Apollo 11
O código fonte foi digitalizado e publicado no GitHub por um ex-estagiário da NASA chamado Chris Garry, em 2016.
Acesse aqui:
https://github.com/chrislgarry/Apollo-11
O código foi originalmente escrito em Assembly para o processador do AGC, que tinha apenas 2 KB de RAM e 36 KB de memória fixa. Ele contém comentários interessantes, incluindo algumas piadas da equipe de programadores do MIT.
Detalhes da linguagem:
- O Assembly usado era um "dialeto" personalizado chamado AGC4 Assembly, desenvolvido para o processador do AGC.
- O AGC era uma máquina de palavra de 15 bits, com instruções altamente otimizadas devido às limitações de hardware.
- O código era escrito em listagens de código fonte impressas em papel perfurado e depois convertido para o formato que o computador entendia.
Curiosidades sobre o código:
- Ele contém comentários engraçados dos programadores do MIT Instrumentation Laboratory.
- Um dos arquivos faz referência a "BURN_BABY_BURN", uma piada interna sobre a sequência de ignição do motor.
Um vídeo interessante sobre esses episódios pode ser visto aqui: