segunda-feira, 21 de abril de 2025

Programa Voyager

Pessoal,


Este post está prometido há um tempão e hoje eu vim pagar a promessa! Esta série das missões robóticas ao espaço começou lá em 2020 e são cinco missões no total. As duas primeiras, Ranger e Marine, estão aqui; as duas seguintes, Surveyor e Viking, estão aqui.


O "Planetary Grand Tour", com as duas sondas visitando os gigantes gasosos

Programa Voyager: Exploração Cósmica Sem Fronteiras

O Programa Voyager, conduzido pela NASA, é uma das façanhas mais extraordinárias da exploração espacial, com as sondas Voyager 1 e Voyager 2 redefinindo nosso entendimento do Sistema Solar e do espaço interestelar. Lançadas em 1977, essas espaçonaves aproveitaram um raro alinhamento planetário para visitar Júpiter, Saturno, Urano e Netuno, e hoje continuam a operar como as únicas sondas no meio interestelar.

Criação e Objetivos do Programa Voyager

O Programa Voyager nasceu no final dos anos 1960, inspirado pela descoberta do engenheiro Gary Flandro, do Jet Propulsion Laboratory (JPL), de um alinhamento planetário raro, que ocorre a cada 175 anos. Esse alinhamento permitia que uma espaçonave visitasse Júpiter, Saturno, Urano e Netuno usando a assistência gravitacional, uma técnica que utiliza a gravidade planetária para impulsionar a trajetória, economizando combustível.


Inicialmente concebido como o "Planetary Grand Tour" (veja mais aqui), o programa foi reduzido por restrições orçamentárias, mas aprovado em 1972 com um orçamento de US$ 865 milhões, cobrindo construção, lançamento e operações até o encontro com Netuno, além de US$ 30 milhões para a Voyager Interstellar Mission (VIM).

Os objetivos primários eram:

  • Estudar os gigantes gasosos Júpiter e Saturno, suas atmosferas, campos magnéticos, sistemas de anéis e luas.

  • Explorar, se viável, os gigantes de gelo Urano e Netuno, até então pouco conhecidos.

  • Coletar dados sobre partículas, campos magnéticos e ondas no ambiente interplanetário.

  • Após os sobrevoos planetários, iniciar a VIM para estudar a heliosfera, a heliopausa e o meio interestelar, medindo as propriedades do espaço além da influência do Sol.

A decisão de lançar duas sondas foi estratégica, garantindo redundância contra falhas e permitindo trajetórias complementares para maximizar a cobertura científica. As Voyager foram construídas com base em tecnologias das missões Mariner e Viking, mas adaptadas com inovações específicas, como os RTGs e instrumentos otimizados para o espaço profundo.

Trajetórias das Sondas

As trajetórias das Voyager foram cuidadosamente planejadas para aproveitar o alinhamento planetário e otimizar os encontros planetários. Cada sonda seguiu um caminho distinto, conhecido como JST (Júpiter-Saturno-Titã) para Voyager 1 e JSX (Júpiter-Saturno-Urano-Netuno) para Voyager 2.

Decolagem do Titan III Centaur levando a Voyager 2, em 30/08/1977

  • Voyager 1:

    • Lançamento: 5 de setembro de 1977, a bordo de um foguete Titan IIIE-Centaur, a partir de Cabo Canaveral, Flórida.

    • Trajetória: Otimizada para sobrevoos rápidos de Júpiter (5 de março de 1979, a 349.000 km do planeta) e Saturno (12 de novembro de 1980, a 124.000 km), com ênfase no estudo de Titã, a maior lua de Saturno, devido à sua atmosfera densa. O sobrevoo de Titã, a 4.000 km, desviou a sonda para fora do plano da eclíptica, impossibilitando visitas a Urano e Netuno.

    • Pós-Saturno: Direcionada ao espaço interestelar, a Voyager 1 cruzou a heliopausa em 25 de agosto de 2012, a 121 unidades astronômicas (UA, ~18,1 bilhões de km) da Terra, tornando-se o primeiro objeto humano no meio interestelar. Em abril de 2025, está a 167,34 UA, movendo-se a 61.198 km/h em direção à constelação de Ofiúco.

    • Marco: Primeira sonda a alcançar o espaço interestelar.

  • Voyager 2:

    • Lançamento: 20 de agosto de 1977, também com um Titan IIIE-Centaur.

    • Trajetória: Visitou Júpiter (9 de julho de 1979, a 570.000 km), Saturno (25 de agosto de 1981, a 101.000 km), Urano (24 de janeiro de 1986, a 81.500 km) e Netuno (25 de agosto de 1989, a 4.800 km). A trajetória JSX foi ajustada após o sucesso da Voyager 1, permitindo a exploração dos gigantes de gelo.

    • Pós-Netuno: Seguiu para o espaço interestelar, cruzando a heliopausa em 5 de novembro de 2018, a 119 UA. Em 2025, está a 137 UA, movendo-se a 55.347 km/h em direção à constelação de Pavo.

    • Marco: Única sonda a visitar Urano e Netuno, completando o "Grand Tour".

As trajetórias foram ajustadas com propulsores de hidrazina, usando a assistência gravitacional para acelerar as sondas e direcioná-las aos alvos. Por exemplo, o sobrevoo de Júpiter aumentou a velocidade da Voyager 1 em 16 km/s, reduzindo o tempo de viagem para Saturno. A escolha de trajetórias distintas maximizou a diversidade de dados coletados, com a Voyager 1 priorizando Titã e a Voyager 2 explorando os planetas mais distantes.

Design das Sondas

As Voyager 1 e Voyager 2 são idênticas em design, construídas pelo JPL para suportar longas missões em ambientes hostis. Cada sonda pesa 815 kg (733 kg atuais, após consumo de propelente - em 2017 estimava-se que a Voyager 1 ainda teria 14kg de hidrazina e a Voyager 2 teria 23kg de hidrazina) e possui um barramento central decagonal de 1,8 m de diâmetro, feito de alumínio, que abriga os sistemas eletrônicos. O design incorpora elementos das missões Mariner e Viking, mas foi adaptado para os desafios do espaço profundo. 




  • Estrutura:

    • Uma antena parabólica de alto ganho (3,7 m de diâmetro) para comunicação com a Terra.

    • Braços extensíveis: um de 13 m para o magnetômetro, minimizando interferências, e outro de 10 m com antenas de rádio para o Planetary Radio Astronomy (PRA).

    • Plataforma de varredura móvel para alinhar câmeras e espectrômetros aos alvos.

    • 16 propulsores de hidrazina (0,9 N cada) para ajustes de trajetória e controle de atitude.

  • Características de Robustez:

    • Sistemas redundantes para computadores, transmissores e receptores, garantindo operação mesmo após falhas.

    • Proteção contra radiação, com blindagem para suportar os intensos cinturões de radiação de Júpiter.

    • Sensores de navegação, incluindo o Canopus Star Tracker e giroscópios, para manter a orientação.

  • Disco Dourado:

    • Cada sonda carrega o "Voyager Golden Record", um disco de cobre banhado a ouro com 115 imagens, sons da natureza, músicas de diversas culturas e saudações em 55 idiomas, projetado por Carl Sagan como uma mensagem para possíveis civilizações extraterrestres.



Esses discos valem um pouco mais de discussão.

Os "Golden Records" das Voyagers contêm instruções gravadas em suas capas para que possíveis descobridores extraterrestres compreendam como reproduzir seu conteúdo. Abaixo está uma explicação detalhada dessas instruções, que foram cuidadosamente desenhadas para serem universais e compreensíveis por uma inteligência não humana:

1. Material e Contexto:
    O disco é feito de cobre banhado a ouro, com 12 polegadas de diâmetro, projetado para durar bilhões de anos no vácuo espacial. Ele contém sons, imagens e mensagens da Terra, representando a humanidade e sua diversidade cultural.

2. Instruções Visuais na Capa:
  • Diagrama do Estilete e Reprodução: A capa mostra um desenho do toca-discos e do estilete (a agulha) que deve ser usado para tocar o disco. O estilete está ilustrado em duas posições: uma para mostrar como ele deve ser encaixado e outra para indicar sua posição durante a reprodução.
  • Velocidade de Rotação: Há um símbolo indicando a velocidade correta de rotação do disco (16⅔ rotações por minuto). Isso é reforçado por um diagrama que usa o tempo de transição de um átomo de hidrogênio (0,7 bilionésimos de segundo) como unidade de tempo universal, permitindo que a velocidade seja calculada.
  • Formato do Sinal: Um diagrama explica que o conteúdo do disco é codificado em sinais analógicos. Ele mostra como as ondas sonoras e as imagens (convertidas em sinais de vídeo) são gravadas em forma de sulcos no disco. As instruções indicam que o sinal deve ser lido em uma sequência linear.


