A Voyager 1 atingiu o espaço interestelar em agosto de 2012 e é o objeto humano mais distante que existe. Lançada logo após sua nave espacial, a Voyager 2, em 1977, a Voyager 1 explorou os sistemas jovianos e saturnianos, descobrindo novas luas, vulcões ativos e uma riqueza de dados sobre o sistema solar externo.
As Voyager 1 e 2 foram projetadas para aproveitar um raro alinhamento planetário que ocorre apenas uma vez em 176 anos e continua sendo a espaçonave mais bem viajada da história. As duas naves espaciais carregam uma espécie de cápsula do tempo chamada Registro Dourado, um disco de cobre banhado a ouro de 12 polegadas contendo sons e imagens selecionados para retratar a história de nosso mundo para extraterrestres.
Presumo que a grande maioria das pessoas que estava desenvolvendo software para essas missões agora esteja aposentada, mas nos últimos 35 anos de programação, as linguagens de programação avançaram até agora.
Foi lançado em 1977. Após 35 anos, a Voyager alcançou o espaço interestelar. Quantas linhas de código existem e em que idioma está escrito? Qual foi o processo de desenvolvimento por trás dessas missões (que ainda estão ativas) ?.
Então, qual foi o plano maior com código nesta missão e em qual idioma a base de código foi escrita?
Respostas:
(Edit: 07/12/2017, um ano depois, encontrei uma resposta oficial) Em um artigo sobre desenvolvimento de software para missões espaciais da NASA. https://www.nasa.gov/pdf/418878main_FSWC_Final_Report.pdf Na página 31, a tabela a seguir está no gráfico, mostrando um ajuste decente a um aumento logarítmico nas linhas de código: (Portanto, minha estimativa de 3K estava certa .)
Como era originalmente uma pergunta em busca de uma resposta final, fizemos a seguinte estimativa:
De acordo com o post abaixo, há código disponível para o Apollo 11 e várias outras coisas de código aberto da NASA, mas a fonte de sondas parece estar decepcionantemente ausente:
https://voat.co/v/programming/comments/306663
Pesquisei no Google e não encontrei nada mais conclusivo além dos fatos que foram reescritos em F77 na maior parte do tempo e, potencialmente, poderiam nos enviar dados sobre o espaço interestelar até 2024, se tudo correr perfeitamente.
Isso é tentadoramente próximo: http://history.nasa.gov/computers/Ch6-2.html
Somente a "parte inferior" dos bancos de memória 4K que é usada pelo sistema de dados de voo é para código. Este é provavelmente o mais complexo dos três computadores no Voyager, para que possamos obter um limite superior a partir daqui. Portanto, 2k bytes de memória para obter instruções com um tamanho de instrução de 1 byte seriam aproximadamente 2000 instruções de montagem. Ou talvez 1000 linhas de código Fortran. Multiplique por três para reprogramação) e você obterá um limite superior aproximado de 3000 linhas de montagem no original. Não é científico ou rigoroso, mas o melhor que posso descobrir.
E, como as últimas notícias, Allan Lasser fez uma Lei de Liberdade de Informação para o código fonte do software de controle e análise da Voyager Mission, revelando que o código é (C) Caltech e está fora do alcance de qualquer solicitação FOIA, fato que poderia direcionar esforços adicionais para pesquisar esse código-fonte.
E por meio de uma solicitação FOIA de Allan Lasser, descobrimos que o contrato JPL / Caltech para a Voyager também está além do poder da FOIA, pois o contrato é considerado pela NASA como tendo detalhes que tenderiam a comprometer a segurança de TI.
fonte
Este artigo na Wired deixa claro que o código foi escrito no Fortran 5 e posteriormente transportado para o Fortran 77 e agora alguns elementos estão em uma versão do C:
fonte