De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Projeto Apollo - quando hardware e software se tornaram uma coisa só

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 23 de maio de 2026

Quando pensamos em software hoje, imaginamos algo dinâmico, mutável, em constante evolução. Publicamos uma versão, corrigimos na seguinte, ajustamos em produção, refinamos continuamente. Existe uma espécie de conforto implícito nessa flexibilidade: se algo der errado, sempre haverá uma oportunidade de corrigir depois.

No Projeto Apollo, essa lógica simplesmente não se aplicava. O software que guiaria uma nave até a Lua precisava nascer pronto. E é aqui que entramos em um dos aspectos mais fascinantes de toda a engenharia da missão: a forma como o código era armazenado.

1024 bit core memory module | Fonte: Jonathan Ward, Wikimedia Commons
1024 bit core memory module | Fonte: Jonathan Ward, Wikimedia Commons

Este é o terceiro artigo da série sobre o Projeto Apollo e o software que tornou possível levar o homem à Lua. Para entender o nível de compromisso exigido naquela época, é preciso olhar para dentro do Apollo Guidance Computer e compreender como o software realmente existia ali.

A memória do sistema era dividida em duas partes. Uma pequena área de memória volátil, utilizada para cálculos em tempo real, e uma memória permanente onde residia o programa principal da missão. Essa memória permanente era chamada de core rope memory, e o que a torna extraordinária não é apenas sua função, mas a forma como era construída.

O código não era simplesmente gravado em um dispositivo eletrônico. Ele era incorporado fisicamente à estrutura do hardware. Pequenos núcleos de ferrite eram atravessados por fios de cobre, e a maneira como esses fios eram entrelaçados definia os bits do programa. Quando o fio passava por dentro do núcleo, representava um valor; quando contornava o núcleo, representava outro. Cada instrução era, literalmente, uma decisão materializada em cobre.

Esse processo exigia um nível de precisão impressionante. A fabricação dessas memórias era realizada manualmente por equipes altamente especializadas, muitas vezes compostas por mulheres com experiência em trabalhos de tecelagem e montagem de alta precisão. Elas transformavam listagens de código em estruturas físicas, fio por fio, seguindo padrões extremamente rigorosos. Um único erro nesse processo não seria um detalhe técnico: seria uma falha incorporada permanentemente ao sistema.

Esse contexto muda completamente a forma como pensamos sobre desenvolvimento de software. Quando não existe a possibilidade de atualização posterior, cada decisão passa a carregar um peso diferente. O código deixa de ser algo provisório e passa a ser uma peça final, imutável, parte integrante de um sistema que não admite revisões após o lançamento.

Isso explica o nível de disciplina adotado pelas equipes envolvidas. O processo de desenvolvimento era acompanhado por revisões minuciosas, simulações extensivas e uma preocupação constante com cenários extremos. Não se tratava apenas de fazer o sistema funcionar em condições ideais, mas de garantir que ele continuaria operando mesmo diante de situações inesperadas.

Essa mentalidade contrasta fortemente com a forma como muitos sistemas são desenvolvidos hoje. Em ambientes onde a atualização contínua é possível, é comum aceitar imperfeições iniciais com a expectativa de melhoria ao longo do tempo. No contexto da Apollo, essa abordagem simplesmente não existia. O sistema precisava ser confiável desde o primeiro instante, porque não haveria um segundo.

O que impressiona não é apenas o fato de que conseguiram, mas como conseguiram. A combinação de engenharia rigorosa, processos bem definidos e um respeito profundo pelas limitações técnicas criou um ambiente onde a qualidade não era negociável. O software não era algo separado do hardware; era parte dele, incorporado de forma inseparável.

Essa história nos leva a uma reflexão inevitável. Em um mundo onde tudo pode ser atualizado a qualquer momento, será que não perdemos parte dessa disciplina? Será que a possibilidade de corrigir depois não nos torna, em alguns casos, menos cuidadosos agora?

Se o seu código fosse transformado em algo físico, impossível de alterar depois de pronto, como você escreveria cada linha?

No próximo artigo, vamos acompanhar o momento em que todo esse esforço foi colocado à prova. Durante o pouso da missão Apollo 11, o computador começou a emitir alarmes inesperados e a forma como o sistema reagiu se tornaria um dos maiores exemplos de engenharia resiliente da história.



Veja a relação completa dos artigos de Rubens Queiroz de Almeida