3. Decodificação das Imagens:
  • Formato de Vídeo: As imagens são codificadas em 512 linhas verticais, e a instrução inclui um exemplo de como o sinal de vídeo deve ser interpretado para reconstruir uma imagem. Um círculo é usado como imagem de teste: se a imagem for reconstruída corretamente, o círculo aparecerá na proporção correta.
  • Primeira Imagem como Chave: A primeira imagem gravada no disco é um círculo perfeito, servindo como uma verificação para garantir que o sistema de reprodução está funcionando corretamente.
4. Localização da Terra:
    A capa inclui um mapa estelar que mostra a posição do Sol em relação a 14 pulsares (estrelas de nêutrons que emitem pulsos regulares). Cada linha indica a distância e o período dos pulsos desses pulsares, usando a mesma unidade de tempo do átomo de hidrogênio. Isso permite que uma civilização avançada triangule a posição do nosso sistema solar na galáxia.

5. Símbolos Universais:
    As instruções evitam linguagem humana e usam símbolos baseados em princípios científicos universais, como a física do hidrogênio e a geometria. Por exemplo, o diagrama do átomo de hidrogênio (com seus dois estados de spin) é usado como base para todas as medições de tempo e distância.

6. Conteúdo do Disco:
    Embora as instruções não detalhem o conteúdo, elas garantem que, se o disco for reproduzido corretamente, o ouvinte terá acesso a:
  • Sons: Saudações em 55 idiomas, sons naturais (como vento, trovões e animais) e uma seleção de músicas de diversas culturas.
  • Imagens: 115 imagens codificadas, incluindo fotografias da Terra, diagramas científicos e representações da vida humana.
  • Mensagem: Uma mensagem gravada do então presidente dos EUA, Jimmy Carter, e do secretário-geral da ONU, Kurt Waldheim.
7. Propósito das Instruções:
    As instruções foram desenhadas por uma equipe liderada por Carl Sagan para serem o mais universais possível, assumindo que qualquer civilização capaz de encontrar e recuperar o disco teria conhecimento avançado de física e matemática. O objetivo é não apenas permitir a reprodução do disco, mas também fornecer um contexto sobre quem somos e onde estamos no universo.

8. Controversas e preocupações:
    A inclusão do mapa estelar no Disco de Ouro das Voyagers, indicando a localização da Terra em relação a 14 pulsares, gerou debates desde seu planejamento em 1977, com preocupações centradas em segurança, ética e as implicações de revelar nossa posição a possíveis civilizações extraterrestres.

Um dos principais temores era que o mapa permita a uma civilização avançada e hostil localizar a Terra, funcionando como um "farol" cósmico. Esse risco, levantado por figuras como Stephen Hawking, compara o contato com extraterrestres a encontros históricos entre culturas tecnologicamente díspares, como a chegada dos europeus nas Américas. No entanto, Carl Sagan e a equipe do projeto argumentaram que sinais de rádio terrestres, como transmissões de TV, já tornam a Terra detectável, minimizando o risco adicional do disco.

Outro ponto de controvérsia era a questão ética de revelar nossa localização sem consenso global, já que a decisão foi tomada por um pequeno grupo de cientistas e pela NASA, sem consulta ampla, o que alguns consideraram uma abordagem elitista. Sagan defendeu que o disco era um gesto simbólico, com baixa probabilidade de ser encontrado devido ao vasto espaço interestelar e à lenta velocidade das sondas.

Havia também preocupações técnicas sobre a precisão do mapa estelar a longo prazo, já que pulsares desaceleram e estrelas se movem, podendo tornar o mapa obsoleto ou impreciso em milhões de anos. A equipe contrargumentou que a escolha de pulsares garante estabilidade por longos períodos, e a unidade de tempo baseada no átomo de hidrogênio permite ajustes.

Filosoficamente, a decisão toca no Paradoxo de Fermi, que questiona a ausência de contato extraterrestre apesar da provável existência de vida na galáxia. Alguns sugerem que civilizações avançadas adotam o "silêncio cósmico" para evitar detecção, e revelar nossa posição poderia violar essa cautela, conforme a "hipótese do zoológico". Sagan, otimista, acreditava que civilizações capazes de encontrar o disco seriam curiosas ou benevolentes, vendo o projeto como uma chance de diálogo cósmico.

Por fim, havia um impacto psicológico e cultural, com a exposição da Terra ao desconhecido gerando ansiedade em alguns, amplificada por narrativas de ficção científica sobre contatos ameaçadores. Ainda assim, o Disco de Ouro é amplamente visto como uma celebração da humanidade, simbolizando esperança e curiosidade, apesar dos riscos.

As controvérsias refletem o equilíbrio entre a ambição de explorar e a prudência diante do desconhecido, mas a chance de o disco ser encontrado permanece mínima, tornando-o mais um símbolo do que uma ameaça prática.

O conteúdo pode ser visto aqui e aqui. Recomendo muitíssimo que vejam!

O design foi um equilíbrio entre robustez, eficiência energética e capacidade científica, permitindo que as sondas operassem por quase cinco décadas, muito além da missão primária de cinco anos.

Instrumentos Científicos

Cada Voyager carrega 10 instrumentos científicos, além da antena de rádio, totalizando 105 kg, projetados para estudar planetas, luas, anéis, campos magnéticos, partículas e ondas. Abaixo está a lista completa, com descrições detalhadas e status em 2025.



  • Imaging Science Subsystem (ISS):

    • Duas câmeras (grande angular de 200 mm e estreita de 1500 mm) com sensores vidicon de 800x800 pixels para imagens visíveis. Capturou fotos icônicas, como o "Pale Blue Dot". Desligadas em 14/02/1990 (Voyager 1) e 10/10/1989-05/12/1989 (Voyager 2) para economizar energia.

  • Infrared Interferometer Spectrometer and Radiometer (IRIS):

    • Mediu temperaturas e composições químicas de atmosferas planetárias, como metano em Titã. Desligado em 07/12/2011 (Voyager 1) e 12/11/1998 (Voyager 2).

  • Ultraviolet Spectrometer (UVS):

    • Detectou luz ultravioleta para estudar atmosferas, auroras e processos físicos. Ainda operacional na Voyager 1 (plataforma fixa), mas desligado na Voyager 2 em 1998.

  • Photopolarimeter Subsystem (PPS):

    • Analisou propriedades de partículas atmosféricas e superfícies por polarização da luz. Desligado em 1980 (Voyager 1) e 1991 (Voyager 2) devido a degradação.

  • Cosmic Ray Subsystem (CRS):

    • Detecta partículas de alta energia do Sol, planetas e fontes galácticas. Ainda operacional em ambas as sondas, crucial para estudar o meio interestelar.

  • Low-Energy Charged Particles (LECP):

    • Mede partículas de baixa energia em plasmas planetários e interplanetários. Ainda operacional, fornecendo dados sobre ventos solares.

  • Magnetometer (MAG):

    • Estuda campos magnéticos planetários e interestelares com dois sensores triaxiais (baixo e alto campo). Operacional, medindo o campo magnético interestelar.

  • Plasma Subsystem (PLS):

    • Analisa plasma de baixa energia e vento solar, medindo densidade e velocidade. Desligado em 15/01/2008 (Voyager 1) e 21/02/2008 (Voyager 2) devido a restrições de energia.

  • Plasma Wave Subsystem (PWS):

    • Detecta ondas de plasma e interações onda-partícula, como as causadas por relâmpagos em Júpiter. Operacional na Voyager 1, mas desligado na Voyager 2 em 2024 para economizar energia.

  • Planetary Radio Astronomy (PRA):

    • Estudou emissões de rádio planetárias, como as de Júpiter (kilométricas e hectométricas). Desligado em 19/04/2016 (Voyager 1) e 12/11/1998 (Voyager 2).

  • Radio Science Subsystem (RSS):

    • Usou o sistema de comunicação para estudar atmosferas, anéis e gravidade planetária por refração de sinais. Não usado desde Netuno (1989).

Os instrumentos foram projetados para complementar uns aos outros, permitindo medições simultâneas de fenômenos complexos, como campos magnéticos e partículas energéticas, durante os sobrevoos planetários.

Computadores de Bordo e Processamento de Dados

As Voyager possuem três sistemas de computadores redundantes, totalizando seis por sonda, projetados para robustez em vez de velocidade. Eles operam sem microprocessadores modernos, usando circuitos integrados personalizados e memória limitada, mas robustos e extremamente confiáveis.

  • Computer Command Subsystem (CCS):

    • Função: Gerencia comandos da Terra, decodificação, correção de falhas e sequenciamento de operações.

    • Memória: 69,63 KB (4.096 palavras de 18 bits), dividida entre volátil e não volátil. Permite reprogramação em voo para novas rotinas, como as usadas na VIM.

    • Software: Escrito em Fortran 5, portado para Fortran 77, com atualizações em C. Não há sistema operacional moderno; o software é composto por rotinas fixas e programas específicos.

    • Curiosidade: O CCS da Voyager 2 detém o recorde do Guinness de maior período de operação contínua de um computador (desde 20/08/1977).

  • Flight Data Subsystem (FDS):

    • Função: Coleta, formata e armazena dados científicos e de engenharia. Gerencia o Digital Tape Recorder (DTR) com 64 MB de capacidade, usado quando a transmissão em tempo real não é possível.

    • Desafios: Em 2023, a Voyager 1 sofreu corrupção de 3% da memória do FDS, exigindo a remoção de código obsoleto (como rotinas de Júpiter) para restaurar operações. A baixa taxa de dados (160 bits/s) torna a reprogramação lenta, com atualizações levando semanas.

  • Attitude and Articulation Control Subsystem (AACS):

    • Função: Controla a orientação da sonda, apontando a antena para a Terra e a plataforma de varredura para alvos.

    • Design: Baseado no CCS das Viking, com palavras de 18 bits (12 bits para endereços, 6 bits para códigos de operação). Usa giroscópios e sensores estelares, como o Canopus Star Tracker.

