아폴로 11 유도 컴퓨터 코드의 문서화되지 않은 버그
아폴로 유도 컴퓨터(AGC) 코드에서 자원 잠금 누수 버그가 AI 기반 행동 명세 언어인 Allium을 통해 새롭게 발견되었습니다.
AGC는 1960년대 우주 임무에서 사용된 매우 제한된 메모리와 속도의 어셈블리 코드로 작성되었으며, 이 코드의 결함은 자이로스코프 제어를 위한 공유 자원 잠금(LGYRO)이 오류 경로에서 해제되지 않는 문제였습니다.
Allium으로 13만 줄 이상의 어셈블리 코드를 1만 2천 줄의 명세로 추출해 분석한 결과, 정상 종료 경로에서는 잠금이 해제되지만, 비상 상황인 ‘케이징(caging)’ 중단 경로에서는 잠금 해제가 누락된 점이 드러났습니다.
이 버그는 아폴로 11부터 14까지 여러 임무에 존재했으나, 정상적인 재시작 절차가 잠금을 해제해 큰 사고로 이어지지 않았습니다.
현대 프로그래밍 언어들이 자동 자원 해제 기능을 제공하지만, 여전히 프로그래머가 직접 자원 해제를 관리해야 하는 영역에서는 유사한 버그가 빈번히 발생할 위험이 있습니다.
이번 발견은 행동 명세가 단순 코드 테스트를 넘어 코드가 수행해야 할 의무를 명확히 하여 숨겨진 결함을 찾아낼 수 있음을 보여줍니다.
아폴로 임무의 역사적 코드에서 발견된 이 사례는 오늘날에도 자원 관리의 중요성과 AI 기반 명세 분석의 가능성을 시사합니다.
요약하면, AI를 활용한 행동 명세 분석이 오래된 코드의 치명적 결함을 밝혀내며, 자원 잠금 관리의 자동화 필요성을 재확인시켰습니다.
