커뮤니티
스포츠
토론장


HOME > 커뮤니티 > 밀리터리 게시판
 
작성일 : 19-11-03 14:56
[기타] 무기체계에 리눅스를 적용한 사례들
 글쓴이 : 떡국
조회 : 2,957  

보통 항공기 임무컴퓨터 같은 것들은 소위 크리티컬하다고 해서, 오류도 있으면 안되고 실시간성도 마이크로 세컨드 수준으로까지 정밀하게 보장되어야 합니다.
그래서 이런 분야는 전통적인 RTOS를 주로 사용하는데요.  고신뢰성이 필요하고, 관련 인증서가 필요하기 때문에 오픈소스를 사용하기에는 적합하지 않습니다.

간단히 말해, 항공기용 RTOS를 사용하려는데, 이 OS를 항공기 체계통합하는 회사에서 직접 오픈소스로 구성할 경우에는, OS 밑바닥부터 응용프로그램까지 전부 싹 다 항공소프트웨어 인증을 받아야 합니다.  인증 받는게 엄청 어렵기 때문에 진짜 골치아프죠.  그래서 이런 인증을 미리 받아놓은 상용 RTOS의 라이센스를 구매해서 인증 과정을 생략하는 쪽이 훨씬 더 효과적이죠.

최근에는 VxWorks라는 RTOS 제품이 거의 시장을 석권하고 있다고 봐도 무방할 것 같습니다.  이 제품 자체는 무슨 윈도우 OS 처럼 거대한 것이 아니고, 그냥 아주 작은 사이즈의 커널단 달랑 하나에 불과합니다.  (악세사리로 여러가지 기능을 더 덧붙여 커널을 구성하는 것은 가능함)  아키텍쳐도 엄청 단순하고요.  이렇게 단순해야 신뢰성을 더 높일 수 있으니까요.  응용프로그램 개발자는 OS가 제공해 주는 기본적인 서비스와 함수를 갖다 쓰도록 하는 식으로 프로그램을 개발합니다.

또 한국에서는 MDS라는 회사에서(지금은 한컴으로 인수되어 한컴MDS 이더군요.), 자체 RTOS로 NEOS라는 제품을 가지고 있는데요.  이 NEOS RTOS도 일부 군용으로 사용된 사례가 있는 것 같습니다.  T-50 임무컴퓨터용 RTOS로도 테스트 성공했었다고 하는데, 초기 버전의 T-50에는 VxWorks 기반이었던 것 같고, 수출용은 NEOS 기반 독자적인 것으로 간다는 글은 있던데 실제로 그렇게 되었는지는 잘 모르겠네요.
또 K2 전차의 메인 컴퓨터가 NEOS RTOS 기반인 것 같습니다. (이거 듣고 깜짝 놀랐네요.  굉장한 성과입니다.)
다만, NEOS가 VxWorks보다 나은 점은 국산이라는 것과 가격 외에는 없다고 생각됩니다.  업데이트가 활발한 것 같지도 않구요(국산 소프트웨어의 제일 큰 문제점).  미래지향적인 OS는 분명 아닙니다.


리눅스는 기본적으로 시분할운영체제이기 때문에, RTOS가 아니지만, Xenomai[제노마이] 같은 프레임웍을 추가로 깔아주거나 하는 식으로 간단히 RTOS화 시킬 수가 있습니다.  제노마이는 오픈소스이고, 또 VxWorks에서 제공하는 API나 서비스까지 호환시켜서 제공을 해 주기 때문에, VxWorks 정품이 없어도 제노마이 가지고 연습도 할 수 있죠.  하지만, 기본 리눅스 커널 위에 올라타는 구조이기 때문에, 계층구조가 더 복잡해지고 용량도 커집니다.  더 복잡하니까 신뢰성도 떨어지겠죠.  또 오픈소스다 보니, 항공기 인증도 직접 받아야 됩니다.  결국 군용으로 사용하기에는 문제가 많아서 안 씁니다.

하지만, 군용이라 하더라도 항공기 임무컴퓨터 같은 것 말고, 조금은 덜 크리티컬한 쪽에는 리눅스를 사용해 볼만 하죠.

실제로, T-50/FA-50 비행기에도 리눅스를 적용한 모듈이 있더라고요.
삼차원 지도 모듈(DMM) 부분입니다.  지상 작전 영역의 지형을 최대한 정밀하게 3D로 모델링해서 데이타베이스로 집어넣고 제공을 해 주는 별도의 컴퓨터에서 리눅스를 OS로 적용을 했더라고요.  이 리눅스 컴퓨터에서 지형 정보를 중앙의 미션 컴퓨터로 가져온 후, 센서를 통해 얻은 정보와 비교해 가면서 자동화된 추락경고 / 추락방지 / 지형트래킹비행 / 목표물 타켓팅을 하도록 시스템이 구성되어 있나 봅니다.
이 기술 관련해서 특허도 출원되어 있더라고요. (특허등록번호 KR101193115B1)

