리눅스 커널 6.12 버전이 공개되었습니다. 이번 최신 버전에서는 실시간(Real-time) 리눅스 기능이 내장되어, 별도의 패치 세트 없이 리눅스 커널 코드만으로 실시간 운영 체제(RTOS) 환경을 구축할 수 있게 되었습니다. 20년 간의 발전을 거쳐 진화한 실시간 리눅스는 현재 임베디드 분야에서 큰 주목을 받고 있습니다.
지난 9월 29일, 리누스 토발즈가 '리눅스 6.12' 릴리스 후보(rc)1 버전을 배포했습니다. 이번 버전에서는 RTOS 기능을 위한 'PREEMPT_RT'가 메인라인에 병합되었으며, 새로운 스케줄러 'sched_ext'도 추가되었습니다.
RTOS(실시간 운영체제)는 매우 짧은 시간 내에 작업을 처리하도록 설계된 특수한 운영체제입니다. 밀리초나 마이크로초에 불과한 시간 내 이벤트에 응답하고 데이터를 처리해야 하는 역할을 합니다. 주로 산업용 제어 시스템, 로봇, 오디오 기기 등에서 정확한 타이밍이 요구되는 환경에서 사용됩니다. 대표적인 RTOS로는 윈드리버의 브이엑스웍스(VxWorks)와 블랙베리 QNX의 뉴트리노(Neutrino)가 있습니다. 브이엑스웍스는 미국 항공우주국(NASA)의 화성 탐사선과 보잉 787 항공기의 전자 시스템 제어에 활용되며, 뉴트리노는 자동차의 전자 제어 시스템에서 많이 채택됩니다.
그동안 리눅스를 RTOS 기반 시스템으로 사용하려면 PREEMPT_RT란 별도의 커널용 패치 세트를 활용해야 했는데요, 이제는 그럴 필요가 없어진 거죠.
'PREEMPT_RT'의 출발은 2005년으로 거슬러 올라갑니다. 물론 실시간 리눅스라는 개념은 그보다 훨씬 이전부터 존재했습니다. 1990년대 후반에는 리눅스가 실시간 애플리케이션을 지원할 필요성이 제기되면서, 리눅스 커널과 별도의 실시간 커널을 개발하려는 시도가 있었습니다. 이때 KURT, RTAI, RTLinux와 같은 여러 학술 프로젝트가 생겨났습니다. 이후 2004년, 잉고 말나르 리눅스 커널 수석 개발자는 여러 학술 프로젝트의 기술을 재구성하여 기존 리눅스 커널을 수정하는 방식으로 'PREEMPT_RT'를 시작했습니다. 2009년까지 토마스 글릭스너, 피터 질스트라, 로스테트 등 소규모 팀이 프로토타입이었던 PREEMPT_RT를 별도의 패치 세트로 통합하였으며, 오늘날까지 수년에 걸쳐 PREEMPT_RT의 여러 요소가 리눅스 커널에 포함되었습니다. 대표적으로는 NO_HZ, mutexes, Ftrace, Priority inheritance 등이 있습니다.
20년이라는 긴 시간이 지나고 나서야 리눅스 커널에 PREEMPT_RT가 포함된 이유는 무엇일까요? PREEMPT_RT가 리눅스 커널 메인라인에 병합되기까지의 과정은 결코 쉬운 일이 아니었습니다. 우선, 개발진이 실시간 리눅스 구현에 대한 요구 기준을 매우 엄격하게 유지했기 때문입니다. RTOS의 핵심 요건은 완벽한 신뢰성을 보장해야 한다는 것입니다. RTOS는 항상 일관되어야 하며, 버그가 없어야 합니다. 아무리 빠른 시간에 작업을 처리할 수 있다 하더라도, 그 결과를 신뢰할 수 없다면 장애에 극도로 민감한 시스템에서는 절대 사용할 수 없습니다. RTOS가 사람의 생명과 직결되는 환경에서 사용된다는 점을 감안하면, 이러한 요구가 얼마나 중요한지 이해할 수 있습니다.
PREEMPT_RT는 리눅스 커널 메인라인에 포함되기까지 최소 세 번의 재작성을 거쳐야 했습니다. 실시간 리눅스에 대한 불규칙한 자금 지원 또한 개발 속도를 저하시키는 요인이었습니다. 마지막으로 해결해야 할 장애물은 '프린트케이(print_k)' 함수 작업이었습니다. 프린트케이는 커널의 디버깅 도구로 사용되며, 이 함수 호출 시 리눅스 프로그램에 지연이 발생합니다. 리누스 토발즈는 프린트케이 수정에 대해 실시간 리눅스 측과 이견을 보였고, 긴 논의 끝에 올해 초에야 타협안을 도출했습니다. 이렇게 하여 PREEMPT_RT의 메인라인 병합이 마침내 이뤄지게 된 것이죠.
리눅스 커널 6.12의 최종 버전은 11월 중 배포될 것으로 예상됩니다. 앞으로 얼마나 많은 RTOS 애플리케이션이 리눅스로 이식될지는 확실하지 않지만, 커널 차원에서 RTOS 기능을 지원함으로써 개발자들의 유지보수 부담이 상당 부분 해소될 것으로 기대됩니다.
콘텐츠 제공 : 바이라인네트워크(byline.network)