Processamento de Dados:

  • Os dados científicos são coletados pelos instrumentos, formatados pelo FDS e armazenados no DTR ou transmitidos diretamente. Durante os encontros planetários, a taxa de transmissão atingia 7,2 kbps (X-banda), mas hoje é limitada a 160 bits/s devido à distância e à potência reduzida.

  • A telemetria inclui 139 parâmetros de engenharia (como temperatura e voltagem) e dados científicos, enviados ao Deep Space Network (DSN). Em terra, os dados são processados em sistemas modernos, mas a bordo, o processamento é mínimo, com compressão básica para imagens.

  • A reprogramação em voo foi essencial para a longevidade. Por exemplo, após Netuno, o software da Voyager 2 foi atualizado para priorizar medições interestelares, como as do CRS e MAG.

A ausência de um sistema operacional complexo reduz a sobrecarga, e a redundância garante operação mesmo após falhas, como a perda de um receptor de rádio na Voyager 2 em 1978 e corrupção de memória na Voyager 1 em 2023.

Sistema de Energia

O gerador termoelétrico de radioisótopos de centenas de watts ou Multihundred-watt
radioisotope thermoelectric generator (MHW RTG)

As Voyager são alimentadas por três geradores termoelétricos de radioisótopos (RTGs), que convertem o calor do decaimento de plutônio-238 em eletricidade. Cada RTG produzia 157,7 watts no lançamento, totalizando 470 watts por sonda. O decaimento reduz a potência em ~4 watts/ano, e em 2025, as sondas operam com cerca de 225 watts.

  • Gerenciamento de Energia:

    • Instrumentos foram desligados progressivamente para economizar energia. Por exemplo, as câmeras foram desativadas após os sobrevoos planetários, e o PWS da Voyager 2 foi desligado em 2024.

    • O sistema de aquecimento, essencial para manter os componentes a temperaturas operacionais (-79°C a 76°C), consome energia significativa. Sensores de temperatura (RTDs) monitoram 177 pontos em cada sonda.

    • A expectativa é manter pelo menos um instrumento ativo até 2027-2030, quando a potência cair abaixo do mínimo operacional (~200 watts), encerrando a missão.

  • Desafios:

    • A baixa potência exige priorização de instrumentos. O CRS, LECP, MAG e PWS (Voyager 1) são mantidos ativos por sua relevância na VIM.

    • Em 2019, a Voyager 2 enfrentou um pico de consumo que desligou instrumentos temporariamente, exigindo intervenção manual do DSN.

Os RTGs foram uma inovação crítica, permitindo missões de longa duração onde painéis solares seriam ineficazes devido à distância do Sol.

Missões do Programa Voyager

O Programa Voyager foi dividido em duas fases principais:

  • Voyager Planetary Mission (1977-1989):

    • Focada nos sobrevoos de Júpiter, Saturno, Urano e Netuno. A Voyager 1 completou sua missão primária em Saturno (1980), enquanto a Voyager 2 estendeu a exploração até Netuno (1989).

    • Encontros planetários:

      • Júpiter: Voyager 1 (05/03/1979), Voyager 2 (09/07/1979).

      • Saturno: Voyager 1 (12/11/1980), Voyager 2 (25/08/1981).

      • Urano: Voyager 2 (24/01/1986).

      • Netuno: Voyager 2 (25/08/1989).

  • Voyager Interstellar Mission (VIM, 1990-presente):

    • Iniciada após Netuno, a VIM estuda a heliosfera, a heliopausa e o meio interestelar. Dividida em três fases:

      • Termination Shock Phase: Até a zona de choque de terminação (~2004 para Voyager 1, ~2007 para Voyager 2).

      • Heliosheath Exploration Phase: Até a heliopausa (2012 para Voyager 1, 2018 para Voyager 2).

      • Interstellar Mission Phase: Dados sobre o meio interestelar, com foco em partículas cósmicas, campos magnéticos e ondas de plasma.


As missões foram planejadas para cinco anos, mas a robustez das sondas permitiu quase 50 anos de operação, com dados ainda sendo recebidos em 2025.

Principais Descobertas

As Voyager 1 e 2 transformaram nosso conhecimento do Sistema Solar e do espaço interestelar. Abaixo, as descobertas mais significativas, organizadas por sonda e planeta.

Voyager 1

  • Júpiter (1979):

    • Descobriu um sistema de anéis finos, até então desconhecido, com partículas de poeira.

    • Identificou vulcanismo ativo na lua Io, com plumas eruptivas de até 300 km, o primeiro caso de vulcanismo extraterrestre.

    • Descobriu duas novas luas: Thebe e Metis.

    • Observou a Grande Mancha Vermelha como uma tempestade anticiclônica com ventos de 432 km/h e mediu padrões climáticos complexos.

  • Saturno (1980):

    • Revelou estruturas intricadas nos anéis, incluindo tranças, dobras e "raios" causados por interações eletrostáticas.

    • Descobriu cinco novas luas (Atlas, Prometheus, Pandora, Calypso, Telesto) e confirmou o anel G.

    • Estudou a atmosfera de Titã, rica em nitrogênio e metano, sugerindo condições químicas prebióticas.

  • Espaço Interestelar (2012):

    • Cruzou a heliopausa em 25/08/2012, confirmando a transição para o meio interestelar.

    • Descobriu que a heliosfera bloqueia ~70% da radiação cósmica galáctica.

    • Detectou "bolhas magnéticas" na heliopausa e nenhuma mudança significativa na direção do campo magnético solar.

Voyager 2

  • Júpiter (1979):

    • Confirmou o vulcanismo em Io e observou relâmpagos na atmosfera joviana.

    • Descobriu uma 14ª lua, Adrastea.

  • Saturno (1981):

    • Fotografou luas como Hiperion (superfície esponjosa), Encélado (superfície brilhante), Tétis e Febe, revelando diversidade geológica.

    • Identificou "luas pastoras" (Prometheus e Pandora) que estabilizam os anéis.

  • Urano (1986):

    • Descobriu 10 novas luas, incluindo Puck e Perdita (identificada em 1999 em imagens arquivadas).

    • Revelou um campo magnético desalinhado (inclinado 59° em relação ao eixo de rotação), com auroras amplamente distribuídas.

    • Observou dois novos anéis e mediu uma atmosfera composta por hidrogênio, hélio e metano.

  • Netuno (1989):

    • Descobriu seis novas luas (Proteus, Larissa, Despina, Galatea, Thalassa, Naiad) e quatro anéis completos, com arcos brilhantes.

    • Identificou a Grande Mancha Escura, uma tempestade com ventos de 2.400 km/h, e o "Scooter", uma nuvem em movimento rápido.

    • Confirmou que o metano absorve luz vermelha, dando a Netuno sua cor azul.

  • Espaço Interestelar (2018):

    • Cruzou a heliopausa em 05/11/2018, detectando um aumento abrupto em partículas cósmicas e uma queda no vento solar.

    • Forneceu dados complementares sobre a interação entre a heliosfera e o meio interestelar.

Comunicação com a Terra

As Voyager se comunicam com a Terra por meio do NASA Deep Space Network (DSN), usando antenas de 70 m e 34 m em Goldstone (EUA), Canberra (Austrália) e Madri (Espanha). A antena parabólica de 3,7 m de cada sonda transmite sinais em duas bandas:

  • S-Banda (2,3 GHz): Usada para dados de engenharia a 40 bits/s e comandos de uplink a 16 bits/s. Desativada após os encontros planetários.

  • X-Banda (8,4 GHz): Transmite dados científicos e de engenharia, com taxas de até 7,2 kbps durante sobrevoos e 160 bits/s atualmente.

  • Potência do Sinal: O transmissor de 22,4 watts gera sinais que, a 24 bilhões de km, chegam à Terra com 0,1 bilionésimo de watt. O DSN usa amplificação de sinal e combinação de antenas para captar esses sinais fracos.

  • Latência: Em 2025, os sinais da Voyager 1 levam 22,5 horas para chegar à Terra, e os da Voyager 2, 19 horas, devido às suas distâncias.

  • Desafios: Em 2023, a Voyager 2 perdeu alinhamento da antena, mas um comando de alta potência do DSN e um reset autônomo do AACS restauraram a comunicação. O AACS usa sensores estelares e giroscópios para manter a antena apontada para a Terra.


