Processo de desenvolvimento de código para a missão Voyager?


29

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?



10
Felizmente, é muito fácil encontrar coisas como essa na Internet hoje em dia. Leia popularmechanics.com/space/a17991/… .
Robert Harvey

3
nos últimos 35 anos de programação, as linguagens de programação avançaram até agora Sim, mas elas não chegaram até as linguagens usadas pelo Voyager e seus tipos :-)
High Performance Mark

Perto do final do link Mecânica Popular, ele diz: "... com uma base suficiente em linguagens assembly para manter a espaçonave funcionando".
precisa saber é o seguinte

Muito provável linguagem assembly baseada no período de tempo, e também provável que tenha sido muito mais assento da sua calça, atirar do quadril, do que os processos bastante dolorosos e caros usados ​​hoje.
old_timer

Respostas:


19

(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 .)

  • 1969 Mariner-6 (30)
  • Viking de 1975 (5K)
  • 1977 Voyager (3K)
  • 1989 Galileu (8K)
  • 1990 Cassini (120K)
  • 1997 Pathfinder (175K)
  • 1999 DS1 (349K)
  • 2003 SIRTF / Spitzer (554K)
  • 2004 MER (555K)
  • 2005 MRO (545K)

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.


Se alguém tiver melhores estatísticas para bytes por instrução de montagem ou instruções por linha, adicione. Eu era incapaz de encontrar o artigo sobre expressividade que eu sei que eu tinha lido no passado ...
BenPen

14

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:

O software original de controle e análise das naves espaciais foi escrito em Fortran 5 (posteriormente transferido para Fortran 77). Alguns dos softwares ainda estão em Fortran, embora outras peças já tenham sido portadas para o C. um pouco mais moderno.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.