테크레시피

스페이스X 로켓, 리눅스·C++로 우주로 날아갔다

스페이스X(SpaceX)는 지난 5월 31일 재사용 가능 로켓인 팔콘9(Falcon 9)를 이용한 유인 우주선 발사에 성공한 바 있다. 이런 팔콘9는 어떤 소프트웨어를 이용했을까.

로켓이나 우주선 등은 PC나 서버 등에 이용하는 것 같은 첨단 CPU는 거의 사용하지 않는다. 로켓 개발은 기본적으로 몇 년에서 수십 년이라는 긴 기간을 필요로 하기 때문에 개발했을 때는 비교적 새로운 CPU지만 개발이 끝날 무렵에는 구식 모델이 되는 일이 드물지 않기 때문.

또 우주에서 방사선이 난무하기 때문에 우주에서 사용할 CPU는 방사선 내성을 강화할 필요가 있어 아무래도 개발에 시간이 걸린다. 예를 들어 지금도 궤도에 위치한 국제우주정거장 내 명령이나 제어 멀티 플렉서·디멀티플렉서(C&C MDM)에 이용하는 CPU는 1988년 개발된 인텔 80386 20MHz 모델이다.

팔콘9는 듀얼코어 x86 마이크로 아키텍처 CPU 3개를 실었고 운영체제는 리눅스를 채택하고 있다. 팔콘9에서 CPU 3개를 탑재한 이유는 안전을 보장하기 위한 것. 스페이스X는 프로세스 처리를 여러 코어에서 동시에 실시해 결과가 다를 경우 다시 계산하는 시스템(Actor-Judge)을 이용해 중복성을 확보하고 있다. 다시 말해 탑재한 CPU 3개의 모든 결정이 같을 경우에만 명령이 마이크로 컨트롤러로 보내진다는 얘기다.

팔콘9에 어떤 칩이 쓰이는지는 분명하지 않지만 개발에 10년 이상 걸렸기 때문에 적어도 2020년 시점 CPU보다 꽤 오래됐을 가능성이 높다. 하지만 팔콘9는 재사용을 염두에 둔 로켓이기 때문에 로켓 1단에 사용하는 CPU에는 방사선 대책은 필요 없다. 2021년에는 라즈베리파이3에 탑재되는 ARM 코어텍스-A53을 팔콘9 CPU로 채택하는 걸 미 항공우주국 나사(NASA)는 생각하고 있다고 한다.

하드웨어 뿐 아니라 소프트웨어도 개발되고 있다. 스페이스X 개발자에 따르면 팔콘9와 그레이스호퍼(Grasshopper), 크루드래곤(Crew Dragon) 소프트웨어 담당팀은 엔지니어 35명으로 이뤄져 있다고 한다. 임무는 각각 코어 플랫폼과 시뮬레이션 소프트웨어, 지상국 통신과 분석용 소프트웨어 개발로 소프트웨어는 C 또는 C++로 코딩되어 있다고 한다.

또 우주비행사는 리눅스 배포판 중 하나(Debian , Scientific Linux), 윈도10이 탑재된 모바일 워크스테이션 HP Z북15를 이용하고 있다. 이 터미널은 C&C MDM에 원격 터미널로 이용할 뿐 아니라 이메일이나 웹브라우징도 할 수 있다고 한다.

또 유인 우주선인 크루드래곤은 터치스크린형 인터페이스를 채택했고 C++로 코딩한 비행 소프트웨어 UI는 크로뮴(Chromium)과 자바스크립트로 렌더링된다. 물론 터치스크린이 고장났을 경우를 대비한 물리적 버튼도 배치되어 있다. 관련 내용은 이곳에서 확인할 수 있다.

정용환 기자

대기업을 다니다 기술에 눈을 떠 글쟁이로 전향한 빵덕후. 새로운 기술과 스타트업을 만나는 즐거움을 독자들과 함께 나누고 싶습니다.

뉴스레터 구독