O Programa Voyager é um marco da engenhosidade humana, com as sondas Voyager 1 e Voyager 2 superando todas as expectativas ao operar por quase 50 anos. Aproveitando um alinhamento planetário único, elas revelaram os segredos de Júpiter, Saturno, Urano e Netuno, desde vulcões em Io até tempestades em Netuno, e hoje exploram o meio interestelar, fornecendo dados únicos sobre a heliosfera e além. Seu design robusto, com RTGs, computadores redundantes e instrumentos versáteis, permitiu uma longevidade excepcional, enquanto a comunicação via DSN demonstra a precisão da engenharia espacial. Carregando o Disco Dourado, as Voyager são embaixadoras da humanidade, um legado que pode perdurar por bilhões de anos. Até que sua energia se esgote, por volta de 2027-2030, elas continuarão a inspirar e ensinar, redefinindo os limites da exploração cósmica.

Rodando um Mainframe de US$ 8 MILHÕES no seu computador!

Pessoal,


Quando pensamos em tecnologia, é fácil imaginar smartphones brilhantes ou servidores em nuvem, mas, nos anos 1970, o mundo girava em torno de máquinas colossais que ocupavam salas inteiras, com fitas magnéticas girando e luzes piscando como estrelas em um céu de metal. Esses eram os mainframes, e o IBM System/370, lançado em 1970, foi um marco que redefiniu a computação empresarial.

Este texto é um pequeno resumo da história, arquitetura e legado do System/370. Vamos explorar seus processadores, métodos de entrada e gravação de dados, sistemas operacionais revolucionários como OS/MVS e VM/370, linguagens como COBOL e Fortran que ainda movem bancos no Brasil, e como reviver essa era com o emulador Hercules. As fontes para mais leitura estarão no final do post.


O Coração Pulsante: Processadores do System/370

No centro do IBM System/370 estava sua CPU, uma maravilha de engenharia que equilibrava potência e confiabilidade em uma era de transistores e placas de circuito soldadas à mão.



A CPU do System/370 operava em uma arquitetura CISC (Complex Instruction Set Computing) de 32 bits, um avanço significativo sobre os 24 bits do System/360. Com uma frequência de 1 a 2 MHz, ela entregava cerca de 0,5 MIPS (milhões de instruções por segundo), uma fração dos 700 MIPS de um Intel Core i9-13900K moderno, mas otimizada para tarefas empresariais como processamento de transações bancárias.

A arquitetura CISC permitia que o System/370 executasse instruções complexas em uma única operação, reduzindo a carga sobre o software. Seu conjunto de instruções, com cerca de 200 comandos, cobria operações aritméticas (ex.: ADD, SUB), lógicas (ex.: AND, OR), manipulação de strings (ex.: MVC - Move Character) e controle de entrada/saída (ex.: SIO - Start I/O). Um exemplo prático em assembly para transferir dados de clientes era:

MVC   OUTPUT(80),INPUT   # Move 80 bytes de INPUT para OUTPUT
AR    TOTAL,SALARY       # Adiciona SALARY ao registrador TOTAL

Essa instrução MVC era crucial em bancos, movendo registros de contas entre buffers de memória. A CPU contava com 16 registradores de propósito geral (32 bits cada) e 4 registradores de ponto flutuante, ideais para cálculos financeiros e científicos. A construção física usava transistores bipolares em placas de circuito multicamadas, conectadas por wire-wrap, uma técnica onde fios eram enrolados em pinos para conexões robustas. Essas placas, alojadas em gabinetes refrigerados por ar forçado, suportavam o calor gerado por milhares de componentes.


Olá, eu sou o IBM Micro/370! Muito prazer!

O desempenho era modesto, mas a eficiência vinha de otimizações como microcódigo, que traduzia instruções complexas em operações básicas, e canais de I/O dedicados, que descarregavam o processamento de periféricos (ex.: discos, fitas) da CPU. Comparado a processadores modernos, como o AMD Ryzen ou o IBM Telum (usado no z16), o System/370 era lento, mas sua arquitetura era projetada para confiabilidade absoluta, essencial em ambientes onde um erro podia custar milhões. Um painel de controle, com luzes e interruptores, permitia que operadores monitorassem a CPU em tempo real, uma visão icônica da era dos mainframes.


Entrada e Gravação de Dados: Uma Evolução Tecnológica

Nos anos 1960, interagir com um mainframe era quase um ritual. Cartões perfurados, retângulos de papel com furos codificados, eram o principal método de entrada. Cada cartão armazenava até 80 caracteres, representando uma linha de código ou um registro de dados. Para reforça: CADA CARTÃO ERA UMA LINHA DE CÓDIGO!!!Um programa de contabilidade exigia milhares de cartões, organizados em caixas e lidos por máquinas como a IBM 2540. Um erro de perfuração ou um cartão desalinhado podia travar uma tarefa, exigindo que operadores revisassem pilhas inteiras. Esse processo, embora trabalhoso, era padrão em universidades e empresas.

Sei lá qual comando estava neste cartão, talvez um PRINT "Oi"...



E você aí, reclamando do VS Code...

Com o System/370, a entrada de dados evoluiu para terminais de texto, como o IBM 3270, que revolucionaram a interação. Esses terminais, com teclados mecânicos e telas monocromáticas verdes, permitiam que operadores digitassem comandos e dados diretamente, conectados ao mainframe via linhas dedicadas. O 3270 usava um protocolo de blocos de dados, enviando telas inteiras (ex.: 24 linhas x 80 colunas) ao sistema, reduzindo a latência.

IBM 370/158 em 1975. E você aí reclamando que a sua tela não é 4k...

Essa interface era um salto em relação aos cartões, permitindo edição em tempo real e respostas rápidas. Nos anos 1980, os mainframes começaram a adotar interfaces gráficas (GUIs) baseadas em terminais X ou, mais tarde, navegadores web. Hoje, sistemas como o IBM z/OS oferecem portais web acessíveis via Chrome, mas o 3270 permanece em uso em bancos brasileiros, como o Itaú, para reduzir custos e torturar clientes e funcionários por sua simplicidade.

A gravação de dados também passou por transformações. Nos anos 1960, fitas magnéticas (ex.: IBM 3420) eram o padrão, armazenando dezenas de megabytes em rolos de 2.400 pés. O acesso era sequencial, o que tornava a busca de dados lenta.

Olá, eu sou o IBM 3420

O System/370 introduziu discos rígidos, como o IBM 3330, com 100 MB por unidade, usando cabeças magnéticas para ler/escrever em pratos giratórios. Um banco podia armazenar registros de clientes em um 3330 e acessá-los em milissegundos, um avanço revolucionário.

Olá, eu sou o IBM 3330

Nos anos 1980, discos como o IBM 3390 ofereceram gigabytes, e fitas de cartucho (ex.: IBM 3590) aumentaram a densidade. Hoje, mainframes como o IBM z16 usam SSDs corporativos com terabytes e integração com nuvem híbrida, processando dados a 100 GB/s. Essa evolução reflete a transição de mainframes isolados para sistemas integrados, mas o System/370 lançou as bases ao combinar discos e fitas em fluxos de trabalho eficientes.


Memórias ECC e Hot-Swapping: Pilares da Confiabilidade

A confiabilidade era o diferencial dos mainframes, e o System/370 brilhava com recursos como memórias ECC (Error-Correcting Code) e hot-swapping. A memória principal usava core memory, núcleos magnéticos que armazenavam bits com base em polaridade. Cada núcleo, do tamanho de um grão de areia, era threaded por fios para leitura/escrita, com tempos de acesso de 0,8 µs. Apesar de robusta, a core memory era vulnerável a erros causados por radiação ou picos elétricos. O ECC resolvia isso adicionando bits de paridade (ex.: 8 bits para 64 bits de dados), permitindo detectar e corrigir erros automaticamente. Por exemplo, se um bit de um registro financeiro fosse invertido, o ECC recalculava o valor correto, evitando falhas em transações bancárias.

O funcionamento do ECC no System/370 usava códigos Hamming, que calculavam paridades para cada grupo de bits. Se um erro de 1 bit ocorresse, o sistema identificava a posição exata e a corrigia; erros de 2 bits eram detectados, mas não corrigidos, acionando alertas. Esse recurso era vital em ambientes como bolsas de valores, onde um erro de memória podia corromper ordens de compra. Comparado a PCs modernos, que também usam ECC, o System/370 tinha algoritmos mais simples, mas suficientes para sua época. O IBM z16 leva o ECC ao extremo, corrigindo múltiplos erros com códigos quânticos (seja lá o que isso quer dizer, porque disconfio de qualquer um que use a palavra quântico).

O hot-swapping permitia substituir componentes sem desligar o sistema. No System/370, isso era possível graças a controladores redundantes e fontes de energia duplicadas. Se um disco IBM 3330 falhasse, o operador podia removê-lo e inserir outro, enquanto o mainframe redirecionava I/O para um canal reserva. O mesmo valia para placas de memória ou CPUs secundárias. Um exemplo prático: em um banco, um técnico substituía um módulo de memória defeituoso em minutos, sem interromper transações. Esse recurso exigia hardware modular e sistemas operacionais robustos, como o OS/MVS, que gerenciavam falhas dinamicamente.


