보이저 미션의 코드 개발 프로세스?


29

보이저 1 호는 2012 년 8 월에 항성 간 공간에 도달했으며 현재까지 가장 먼 인간이 만든 물체입니다. Voyager 1은 1977 년 쌍둥이 우주선 Voyager 2 직후에 발사되어 조 비안 및 토성 시스템을 탐색하여 초승달, 활화산 및 외부 태양계에 대한 풍부한 데이터를 발견했습니다.

보이저 1 호와 2 호는 176 년에 한 번만 발생하고 역사상 가장 잘 여행 된 우주선으로 남아있는 희귀 한 행성 정렬을 이용하도록 설계되었습니다. 두 우주선 모두 세계 기록을 외계인에게 묘사하기 위해 선택된 소리와 이미지가 들어있는 12 인치 금도금 구리 디스크 인 골든 레코드 (Golden Record)라고 불리는 일종의 타임 캡슐을 가지고 있습니다.

저는이 미션을 위해 소프트웨어를 개발 한 대다수의 사람들이 이제 은퇴했지만, 지난 35 년 동안 프로그래밍, 프로그래밍 언어는 지금까지 발전했다고 가정합니다.

Voyager는 35 년 후 성간 공간에 도달했습니다. 몇 줄의 코드가 있으며 어떤 언어로 작성됩니까? 이 미션의 개발 과정은 무엇입니까?

그렇다면이 미션에서 코드를 사용하는 더 큰 계획은 무엇이며 코드 기반으로 작성된 언어는 무엇입니까?



10
다행히 오늘날 인터넷에서 이와 같은 것을 쉽게 찾을 수 있습니다. popularmechanics.com/space/a17991/…를 읽으 십시오 .
Robert Harvey

3
지난 35 년 동안 프로그래밍, 프로그래밍 언어는 지금까지 발전 했지만, Voyager와 그 언어에 사용 된 언어 만큼은 얻지 못했습니다.
High Performance Mark

"인기있는 역학"링크의 끝 근처에 "... 우주선을 계속 진행할 수있는 충분한 어셈블리 언어가 있습니다."
dbasnett

아마도 시대에 기반한 어셈블리 언어 일 가능성이 높으며 오늘날 사용되는 상당히 고통스럽고 값 비싼 프로세스보다 엉덩이에서 쏜 바지가 훨씬 많을 것입니다.
old_timer

답변:


19

(편집 : 12/7/2017, 1 년 후, 나는 정식 답변을 찾았습니다.) NASA 우주 임무를위한 소프트웨어 개발에 관한 기사에서. https://www.nasa.gov/pdf/418878main_FSWC_Final_Report.pdf 31 페이지의 다음 표는 코드 줄의 로그 증가에 알맞은 수치를 보여주는 그래프입니다. .)

  • 1969 마리너 -6 (30)
  • 1975 바이킹 (5K)
  • 1977 보이저 (3K)
  • 1989 갈릴레오 (8K)
  • 1990 년 Cassini (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/306663

나는 F77에서 대부분 재 작성되었으며 모든 것이 완벽하게 진행되면 성간 공간에 대한 데이터를 2024까지 보낼 수 있다는 사실을 넘어서서 더 결정적인 것을 찾지 못했습니다.

이것은 아주 가깝습니다 : http://history.nasa.gov/computers/Ch6-2.html

비행 데이터 시스템에서 사용하는 4K 메모리 뱅크의 "하단"만이 코드 용입니다. 이것은 Voyager에있는 세 대의 컴퓨터 중 가장 복잡한 것이므로 여기에서 상한을 얻을 수 있습니다. 따라서 1 바이트 명령어 크기의 명령어에 대한 2k 바이트의 메모리는 대략 2000 개의 어셈블리 명령어입니다. 또는 1000 줄의 포트란 코드 일 수도 있습니다. 재 프로그래밍을 위해 3을 곱하면 원본에 대략 3000 라인의 조립 상한이 적용됩니다. 과학적이거나 엄격하지는 않지만 알아낼 수있는 최선입니다.

최신 뉴스 인 Allan Lasser는 Voyager Mission의 제어 및 분석 소프트웨어에 소스 코드에 대한 자유 정보 법 (Freedom of Information Act)을 작성 하여 코드가 (C) Caltech이고 모든 FOIA 요청 범위를 벗어났다는 사실을 밝혀 냈습니다. 소스 코드를 연구하기 위해 더 많은 노력을 기울일 수 있습니다.

Allan Lasser의 관련 FOIA 요청을 통해 우리 는 Voyager대한 JPL / Caltech 계약 이 NASA에 의해 IT 보안을 손상시키는 경향이있는 세부 사항을 갖는 것으로 간주되므로 Voyager대한 JPL / Caltech 계약 도 FOIA의 힘을 넘어서는 것을 알게됩니다.


어셈블리 명령어 당 바이트 수 또는 라인 당 명령어에 대한 통계가 더 좋은 사람이 있다면 추가하십시오. 과거에 읽었던 표현력에 관한 기사를 찾을 수 없었습니다.
BenPen

14

Wired의이 기사 는 코드가 Fortran 5로 작성된 후 나중에 Fortran 77로 포팅되었으며 일부 요소는 현재 C 버전임을 분명히합니다.

우주선의 원래 제어 및 분석 소프트웨어는 포트란 5 (나중에 포트란 77로 포팅)로 작성되었습니다. 일부 소프트웨어는 여전히 포트란에 있지만, 다른 일부는 현재 좀 더 현대적인 C로 포팅되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.