web-dev-qa-db-ja.com

Voyagerミッションのコード開発プロセス?

ボイジャー1号は2012年8月に星間空間に到達し、人類が作った最も遠い存在物です。 1977年に2隻の宇宙船Voyager 2の直後に打ち上げられたVoyager 1は、木星と土星のシステムを探索し、新月、活火山、そして外部の太陽系に関する豊富なデータを発見しました。

Voyager 1と2は、176年に1回だけ発生し、歴史上最もよく旅された宇宙船であり続ける珍しい惑星の配置を利用するように設計されました。どちらの宇宙船にも、ゴールデンレコードと呼ばれる一種のタイムカプセルが搭載されています。これは、私たちの世界の物語を地球外に描写するために選択された音と画像を含む12インチの金メッキ銅ディスクです。

この使命のためにソフトウェアを構築していた大多数の人々は現在退職していると思いますが、過去35年間のプログラミングでは、プログラミング言語はこれまで進歩してきました。

そのため、1977年に発売されました。35年後、ボイジャーは星間空間に到達しました。コードは何行あり、どの言語で書かれていますか?このミッション(現在も活動中)の背後にある開発プロセスは何でしたか?.

それで、この使命におけるコードのより大きな計画は何でしたか、そしてコードベースはどの言語で書かれていますか?

30
Josip Ivic

(編集:12/7/2017、1年後、私は信頼できる回答を見つけました)NASA宇宙ミッションのソフトウェア開発に関する記事で。 https://www.nasa.gov/pdf/418878main_FSWC_Final_Report.pdf 31ページの次の表は、コード行の対数増加に対する適切な適合を示すグラフにあります。 3Kの見積もりは正解でした。)

  • 1969マリナー6(30)
  • 1975バイキング(5K)
  • 1977ボイジャー(3K)
  • 1989ガリレオ(8K)
  • 1990カッシーニ(120K)
  • 1997パスファインダー(175K)
  • 1999 DS1(349K)
  • 2003 SIRTF/Spitzer(554K)
  • 2004 MER(555K)
  • 2005 MRO(545K)

これはもともと最終的な答えを探すための質問だったので、次のように見積もりました。

以下の投稿によると、Apollo 11や他のさまざまなオープンソースのNASAで利用できるコードがありますが、プローブのソースが失望しているようです。

https://voat.co/v/programming/comments/30666

私はググってみましたが、ほとんどがF77で書き直されており、すべてが完全にうまくいけば2024年までずっと星間空間のデータを送ってくれる可能性があるという事実を超えて、より決定的なものは見つかりませんでした。

これは食欲をそそるほど近いです: http://history.nasa.gov/computers/Ch6-2.html

フライトデータシステムで使用されるメモリの4Kバンクの「下位部分」のみがコード用です。これはおそらくVoyagerの3台のコンピュータの中で最も複雑なので、ここから上限を取得できます。したがって、1バイトの命令サイズの命令の場合、2kバイトのメモリは約2000のアセンブリ命令になります。または、おそらく1000行のFortranコード。再プログラミングする場合は3を掛けます)。元のアセンブリの大まかな上限は3000行です。科学的でも厳密でもないが、私が理解できる最高のもの。

そして、最新のニュースとして、アランラッサーは Voyagerミッションの制御および分析ソフトウェアへのソースコードの情報公開法 を作成し、コードは(C)Caltechであり、 FOIAリクエスト、そのソースコードを調査するためのさらなる努力を向けることができるという事実。

そして、関連するFOIA Allan Lasserからのリクエストを通じて、 JPY/VoyagerのCaltech契約 は、NASAが詳細を持っていると見なしているため、FOIAの力を超えていることを学びますこれはITセキュリティを危険にさらす傾向があります。

20
BenPen

このWiredの記事 は、コードがFortran 5で記述され、その後Fortran 77に移植され、一部の要素がCのバージョンになっていることを示しています。

宇宙船のオリジナルの制御および分析ソフトウェアはFortran 5(後でFortran 77に移植)で作成されました。一部のソフトウェアはまだFortranにありますが、他の部分は、やや最新のCに移植されています。