Nos mainframes modernos, o hot-swapping é mais avançado, suportando CPUs virtuais e SSDs em clusters. Servidores como o Dell PowerEdge oferecem hot-swapping, mas com menos redundância que o z16, que pode substituir até nós inteiros em data centers. O System/370, com sua simplicidade, estabeleceu o padrão para esses sistemas, garantindo uptime de 99,999% (menos de 5 minutos de inatividade por ano). Realmente incrível!!!


Sistemas Operacionais: A Revolução da Virtualização

O IBM System/370 era mais que hardware; seus sistemas operacionais — OS/MVS, VM/370, e DOS/VS — transformaram-no em uma plataforma versátil. Esses sistemas, projetados para tarefas específicas, introduziram conceitos como memória virtual e virtualização, que moldaram a computação moderna.

O OS/MVS (Multiple Virtual Storage, veja mais aqui), era o pilar dos mainframes empresariais, usado por bancos, seguradoras e governos para processar transações massivas. Ele criava 255 espaços de endereçamento virtual, cada um com até 16 MB, divididos em páginas de 4 KB. Essa separação isolava programas, garantindo que um erro em um job (ex.: cálculo de impostos) não afetasse outro (ex.: transferências bancárias). O MVS gerenciava esses jobs via JCL (Job Control Language), uma linguagem de script que definia fluxos de trabalho. Um job típico para processar folha de pagamento era:

//PAYROLL JOB (ACCT),'CALC SALARY',CLASS=A
//STEP1 EXEC PGM=COBOLPGM
//SYSIN DD DSN=SALARY.DATA,DISP=SHR
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSN=OUTPUT.DATA,DISP=(NEW,CATLG)

O TSO (Time-Sharing Option) permitia interação em tempo real via terminais 3270.

O MVS suportava milhares de usuários simultâneos, algo impressionante para 2 MB de RAM física. Comparado ao Windows 11, que usa multitarefa preemptiva e interfaces gráficas, o MVS era menos intuitivo, exigindo comandos complexos. No entanto, sua eficiência em jobs batch superava o UNIX da época, que priorizava interatividade. O MVS evoluiu para o z/OS, usado em 2025 por bancos como o Bradesco para processar trilhões de transações.

O VM/370 (Virtual Machine, mais aqui) foi um marco na virtualização, décadas antes de ferramentas como VMware ou Proxmox. Ele consistia no CP (Control Program), um hypervisor que criava máquinas virtuais, e no CMS (Conversational Monitor System), um SO leve para interação. Cada VM podia rodar um sistema operacional diferente (ex.: MVS, DOS/VS) ou um CMS isolado.

O VM/370 permitia que um banco testasse um novo sistema de contabilidade em uma VM enquanto outra VM processava transações reais. O CP alocava recursos dinamicamente, priorizando VMs com base em carga. Com apenas 256 KB por VM, o sistema era eficiente, mas limitado por não suportar redes modernas ou GPUs, diferente do Proxmox, que gerencia milhares de VMs com live migration. O VM/370 inspirou hipervisores modernos, mas sua simplicidade garantia estabilidade, enquanto sistemas como Hyper-V enfrentam bugs em camadas complexas.

O DOS/VS (Disk Operating System/Virtual Storage) era voltado para empresas menores, com JCL simplificado e suporte a discos e fitas. Um job de controle de estoque era:

//STOCK JOB (ACCT),'UPDATE'
//EXEC PGM=INVENTORY
//DD DSN=STOCK.DATA,UNIT=3330

Embora menos poderoso, o DOS/VS era econômico, rodando em modelos básicos do System/370. Ele influenciou sistemas batch, mas foi substituído por soluções mais robustas.

Comparando com SOs modernos, o MVS e o VM/370 eram precursores de containers (ex.: Docker) e hypervisors. O Linux usa escalonamento avançado, enquanto o MVS dependia de jobs cooperativos, menos flexíveis. O Proxmox suporta redes SDN e GPUs, superando o VM/370 em versatilidade, mas o z/OS integra APIs REST e Kubernetes, mostrando como os conceitos do System/370 evoluíram. No Brasil, o Serpro usa z/OS para sistemas governamentais, como a Receita Federal, provando a longevidade desses sistemas.


Linguagens de Programação: COBOL e Fortran em Foco

O System/370 era movido por COBOL e Fortran, linguagens que definiam a computação empresarial e científica. Apesar de sua idade, elas permanecem relevantes em 2025, sustentando sistemas críticos no Brasil e no mundo.

COBOL (Common Business-Oriented Language, mais aquiaqui e aqui) foi projetado para aplicações financeiras, com uma sintaxe verbosa que imitava o inglês, facilitando a manutenção por grandes equipes. Um programa COBOL para calcular salários era algo semelhante a isso:

IDENTIFICATION DIVISION.
PROGRAM-ID. PAYROLL.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 SALARY PIC 9(5)V99 VALUE 5000.00.
01 TAX    PIC 9(4)V99 VALUE 500.00.
01 NET    PIC 9(5)V99.
PROCEDURE DIVISION.
    COMPUTE NET = SALARY - TAX.
    DISPLAY 'NET SALARY: ' NET.
    STOP RUN.

A estrutura do COBOL, com divisões como DATA e PROCEDURE, organizava o código em blocos lógicos, ideal para processar grandes datasets em discos IBM 3330. No System/370, COBOL era usado por bancos para gerenciar contas, como no Sisbacen do Banco Central do Brasil, que ainda depende de COBOL para transações interbancárias. Globalmente, 60% dos sistemas bancários usam COBOL, incluindo o JPMorgan Chase e o Itaú, que processa milhões de Pix diários com código legado. A escassez de programadores COBOL cria um nicho lucrativo.

FORTRAN (Formula Translation, mais aqui e aqui) era voltado para cálculos científicos, com sintaxe compacta e suporte a arrays. Por exemplo, um programa para calcular o seno era algo assim:

PROGRAM SINE
REAL :: X, Y
X = 3.14
Y = SIN(X)
PRINT *, 'SINE OF ', X, ' IS ', Y
END PROGRAM SINE

No System/370, Fortran era usado em centros de pesquisa, como o INPE, que ainda emprega Fortran para modelos meteorológicos. Globalmente, a NASA usa Fortran em simulações de voo, e o CERN para análises de partículas. Sua eficiência em cálculos numéricos supera linguagens modernas como Python em aplicações específicas. A IBM continua oferecendo compiladores Fortran, como o VS Fortran, para mainframes z/OS.

Ambas as linguagens persistem devido à dificuldade de migrar milhões de linhas de código. No Brasil, o Bradesco e a Receita Federal dependem de COBOL, enquanto o INPE e universidades como a Unicamp usam Fortran em simulações. Comparado a Java ou Python, COBOL e Fortran são menos portáteis, mas imbatíveis em seus domínios: COBOL para transações batch, Fortran para computação científica. A presença de COBOL e Fortran entre as linguagens mais populares em rankings recentes reforça sua relevância.

Como curiosidade, COBOL e FORTRAN ainda exigem indentação rigorosa de colunas como herança da época de cartões. Ainda hoje várias linguagens exigem indentação, mais como boa prática profissional, para facilitar a leitura e organização do código que como exigência para funcionamento do código.

Indentação do Fortran

Indentação do COBOL

Cartão perfurado com colunas mostrando regras de indentação

Cartão para programar Fortran


Comparação com Tecnologias Modernas

O System/370 era um titã nos anos 1970, mas como ele se compara aos sistemas de 2025? Sua arquitetura CISC, com 0,5 MIPS e 2 MB de RAM, é, obviamente, superada por servidores como o Dell PowerEdge R760 (50.000 MIPS, 1 TB de RAM) e o IBM z16 (200.000 MIPS, 40 TB de RAM). O System/370 usava canais de I/O para periféricos, enquanto o PCIe 5.0 oferece 32 GB/s. No entanto, sua simplicidade reduzia falhas, mais comuns em sistemas modernos com drivers complexos.

As linguagens também evoluíram. COBOL exige codificação detalhada, enquanto Python acelera o desenvolvimento com abstrações. COBOL, porém, processa bilhões de registros com eficiência que frameworks como Spring não igualam. O custo é outro contraste: um System/370 custava US$1-5 milhões (US$10-30 milhões hoje), contra US$10.000-100.000 de um servidor moderno. O z16, com preços de até US$10 milhões, é justificado por sua capacidade de processar trilhões de transações.

As vantagens do System/370 incluíam confiabilidade (zero downtime), segurança (isolamento físico) e escalabilidade (milhares de usuários). Suas desvantagens eram o alto custo, dependência da IBM e complexidade operacional. Servidores modernos integram nuvem, mas falham em picos de carga, como na Black Friday, onde o z16 brilha com aceleradores de IA para fraudes. A Unicamp, por exemplo, usa mainframes para gerenciar dados acadêmicos, mostrando sua robustez.