이와 비슷하게, 수리온 헬리콥터의 통합 전자 지도 컴퓨터(IDMC) 모듈 역시 리눅스 운영체제 기반으로 구성이 되었나 봅니다.
기타 육군 방공 지휘통제 경보체계(ADC2A), 합동전술 데이터링크 체계(JTDLS) 역시 리눅스 기반인가 봅니다.  아주 좋은 선택이라고 생각합니다.

리눅스를 사용하는 것이 좋은 이유는, POSIX 규격(표준 유닉스)이기 때문입니다.
VxWorks 같은 것들은 기본적으로 POSIX라고 보기는 어렵거든요. (억지로 집어넣어서 호환된다고는 하지만 기본적으로는 아니라는 이야기)
MS윈도우 같은 경우에도, 제대로 된 POSIX가 아니기 떄문에 동떨어진 느낌이 있고요.  윈도우로 할 바에야 리눅스로 가는 쪽이 더 낫죠.  즉 최소한의 표준적인 환경이 제공된다면, 더 통일적이고 일관된 개발체계를 유지 발전시키기가 수월하기 때문이죠.

다만 현재까지는 리눅스가 핵심적인 RTOS를 대체하지는 못합니다.
하지만...  근미래에, 제노마이 추가 설치 같은 방식 말고, 리눅스 커널 소스코드를 분기시켜서 RTOS용 리눅스커널을 상용화하는 회사가 나오면 좋겠구나 싶더군요.  지금 당장은 이런 솔루션에 대한 수요가 없겠지만, 시스템이 점점 고도화되면서 어느 시점이 되면 VxWorks 가지고 감당이 안되는 시점이 분명히 올 거에요.  그때 리눅스 기반 RTOS 커널을 가지고 있고 또 그에 대한 항공기 인증까지 완비된 솔루션이 존재하고 있다면 최우선적으로 선택될 것입니다.  왜냐면, 리눅스 기반이 되면 엄청나게 거대한 개발도구들과 오픈소스 기반을 그대로 가져다 쓸 수 있게 되므로, 개발생산성 측면에서 비교가 안 될 것이기 때문입니다.  여기에 거대한 사업기회가 있을지도 모른다는 생각도 드네요.


* 참고
1. http://blog.naver.com/PostView.nhn?blogId=bongkwankim&logNo=150148292553
2. https://patents.google.com/patent/KR101193115B1/ko
3. http://www.neosrtos.com

출처 : 해외 네티즌 반응 - 가생이닷컴https://www.gasengi.com


가생이닷컴 운영원칙
알림:공격적인 댓글이나 욕설, 인종차별적인 글, 무분별한 특정국가 비난글등 절대 삼가 바랍니다.
스포메니아 19-11-03 15:17
   
미국의 최신 스텔스 구축함 줌왈트가 싸그리 Linux에 의해 운용된답니다. 저가 Linux system을 사용해서, 광범위하게 자동화를 구현했고, 그래서 승조원의 수를 대폭 줄여 전함 운용비용을 말도 안되는 수준으로 낮췄다네요.

Inside the Stealth Destroyer USS Zumwalt, the Warship That Runs on Linux

https://www.popularmechanics.com/military/weapons/news/a27804/stealth-destroyer-uss-zumwalt-linux/
     
떡국 19-11-03 15:18
   
줌왈트 뿐만 아니라 최근의 이지스 시스템들도 다 리눅스 기반일 거에요.
줌왈트는 서비스 측면(응용프로그램단)에서 큰 진전을 보았나 보네요!
gigjag 19-11-03 15:27
   
진짜 리얼타임 OS는 없다고 합니다. 극도로 반응성을 좋게 한 OS가 있을 뿐이죠.

그런데 이렇게 반응성만을 추구하다 보면 처리율이 나빠집니다. 그래서 대부분의 OS는 리얼타임 OS가 아닙니다. 시장성이 없기 때문이죠.

그래도 리눅스가 리얼타임 OS 쪽으로 왔다갔다 하는 것은 소스가 공개되어 있기 때문일 겁니다. 다른 운영체제는 커널 소스가 공개가 아니니까 제작사가 직접 시도하지 않는 한 나올 일이 없죠.

리얼타임 OS는 반응성만 높여놔서 성능이 안 좋고, 크기가 작을 수밖에 없는 특징이 있습니다.

