# Apollo 11 Guidance Computer 소스 코드 아카이브

Apollo 11 Guidance Computer 소스 코드 아카이브

원래 아폴로 11 비행 소프트웨어 디지털화

아폴로 11 Guidance Computer(AGC)의 원래 소스 코드는 공개 아카이브로 제공되어 달에 인간을 착륙시키는 데 사용된 어셈블리 언어를 자세히 살펴볼 수 있습니다. 이 저장소에는 명령 모듈(Comanche055)과 달 착륙 모듈(Luminary099)의 소스 코드가 모두 포함되어 있으며, MIT 박물관에 보관된 하드코피 스캔에서 디지털화되었습니다.

소프트웨어 버전 및 출처

이 아카이브는 아폴로 11 미션 동안 사용된 두 가지 주요 프로그램 버전을 보존합니다:

  • Comanche055: Colossus 2A의 소스 코드로, 명령 모듈(CM)을 위한 AGC 프로그램입니다. 이 버전은 1969년 4월 1일에 어셈블되었습니다.
  • Luminary099: Luminary 1A의 소스 코드로, 달 착륙 모듈(LM)을 위한 AGC 프로그램입니다. 이 버전은 1969년 7월 14일에 어셈블되었습니다.

이 프로젝트는 매사추세츠 공과대학교(MIT)의 계측 연구소와의 협력으로 이루어졌으며, NASA의 유인 우주센터의 후원을 받았습니다. 소프트웨어는 아폴로 Guidance 및 항법을 위한 Colossus 프로그래밍 리더인 Margaret H. Hamilton이 이끌었으며, Daniel J. Lickly와 David G. Hoag 등의 관리가 1969년 3월 28일에 승인했습니다.

엔지니어링 제약 및 설계 결정

소스 코드는 1960년대의 실용적이고 매우 제약된 엔지니어링 환경을 보여줍니다. AGC가 극도로 제한된 메모리와 처리 능력으로 작동했기 때문에, 개발자들은 특정 근사 수학 방법과 엄격한 시간 창을 사용했습니다.

수학적 근사

주목할 만한 설계 결정 중 하나는 천체 위치 결정에 다항식 근사를 사용하는 것입니다. 소스 주석에 다음과 같이 명시되어 있습니다:

THE POSITION OF THE MOON IS STORED IN THE COMPUTER IN THE FORM OF A NINTH DEGREE POLYNOMIAL APPROXIMATION WHICH IS VALID OVER A 15 DAY INTERVAL BEGINNING SHORTLY BEFORE LAUNCH. THEREFORE THE TIME INPUT BY THE USER SHOULD FALL WITHIN THIS 15 DAY INTERVAL.

코드 실용성과 "Load-Bearing" 주석

개발자는 소스 주석에서 직설적이고 명확한 언어를 사용하여 미래의 유지보수자에게 코드의 중요한 또는 불안정한 부분에 대해 경고했습니다. 일부 주석에는 ** GROUP 6 TEMPORARY USED .. BEWARE ** 와 같은 경고가 포함되어 있고, 더 다채로운 지시 사항으로는 TC WHIMPER -1 # YES. DONT DO POODOO. DO BAILOUT. 가 있습니다.

기술 구현 및 현대적 접근

어셈블리 언어 및 하드웨어

아폴로 11 소프트웨어는 당시 AGC 하드웨어에 사용할 수 있는 고수준 컴파일러가 없었기 때문에 완전히 어셈블리 언어로 작성되었습니다. 하드웨어 자체는 최초의 디지털 통합 회로(IC) 기반 컴퓨터 중 하나였습니다. 컴퓨터와의 상호작용은 DSKY(디스플레이 및 키보드) 제어판을 통해 처리되었으며, 이를 통해 우주비행사는 어셈블리 코드와 직접 상호작용하지 않고 숫자 동사 "verbs"와 명사를 입력하여 명령을 실행할 수 있었습니다.

에뮬레이션 및 컴파일

원본 소스는 하드카피의 전사본으로 제공되지만, 에뮬레이션을 통해 현대 하드웨어에서 실행할 수 있습니다. Virtual AGC 프로젝트는 원래 소스 코드를 컴파일하고 현대 컴퓨터에서 실행하는 데 필요한 도구를 제공하여, 원래 하드웨어 제약을 모방하는 환경에서 비행 소프트웨어를 실행할 수 있게 합니다.

디지털 보존

디지털화 과정은 Paul Fjeld가 수행했으며, Deborah Douglas(MIT Museum)가 조정했습니다. 이 저장소는 기여자가 Virtual AGC 프로젝트 공간에서 제공되는 원본 소스 스캔과 디지털 파일을 비교하여 전사 오류를 수정하는 풀 리퀘스트를 제출할 수 있는 살아있는 아카이브 역할을 합니다.

Sources