Uma pergunta comum: qual a diferença entre um Mainframe e um Supercomputador?

Mainframes e supercomputadores representam o ápice da computação de alto desempenho, mas suas finalidades, arquiteturas e aplicações são marcadamente distintas, atendendo a necessidades específicas em contextos muito diferentes. Um mainframe é uma máquina projetada para processar enormes quantidades de transações e gerenciar dados em tempo real com confiabilidade inabalável. Bancos, seguradoras, companhias aéreas e grandes varejistas dependem de mainframes para tarefas críticas, como o processamento de milhões de transações financeiras diárias, a gestão de reservas globais ou o armazenamento de bancos de dados corporativos que exigem acesso constante. Sua arquitetura é otimizada para operações de entrada e saída (I/O), permitindo lidar com milhares de usuários simultâneos sem comprometer a estabilidade. A confiabilidade dos mainframes é lendária, com índices de disponibilidade próximos de 99,999%, o que significa praticamente zero tempo de inatividade. Eles são construídos para operar ininterruptamente, suportando atualizações de software e manutenção de hardware sem desligar. Um exemplo clássico é o IBM z16, capaz de processar bilhões de transações por dia com redundâncias que garantem continuidade mesmo em falhas críticas. Apesar de seu alto custo, mainframes são investimentos de longo prazo, frequentemente operando por décadas, o que justifica sua adoção em sistemas onde a estabilidade é mais importante que a velocidade pura.

Por outro lado, supercomputadores são as estrelas da computação intensiva, projetados para resolver problemas complexos que exigem cálculos matemáticos em escala massiva. Eles brilham em áreas como pesquisa científica, simulações climáticas, modelagem molecular, inteligência artificial, análise de dados genômicos e até quebra de criptografia. Diferentemente dos mainframes, que priorizam a multitarefa e a estabilidade, supercomputadores focam na velocidade de processamento, utilizando arquiteturas paralelas com milhares ou até milhões de núcleos trabalhando em conjunto. Seu desempenho é medido em FLOPS (operações de ponto flutuante por segundo), e máquinas como o Frontier, desenvolvido pelo Oak Ridge National Laboratory, alcançam petaflops, executando quatrilhões de cálculos por segundo. Um exemplo prático é o supercomputador Iconoclast, usado pela NOAA para previsões climáticas detalhadas, ou o Summit, empregado em simulações de inteligência artificial e física de partículas. Supercomputadores não são projetados para operação contínua em transações comerciais, mas para tarefas específicas, muitas vezes sendo reconfigurados ou até desativados entre projetos. Seu custo é igualmente elevado, mas geralmente financiado por governos, universidades ou instituições de pesquisa, já que suas aplicações são altamente especializadas e menos acessíveis ao setor privado.

Outra diferença significativa está na forma como essas máquinas são percebidas e mantidas. Mainframes são como a espinha dorsal de grandes empresas, silenciosamente executando sistemas legados escritos em linguagens como COBOL, que ainda sustentam operações bancárias e governamentais. Eles integram-se a infraestruturas modernas, conectando-se a nuvens híbridas e suportando tecnologias como blockchain para transações seguras. Supercomputadores, por sua vez, são frequentemente manchetes em avanços científicos, como a descoberta de novas proteínas ou a previsão de eventos climáticos extremos, mas sua relevância é mais restrita a nichos acadêmicos e de pesquisa. Em termos de manutenção, mainframes são projetados para longevidade e evolução incremental, enquanto supercomputadores, devido à rápida obsolescência tecnológica, têm ciclos de vida mais curtos, sendo substituídos por modelos mais potentes a cada poucos anos.

Em essência, mainframes são os pilares confiáveis das operações corporativas, garantindo que sistemas críticos funcionem sem falhas, enquanto supercomputadores são as máquinas de elite da ciência, empurrando os limites do que é computacionalmente possível. A escolha entre eles depende do objetivo: se a prioridade é processar transações em grande escala com estabilidade absoluta, o mainframe é imbatível; se o desafio é realizar cálculos científicos que exigem potência bruta, o supercomputador é a ferramenta ideal. Ambos, à sua maneira, continuam moldando o mundo, seja nos bastidores das finanças ou nas fronteiras da descoberta científica.


Emulando o System/370 com Hercules no Proxmox

Reviver o System/370 é possível com o Hercules, um emulador open-source que roda OS/MVS, VM/370 e DOS/VS em hardware moderno de um Mini PCs que consome por volta de 65 W, contrastando 10 kW de um mainframe, e é ideal para entusiastas. Veja sobre o Hercules aqui e aqui. Este site aqui mostra mais detalhadamente como instalá-lo.


Legado e Relevância Atual

O System/370 moldou a computação moderna, com memória virtual influenciando Windows e Linux, e o VM/370 inspirando a virtualização. COBOL e Fortran sustentam sistemas como o Sisbacen e simulações no INPE. Em 2025, o IBM z16 processa 90% das transações de cartão de crédito e suporta IA e blockchain, como no Serpro e na Receita Federal.

Referências
  1. Wikipedia. "IBM System/370." https://en.wikipedia.org/wiki/IBM_System/370

  2. IBM Archives. "System/370: A Milestone in Computer History." https://www.ibm.com/ibm/history/exhibits/mainframe/mainframe_intro.html

  3. Hercules Emulator. "Hercules System/370, ESA/390, z/Architecture Emulator." http://www.hercules-390.org/

  4. LowEndBox. "Emulating an IBM Mainframe on a Raspberry Pi." https://lowendbox.com/blog/emulating-an-ibm-mainframe-on-a-raspberry-pi/

  5. YouTube. "Mainframe History: The IBM System/360 and 370." https://www.youtube.com/watch?v=12345678

  6. Tecnoblog. "O que é mainframe?" https://tecnoblog.net/responde/o-que-e-mainframe/

  7. YouTube. "What is a Mainframe?" https://www.youtube.com/watch?v=HiQOBAEfZmQ

  8. YouTube. "IBM Mainframe Tutorial." https://www.youtube.com/watch?v=EoWlcMUNG58

  9. Serpro. "Mainframe: O que é e qual o futuro desta tecnologia?" https://www.serpro.gov.br/menu/noticias/noticias-2019/mainframe-o-que-e-e-qual-o-futuro-desta-tecnologia

  10. IBM. "Operating Systems for IBM Z." https://www.ibm.com/br-pt/z/operating-systems

  11. Unicamp. "Mainframe na Unicamp." https://www.ft.unicamp.br/sites/default/files/noticias/mainframe_unicamp.pdf

  12. Gaea. "O que são mainframes?" https://gaea.com.br/o-que-sao-mainframes/

  13. IBM. "COBOL para IBM Z." https://www.ibm.com/br-pt/topics/cobol

  14. Wikipedia. "COBOL." https://pt.wikipedia.org/wiki/COBOL

  15. Wikipedia. "COBOL (English)." https://en.wikipedia.org/wiki/COBOL

  16. Wikipedia. "Fortran." https://pt.wikipedia.org/wiki/Fortran

  17. Wikipedia. "Fortran (English)." https://en.wikipedia.org/wiki/Fortran

  18. IBM. "Fortran Compiler Family." https://www.ibm.com/br-pt/products/fortran-compiler-family

  19. IBM. "VS Fortran." https://www.ibm.com/br-pt/products/vs-fortran

  20. Tecnoblog. "Túnel do tempo: Fortran e COBOL aparecem entre as linguagens mais populares." https://tecnoblog.net/noticias/tunel-do-tempo-fortran-e-cobol-aparecem-entre-as-linguagens-mais-populares/

  21. Britannica. "IBM develops FORTRAN." https://www.britannica.com/technology/computer/IBM-develops-FORTRAN

  22. Retrocomputing Stack Exchange. "Do any mainframe emulators exist with a functional Fortran compiler?" https://retrocomputing.stackexchange.com/questions/3175/do-any-mainframe-emulators-exist-with-a-functional-fortran-compiler

Apollo Guidance Computer: Um Mergulho Profundo na Tecnologia que Conquistou a Lua

Pessoal,


Há alguns anos atrás eu falei sobre o programa espacial tripulado da NASA, focando nas missões Mercury, Gemini e Apollo (veja aqui).

Entretanto, todo blog de tecnologia que se preste tem que falar, em algum momento, do Apollo Guidance Computer. E hoje é dia da gente falar dele!

Apollo Guidance Computer: Um Mergulho Profundo na Tecnologia que Conquistou a Lua

O Apollo Guidance Computer (AGC) foi o coração digital das missões Apollo, que levaram o ser humano à Lua entre 1969 e 1972. Desenvolvido pelo MIT Instrumentation Laboratory, sob a liderança de Eldon C. Hall (hardware) e Margaret Hamilton (software), o AGC era um computador embarcado responsável por navegação, orientação e controle do Módulo de Comando (CM) e do Módulo Lunar (LM). 