리눅스 커널 컴파일에 보면 반응성을 높여서 데스크탑에 알맞게 하거나, 처리율을 높여서 서버용으로 알맞게 하는 옵션도 있습니다.

그나마 리눅스 커널은 1.44M 플로피에 다 들어가던 시절도 있었고, 임베디드 시스템용으로도 꾸준히 활용해 왔었기 때문에 전투기 조종같은 극단적 반응성을 요구하는 분야가 아닌한 경쟁력이 있습니다.

한컴은 리눅스 사업도 하던 회사죠.
     
떡국 19-11-03 16:11
   
네, 이상적인 리얼타임을 구현하려면 원리적으로 아날로그 컴퓨터를 사용하지 않는 이상 어렵겠죠.
다만 하드RTOS라는 것은, 하드웨어 인터럽트를 걸어주는 타이머의 정밀도를 높여주고, 태스크 우선순위를 그 타이머 인터럽트에 최우선 할당하도록 구성하는 것이겠죠.  그렇다고 하더라도 인터럽트 후 명령 처리하는데 수십 클럭은 소모할 것이고요.

다만 미래에는, 기존의 전통적인 RTOS의 기능으로 감당하기 힘들 정도로 복잡도가 올라갈 것이므로, POSIX 규격의 OS가 결국은 필요하게 될 것이라는 전망을 해 본 것입니다...  리눅스 커널 컴파일 옵션 조절 수준은 아니고, 아마 소스 일부를 수정을 해야 할 거에요.  타이머 우선순위를 최우선으로 올려줘야 하고, 리얼타임으로 동작을 보장해 줄 프로세스를 별도로 취급하도록 한다거나 하는 등의 조치 때문에요.  그리고 리얼타임 관련 API도 풍부하게 제공을 해 줘야할 것이고, 이런 체계를 계속 업데이트하면서 유지를 안정적으로 해 줘야겠죠.

즉 결국 반응성과 처리율의 두 마리 토끼를 다 잡아야 하는 상황이 올 것으로 예상을 해 보았습니다.
특히 영상인식이라던가 딥러닝 같은것이 들어가기 시작하면 빵빵한 처리능력도 필요하고요.
모든 것들을 하나의 임무컴퓨터에 다 통합하는 것도 지금 경향이 그렇고...
멀티코어 CPU 하드웨어 기반이므로 충분히 가능하겠죠.
     
구름위하늘 19-11-04 12:04
   
RTOS는 반응성을 올리기 위한 것이 아닙니다.

어떤 이벤트 처리도 지정된 시간 안에 처리되거나 말거나 둘 중에 하나를 명확하게 하는 하는 것이죠. 일반 OS는 이벤트처리가 가능한 빨리(ASAP)되는 것이지만, 이게 언제 완료될지 또는 실패할지  확정될 수 없어요. 그때그때 다른 것이죠.

RTOS를 사용하는 이유는 모든 처리가 확정적으로 처리/반려를 정확한 시간 이내에 반응하도록 하기 위함입니다.
정리하면 빠른 반응성이 아니라 정확한 반응성을 위한 것 입니다.
WINKFX 19-11-03 22:53
   
전투기  엔진 기술 자립도 중요하지만  OS 기술 자립도 거기에 못지 않게 중요합니다.
IT 사회가 진행 될수록  제대로된 경쟁력있는 우리 독자적인 OS를 가져야  합니다.
이제  전투기도  HW, SW 큰  얼개는  모두  자립 수준에  도달했으니 엔진과  OS 자립에
차근 차근 노력해야 하여야  합니다.
     
구름위하늘 19-11-04 12:09
   
저는 그렇게 생각하지 않습니다. 독자적인 OS는 옵션이지 필수가 아닙니다.
RTOS를 포함하여 대부분의 OS는 그렇게 특별하지도 기술적으로 어려운 것이 아닙니다.
컴퓨터 전공자마다 마음만 먹으로 각자 만들 수 있는 것이 OS 입니다. 특히 LINUX 계열은 그 많은 LINUX 종류에서 볼 수 있듯이 쉽게 하나 만들 수 있습니다.
단지 꾸준한 유지보수와 수정이 필요한 것이죠.

이런 면에서 오히려 상용RTOS를 구매하고, 거기 위에서 시스템 소프트웨어를 개발하는 것이 훨씬 생산적입니다.
우리가 자동차를 만들기 위해서 바퀴부터 독자적으로 만들 필요는 없습니다.
뽐뿌맨 19-11-04 08:23
   
리눅스도 종류가 많죠.
초기리눅스는 1.4메가 디스켓 한장에 담겨 있었습니다.
뭐 거의 날 것 그대로죠.

산업용으로도 이미 견고함을 자랑하고 있죠.