'ISS 안착' 머스크의 첫 유인우주선, 어떤 SW 사용했나

리눅스 OS로 안정성·신뢰도 높여…C언어도 적극 활용

컴퓨팅입력 :2020/06/06 08:23    수정: 2020/06/07 21:24

일론 머스크가 이끄는 스페이스X가 사상 첫 민간 유인 우주선 '크루 드래곤'을 국제우주정거장(ISS)에 성공적으로 안착시켰다.

크루 드래곤은 미국이 9년만에 발사한 유인 우주선이다. 이번 성공으로 러시아에 의존해왔던 미국의 우주선 발사에 좀 더 속도가 붙을 전망이다.

하지만 더 큰 의미는 다른 곳에서 찾을 수 있다. 사상 처음으로 민간 유인 우주선 발사에 성공했다는 점이다. 이번 성공으로 화성을 식민지로 만들겠다는 일론 머스크 최고경영자의 포부도 한걸음 가까워진 모양새다.

크루 드래곤 성공의 기반에는 팰컨9 로켓이 있다. 재사용 가능한 로켓을 만들어 우주진출 비용을 줄이겠다는 야심이 만들어낸 작품이다.

이런 야심의 결실읜 팰컨9 로켓은 첨단 소프트웨어 기술의 결집소라고 해도 과언이 아니다. 과연 팰컨9에는 어떤 소프트웨어들이 사용됐을까? 비용과 성능 모두 최적화하는 비결은 무엇일까?

크루드래곤에 탑승한 우주비행사 시스템을 제어 중이다.(이미지=스페이스X)

미국 지디넷은 4일(현지시간) 스페이스X의 팰컨9 로켓 소프트웨어 시스템 분석 기사를 통해 이런 궁금증을 풀어줬다.

팰컨9 로켓의 온보드 시스템은 일반적인 듀얼코어 X86프로세서를 사용하는 3대의 컴퓨터가 연결된 구조다. 운영체제(OS)는 리눅스를 사용한다.

일반적인 시스템이 적용된 이유는 단순하다. 팰컨9은 우주선을 저궤도까지 쏘아 올리는 역할만 담당한다. 따라서 우주 공간에 오래 있지 않고 방사선 등에 노출되지 않는다. 3개의 컴퓨터를 연결한 것은 시스템 안정성을 확보하기 위한 조치다.

실제 우주를 비행해야 하는 크루 드래곤의 마이크로칩은 우주방사능 등으로부터 보호하기 위한 특수한 처리가 필요하지만 자세한 정보는 공개되지 않았다.

팔콘9의 OS는 세 컴퓨터의 결과값을 비교해 모두 일치할 경우에만 엔진 및 회전식 러너를 제어하는 마이크로 컨트롤러가 명령을 수행하는 액터 저지 시스템이 마련돼 있다.

이 시스템은 하나의 컴퓨터에 이상이 발생했을 경우엔 남은 컴퓨터가 백업 시스템을 발동해 안정적인 비행을 유지할 수 있는 기능도 제공한다.

비행 제어코드 테스트 도구, 통신 코드 분석 도구 등 비행 시스템은 약 35명으로 이뤄진 스페이스X 비행 소프트웨어 팀에서 C와 C++로 개발했다.

크루 드래곤도 역시 리눅스 OS를 사용하며 C로 작성된 프로그램이 설치됐다. 다만 작업 시스템의 인터페이스는 크로미움 환경에서 웹기반 자바스크립트로 작성됐다. 간편한 조작을 위해 터치스크린이 제공되지만 고장이나 오류발생에 대비해 물리적 키패드도 마련됐다.

스페이스X가 리눅스를 OS로 선택한 것은 안정성과 신뢰도가 높은 시스템 구축을 위한 것으로 보인다. NASA와 연계해 국제우주정거장의 컴퓨터를 관리하는 유나이티드스페이스 얼라이언스도 지난 2013년 안정성 확보를 위해 운영체제를 윈도에서 리눅스로 전환한다고 밝힌 바 있다.

애플리케이션 개발에 C와 C++를 사용한 것 역시 50년 가까이 꾸준히 사용될 만큼 안정적이기 때문이다. 또한 로켓에 설치된 수많은 장치에 적용해 사용하기 위해선 작은 규모로 애플리케이션을 만들고 빠르게 작동해야 하기 때문이다. 실제로 사물인터넷(IoT) 장비에는 대부분 C언어로 작성된 애플리케이션으로 작동한다.

관련기사

크루 드래곤에 탑승한 우주 비행사 로버트 벤켄과 더글러스 헐리에게는 데비안 리눅스와 사이언티픽 리눅스 그리고 윈도10이 설치된 노트북 HP ZBOOK15이 제공됐다.

리눅스가 설치된 노트북은 비행 관제 시스템에 접속하며, 윈도10에서는 이메일을 발송하거나 웹서핑을 하고 여가활동에 쓰인다.