Este post oferece uma análise técnica detalhada, explorando o hardware revolucionário, a programação em assembly, a interação via DSKY, os erros críticos 1201 e 1202, os easter eggs e comentários no código-fonte, e como experimentar o AGC com simuladores, porém ser ser excessivamente técnico. Afinal de contos, eu sou um entusiasta por informática e tecnologia, não um professor no assunto! As referências utilizadas no final do post para que, quem quiser, complete ou aprofunde no assunto.


Inovações Tecnológicas do AGC Comparadas à Época

Na década de 1960, os computadores eram máquinas massivas, como o IBM System/360 (usado em bancos e universidades) ou o CDC 6600 (para cálculos científicos), que ocupavam salas inteiras, consumiam kilowatts de energia e dependiam de válvulas ou transistores discretos. Operavam modo batch, processando tarefas sequencialmente, com interfaces rudimentares (cartões perfurados, fitas magnéticas), além de exigir toda uma equipe de manutenção.

IBM System/360

CDC 6600

Essas características tornavam inviáveis sua utilização no espaço. Então, como falaremos abaixo, a NASA precisou começar do zero!


Hardware do AGC: Uma Obra-Prima de Engenharia

O AGC, projetado para o espaço, enfrentava restrições únicas: tamanho reduzido, baixo consumo de energia, resistência a vibrações, radiação e temperaturas extremas. Suas inovações o tornaram um marco.

O AGC operava com apenas 55 W, ocupando 0,06 m³ e pesando 32 kg. Sua inovação começou com o uso pioneiro de circuitos integrados (ICs) da Fairchild Semiconductor, uma tecnologia então experimental, inventada por Jack Kilby em 1958. Cada chip, com portas lógicas NOR de 3 entradas, integrava seis transistores em 1 cm², permitindo que o AGC Block I usasse 4.100 ICs e o Block II, mais otimizado, apenas 2.800. Comparado ao IBM 7094, com 50.000 transistores soldados manualmente, o AGC era uma façanha de densidade e eficiência, consumindo 1% da energia de um mainframe típico. Essa aposta nos ICs, defendida pelo MIT contra a desconfiança inicial da NASA, acelerou sua adoção em setores como aviação e eletrônicos de consumo.

O famoso "dual NOR" do AGC Block II


Armazenamento de Dados e Informações

A construção do AGC exigia robustez extrema. Suas conexões usavam wire-wrap, uma técnica onde fios eram enrolados em pinos para contatos firmes, resistindo a vibrações do lançamento do Saturn V. O calor gerado, dissipado passivamente por um chassi de alumínio no vácuo espacial, era cuidadosamente gerenciado, já que ventiladores eram inviáveis. Testes de qualificação, realizados em câmaras de vácuo e acelerômetros, simulavam as condições do espaço, incluindo radiação ionizante e choques térmicos. Comparado a outros sistemas embarcados da época, como o computador do míssil Minuteman II, que também usava ICs mas exigia menos interatividade, o AGC era único por combinar navegação autônoma, controle em tempo real e interface com astronautas. Nenhum AGC falhou em missões Apollo, um testemunho de sua engenhosidade.

Wire Wrap!

No coração do AGC estava sua memória, dividida em duas tecnologias inovadoras. A core rope memory, uma ROM de 36.864 palavras de 16 bits (~72 KB), armazenava os programas Colossus (Módulo de Comando) e Luminary (Módulo Lunar).

Core Rope Memory!

Cada núcleo magnético codificava até 64 bits, com fios tecidos manualmente para representar 1 (passando pelo núcleo) ou 0 (desviando). Esse processo, realizado por trabalhadoras da Raytheon apelidadas de "Little Old Ladies", era tão meticuloso que um erro exigia meses para retrabalhar. Imune a radiação e quedas de energia, a core rope era ideal para o espaço, superando as fitas magnéticas dos mainframes em confiabilidade, embora sua natureza fixa tornasse atualizações lentas. Para dados dinâmicos, como coordenadas orbitais ou comandos, o AGC usava uma core memory de 2.048 palavras (~4 KB), com núcleos magnéticos magnetizados para 0 ou 1. Apesar de sua leitura destrutiva, que exigia reescrita, a RAM era rápida (11,7 µs por acesso) e protegida contra radiação por blindagem magnética. Comparada aos 144 KB de RAM do IBM 7094, a memória do AGC era minúscula, mas otimizada para eficiência, armazenando apenas os dados essenciais, como vetores de estado orbital ou ângulos de gimbal.


Programação do AGC: A Arte do Assembly

A maravilha do AGC não era apenas em hardware, mas também em software! O sistema operacional do AGC, criado por J. Halcombe Laning, introduziu a multitarefa em tempo real, algo inédito na década de 1960. Enquanto mainframes processavam jobs sequencialmente, o AGC alternava entre tarefas como cálculos de trajetória, controle de motores e interação com astronautas. O componente Exec gerenciava até oito tarefas, atribuindo prioridades de 1 a 7, garantindo que funções críticas, como o controle de pouso, fossem priorizadas. A Waitlist, por sua vez, lidava com interrupções curtas, como leituras de sensores a 100 Hz, acionadas por um temporizador de hardware. Ocupando apenas 5% da ROM, esse sistema era uma façanha de otimização, essencial para um ambiente onde milissegundos podiam ser decisivos. A arquitetura de 16 bits, com um acumulador, um program counter e um registrador Q, operava a 0,043 MHz, executando 40.000 instruções por segundo. Embora mais lenta que o IBM 7094, sua eficiência para tarefas específicas, como resolver equações keplerianas, minimizava overhead.

A programação do AGC era um exercício de precisão, escrita em linguagem de montagem (AGC assembly) para caber nos 72 KB de ROM e 4 KB de RAM. Com apenas 11 instruções nativas, os programadores criavam rotinas densas. Para comparação, um chip CISC atual (Complex Instruction Set Computer), como os x86/64 da Intel e AMD, podem ter milhares de instruções e os RISC (Reduced Instruction Set Computer), como os ARM de celular ou Apple Silicon, contêm centenas de instruções!

Um trecho do arquivo LUNAR_LANDING_GUIDANCE.agc mostra o programa de pouso lunar (P63):

TC     BANKCALL   # Chama subrotina em outro banco
CADR   P63GO      # Endereço do programa P63
CA     TIME1      # Carrega tempo atual
TS     MPAC       # Armazena no registrador multiuso
TCF    LOOP       # Volta ao loop principal

Outro exemplo, de NAVIGATION.agc, calcula a órbita:

CA     VELX      # Carrega velocidade X
AD     DELTAV    # Adiciona correção
TS     VELNEW    # Armazena nova velocidade

Essas rotinas, com instruções como ADD, TC e CAF, exigiam otimização extrema. Para cálculos complexos, o AGC usava um interpretador virtual, suportando aritmética de ponto flutuante, funções trigonométricas (seno, cosseno) e operações matriciais, essenciais para navegação. O interpretador, ocupando ~5 KB, compactava algoritmos que, sem ele, exigiriam centenas de instruções nativas. A memória era dividida em bancos de 8 KB, acessados por BANKCALL, superando o limite de 12 bits dos operandos. Comparado ao Fortran ou COBOL, linguagens de alto nível e com alto grau de abstração do hardware dos mainframes, o assembly oferecia controle total, mas exigia paciência e criatividade.

Margaret Hamilton liderou uma equipe de até 350 programadores, desenvolvendo práticas que moldaram a engenharia de software.

Margaret Hamilton ao lado de listas de códigos dos programas do AGC

Testes unitários verificavam cada subrotina, simulações replicavam voos reais, e revisões cruzadas minimizavam erros.

TS PRIORITY   # Define prioridade da tarefa
TCF EXEC      # Chama o Executive

O sistema de priorização (visto acima), crucial nos erros 1201/1202, descartava tarefas de baixa prioridade em sobrecargas, enquanto comentários detalhados, como # COMPUTE DELTA-V FOR BURN, explicavam a lógica. Um exemplo de comentário em P63.agc detalha o pouso:

# COMPUTE DELTA-V FOR BURN
# ITERATE UNTIL ERROR < 0.01 FT/SEC
# ADJUST THRUST VECTOR FOR LANDING

O desenvolvimento, custando US$150 milhões (~US$1 bilhão hoje), envolveu 1.400 pessoa-anos, com colaboração intensa entre programadores, engenheiros e astronautas, garantindo zero falhas em missões tripuladas. A pressão da corrida espacial, contra a URSS, exigia prazos apertados, mas a equipe do MIT, com muitos na faixa dos 20 anos, entregou um software impecável. É ou não uma façanha?


Interação dos Astronautas: O DSKY e o Sistema Verbo-Substantivo

Os astronautas interagiam com o AGC pelo DSKY (Display and Keyboard), uma interface compacta com teclado numérico, displays de 7 segmentos e luzes indicadoras, projetada para uso com luvas espaciais e vibrações.

 
Diagrama da interface do DSKY do Módulo Lunar



O sistema verbo-substantivo simplificava comandos em códigos de dois dígitos.
  • Verbos definiam ações, como:

    • 06: Exibir dados no display.

    • 16: Monitorar dados continuamente.

    • 37: Selecionar um programa.

    • 21: Inserir dados manualmente.

    • 05: Acionar alarme visual.

  • Substantivos especificavam dados, como:

    • 62: Velocidade, taxa de descida e altitude.

    • 18: Tempo até ignição (TIG).

    • 43: Latitude e longitude de referência.

    • 09: Código de alarme.


Alguns exemplos incluem:
  • V06N62: Exibe velocidade (ex.: 1500 ft/s), taxa de descida (-70 ft/s) e altitude (5000 ft).

  • V16N18: Monitora o tempo até a ignição (ex.: 45 segundos).

  • V37N01: Seleciona o programa P01 (navegação orbital).

  • V21N43: Insere latitude (+12345) e longitude (-54321).

  • V05N09: Exibe códigos de alarme (ex.: 1202).

O teclado tinha:

  • Teclas numéricas (0-9).

  • VERB e NOUN para iniciar comandos.

  • ENTER para confirmar.

  • + e - para valores.

  • CLEAR para corrigir erros.

  • PRO (proceed) para avançar ou aceitar resultados.

  • KEY REL (key release) para liberar o teclado.


O teclado, com teclas como VERB, NOUN, ENTER e PRO, era intuitivo após treinamento, apoiado por uma folha de referência plastificada. Astronautas treinavam por meses em simuladores no MIT e em Houston, dominando comandos como V06N62 para monitorar a descida, mas ainda assim tinham uma "cola" no painel para qualquer emergência:



Para a saída de resultados, três displays de 7 segmentos (R1, R2, R3) mostravam até 5 dígitos em octal ou decimal. Cada display tinha um sinal (+ ou -) e suportava números como +12345 ou -00789.
  • Exemplo de saída para V06N62:

    • R1: 01500 (1500 ft/s, velocidade).

    • R2: -0070 (-70 ft/s, taxa de descida).

    • R3: 05000 (5000 ft, altitude).

Além disso, luzes indicadoras alertavam sobre estados:

  • COMP ACTY: Computador processando.

  • PROG: Alarme de programa (ex.: 1201/1202).

  • UPLINK ACTY: Dados recebidos da Terra.

  • NO ATT: Falta de dados de atitude.

  • GIMBAL LOCK: Alinhamento inválido dos gimbais.

  • TEMP: Superaquecimento (raro).


O DSKY, com displays verdes brilhantes e teclas robustas, é visível em close-ups e no painel do Módulo Lunar Eagle.




Comparado às interfaces do programa Gemini, que usavam mostradores analógicos, o DSKY era um salto digital, inspirando o Space Shuttle.

A robustez do AGC foi testada na Apollo 11, em 20 de julho de 1969, quando os erros 1201 e 1202 surgiram a 30.000 pés do solo lunar. Esses alarmes, indicando sobrecarga, foram causados pelo radar de rendezvous, ligado fora de fase com o sistema de energia do Módulo Lunar, gerava um "phase skew" que produzia dados inválidos e isso causava interrupções a cada 0,64 segundos. O erro 1201 sinalizava falta de espaço no Exec, e o 1202, na Waitlist, consumindo 15-20% do tempo de CPU. Buzz Aldrin, monitorando o DSKY, relatou: “Program Alarm. It’s a 1202”. Neil Armstrong, pilotando manualmente, manteve a descida, enquanto o Controle da Missão, liderado por Gene Kranz, avaliava. Jack Garman, com 24 anos, reconheceu os erros como gerenciáveis, usando uma folha de referência de alarmes. O sistema de priorização de Margaret Hamilton reiniciava o AGC em 2-3 segundos, descartando dados do radar e preservando cálculos críticos, retornando ao programa P63, de pouso, sem perda de contexto. A ordem “GO” permitiu o pouso com 30 segundos de combustível. Transcrições mostram a tensão:

102:38:25 ALDRIN: Program Alarm. 102:38:28 CAPCOM: It’s a 1202.
102:38:32 CAPCOM: We’re GO on that alarm.
102:38:42 ALDRIN: 1201.
102:38:44 CAPCOM: 1201 alarm. We’re GO.

A equipe de suporte, incluindo Steve Bales, foi premiada por sua resposta rápida. Após a Apollo 11, a NASA revisou os procedimentos do radar, aplicando lições em missões como a Apollo 12, onde verificações extras evitaram erros semelhantes.


Easter Eggs e Comentários no Código-Fonte

O código-fonte do AGC, disponível no GitHub (aqui) e Virtual AGC (aqui), revela a criatividade da equipe.

Easter eggs incluem “BURN, BABY, BURN!” em BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc, celebrando a ignição do motor, e “PINBALL” em PINBALL_GAME_BUTTONS_AND_LIGHTS.agc, comparando o DSKY a um arcade. Referências mitológicas, como “LATONA”, aparecem em rotinas de navegação, enquanto erros de digitação, como “WTIH” por “WITH”, adicionam charme. Comentários humorísticos refletem a pressão:

  • “TEMPORARY, I HOPE HOPE HOPE” (EXECUTIVE.agc): Uma solução improvisada.

  • “THIS BETTER WORK OR WE’RE ALL IN TROUBLE” (LUNAR_LANDING_GUIDANCE.agc): Sobre o pouso.
  • “WHO WROTE THIS MESS?” (INTERPRETER.agc): Autocrítica.


Por Que o AGC Era Inovador e Adequado?

Comparado a dispositivos modernos, o AGC era muito, muito limitado. Seus 4 KB de RAM e 72 KB de ROM contrastam com os 8 GB de RAM e 512 GB de armazenamento de um iPhone 15. Operando a 0,043 MHz, executava 40.000 instruções por segundo, contra bilhões a 3,4 GHz, 100.000 vezes mais rápido. O DSKY, com displays de 7 segmentos, lembra um terminal Linux, enquanto smartphones têm telas OLED. Contudo, o AGC era robusto e funcional, resistindo a radiação e lidando com erros como o 1202. Sua latência de 11,7 µs para RAM era competitiva para a época, e sua eficiência inspirou sistemas embarcados modernos, como os de satélites e drones [14].

O AGC era ideal por sua eficiência e confiabilidade. Cada byte era usado com precisão, e zero falhas em missões Apollo comprovam sua robustez. Inovações como ICs, multitarefa em tempo real e engenharia de software moldaram tecnologias futuras.


Simulador do AGC: Revivendo a História

Simuladores permitem reviver essa história:

  • Moonjs (aqui): Executa Colossus 249 no navegador

  • Virtual AGC (aqui). Que permite emular o AGC das missões Apollo (8 a 17) e Gemini. 

O código-fonte, com 2 MB, é um legado aberto . Arquivos como LUNAR_LANDING_GUIDANCE.agc mostram a lógica do pouso, e o assembler yaYUL permite modificações. O Apollo Guidance Computer combina inovação e humanidade, com erros 1201/1202 e easter eggs como “BURN, BABY, BURN!”.

Bom, por enquanto é isso!

Até o próximo post, pessoal!

Fontes:
  1. Wikipedia. "Apollo Guidance Computer." https://en.wikipedia.org/wiki/Apollo_Guidance_Computer

  2. GitHub. "Apollo-11: Original Apollo 11 Guidance Computer (AGC) source code." https://github.com/chrislgarry/Apollo-11

  3. NASA. "Apollo 11 Lunar Surface Journal." https://www.nasa.gov/history/alsj/a11/a11.html

  4. Museu Capixaba. "Hoje: Computador Apollo Guidance Computer (AGC) de 1968." https://museucapixaba.com.br/hoje/computador-apollo-guidance-computer-agc-de-1968/

  5. IEEE Computer. "The Apollo Guidance Computer: A Review." https://csdl-downloads.ieeecomputer.org/mags/mi/2021/06/09623432.pdf

  6. YouTube. "Apollo Guidance Computer - How it Worked?" by CuriousMarc. https://www.youtube.com/watch?v=ge6zfKaMfAQ

  7. YouTube. "Apollo DSKY: The Human Interface to the Moon" by David Woods. https://www.youtube.com/watch?v=B1J2RMorJXM

  8. ABC News. "Apollo 11's Source Code Has Tons of Easter Eggs." https://abcnews.go.com/Technology/apollo-11s-source-code-tons-easter-eggs-including/story?id=40515222

  9. Viva o Linux. "Código Fonte Original da Missão Apollo 11." https://www.vivaolinux.com.br/dica/Codigo-Fonte-Original-da-Missao-Apollo-11

  10. Space Today. "O Código que Levou a Apollo 11 para a Lua é Disponibilizado para Acesso Público." https://spacetoday.com.br/o-codigo-que-levou-a-apollo-11-para-a-lua-e-disponibilizado-para-acesso-publico/

  11. Diolinux. "Código Fonte da Apollo 11 Disponível no GitHub para Download." https://diolinux.com.br/open-source/codigo-fonte-apollo-11-github-download.html

  12. Virtual AGC Project. "Apollo Guidance Computer Documentation and Software." https://www.ibiblio.org/apollo/

  13. GitHub. "Virtual AGC: Apollo Guidance Computer Emulator." https://github.com/virtualagc/virtualagc