NuttX
1. 개요
NuttX는 표준을 준수하는 C 언어로 작성된 실시간 운영체제(RTOS) 커널이다. GNU/Linux 빌드 방식을 사용하며, 모듈형 설계, BSD 소켓 인터페이스, 대칭 멀티 프로세싱(SMP), 쓰레드 로컬 저장소(TLS)를 지원한다. 또한, IPv4, IPv6, TCP/IP, UDP, ARP, ICMP, ICMPv6, IGMPv2, MLDv1/v2 등 유닉스 및 다양한 표준 네트워크 프로토콜을 지원하며, 네트워크 파일 시스템(NFS)과 Nutt Shell을 제공한다. NuttX는 3DR의 픽스호크 프로젝트 및 플라이트 컨트롤러에 사용되며, MP3 플레이어 등 여러 소형 장치 운영체제로도 활용된다. PX4 오토파일럿 드론, 픽스호크, OsmocomBB, Haltian의 Thingsee IoT 게이트웨이 장치, 모토로라 Moto Z, 소니의 오디오 프로세서 및 Spresense 개발 보드, 삼성전자 타이젠 RT, 샤오미 Vela 등 다양한 프로젝트에서 사용된다.
| 이름 | NuttX |
|---|---|
| 개발자 | 아파치 소프트웨어 재단 |
| 소스 모델 | 오픈 소스 |
| 지원 플랫폼 | ARM AVR AVR32 HCS12 LM32 MIPS RISC-V OpenRISC SuperH Xtensa x86 x86-64 Z80 |
| 계열 | POSIX |
| 최초 출시 | 2007년 |
| 최신 버전 | 12.7.0 |
| 최신 출시일 | 2024년 10월 30일 |
| 마케팅 대상 | 임베디드 시스템 |
| 프로그래밍 언어 | C C++ 어셈블리 |
| 작업 상태 | 현재 |
| 커널 종류 | 실시간 마이크로커널 |
| 라이선스 | 아파치 라이선스 2.0 |
| 웹사이트 | NuttX 공식 웹사이트 |
-
실시간 운영체제 -
Nucleus RTOS
Nucleus RTOS는 1993년 Accelerated Technology에서 출시된 실시간 운영 체제로, 다양한 아키텍처와 구성 요소를 지원하며 안전 인증을 받아 여러 제품에 사용되었다. -
실시간 운영체제 -
블랙베리 10
블랙베리 10은 2013년에 출시된 블랙베리 리미티드의 모바일 운영 체제로, 터치스크린 및 물리 키보드 스마트폰을 지원하며 제스처 기반 인터페이스, 블랙베리 허브 등의 기능을 제공했으나 2022년에 공식 지원이 종료되었다. -
마이크로커널 -
QNX
QNX는 고든 벨과 댄 도지가 개발한 마이크로커널 기반의 실시간 운영 체제로, 산업용 기계 제어 분야에서 신뢰성을 인정받아 현재는 블랙베리가 소유하며 자동차 인포테인먼트 시스템, 자율 주행 시스템 등 다양한 임베디드 시스템에 활용되고, POSIX 표준 준수로 유닉스 계열 소프트웨어와 호환된다. -
마이크로커널 -
Mach (커널)
Mach 커널은 1980년대 DARPA에서 개발한 멀티프로세서 운영 체제로, 멀티프로세서 지원, 거대한 메모리 공간 활용, 분산 시스템 지원을 목표로 개발되었으며, 마이크로커널 구조를 채택하여 다양한 운영체제의 기반 기술로 활용되었다. -
임베디드 운영체제 -
블랙베리 10
블랙베리 10은 2013년에 출시된 블랙베리 리미티드의 모바일 운영 체제로, 터치스크린 및 물리 키보드 스마트폰을 지원하며 제스처 기반 인터페이스, 블랙베리 허브 등의 기능을 제공했으나 2022년에 공식 지원이 종료되었다. -
임베디드 운영체제 -
QNX
QNX는 고든 벨과 댄 도지가 개발한 마이크로커널 기반의 실시간 운영 체제로, 산업용 기계 제어 분야에서 신뢰성을 인정받아 현재는 블랙베리가 소유하며 자동차 인포테인먼트 시스템, 자율 주행 시스템 등 다양한 임베디드 시스템에 활용되고, POSIX 표준 준수로 유닉스 계열 소프트웨어와 호환된다.
2. 핵심 기술
* 표준을 준수하는 C로 작성된 커널 (GNU/Linux 빌드 방식)을 사용한다.
* 모듈형 설계로 되어 있다.
* BSD 소켓 인터페이스를 제공한다.
* 대칭 멀티 프로세싱(SMP)을 지원한다.
* 쓰레드 로컬 저장소(TLS)를 지원한다.
* 네트워크 파일 시스템(NFS)을 지원한다.
* 유닉스 및 다양한 표준 네트워크 프로토콜을 지원한다.
* Nutt Shell을 제공한다.
2.3. 인터페이스 및 프로토콜 지원
* BSD 소켓 인터페이스를 지원한다.
* 대칭 멀티 프로세싱(SMP)을 지원한다.
* 쓰레드 로컬 저장소(TLS)를 지원한다.
* 네트워크 파일 시스템(NFS)을 지원한다.
* 유닉스 및 다양한 표준 네트워크 프로토콜을 지원한다.
2.4. Nutt Shell
Nutt Shell (NSH)을 제공하여 사용자 인터페이스를 제공한다.
3. 저수준 저전력 장치 운영체제
NuttX는 오픈소스 및 오픈 하드웨어로 유명한 드론 업체 3DR의 픽스호크 프로젝트 및 플라이트 컨트롤러(FC)에 사용되는 운영체제이다. 리눅스재단의 드론코드 프로젝트는 PX4를 채택하고 있다.
NuttX는 자원을 최소한으로 구성하여 최적의 성능을 얻기 위한 저수준에서 매우 효율적이며, MP3 플레이어 등 여러 소형 장치의 운영체제로 사용되고 있다.
3.1. 픽스호크 프로젝트
3DR의 픽스호크 프로젝트(Pixhawk project, PX4) 및 플라이트 컨트롤러(FC)에 NuttX가 사용되었다. 픽스호크 플라이트 컨트롤러는 32비트 ARM 아키텍처인 Cortex M4를 장착했다.
3.3. 기타 소형 장치
NuttX는 자원을 최소한으로 구성하여 최고의 성능을 내도록 설계되어, 저수준에서 매우 효율적이다. 또한 MP3 플레이어 등 여러 소형 장치에서 운영체제로 사용되고 있다.
4. NuttX를 사용하는 프로젝트
NuttX는 MP3 플레이어 등 여러 소형 장치에서 운영체제로 사용될 정도로 리소스를 최소한으로 사용하면서도 최적의 성능을 낼 수 있도록 설계되어 저수준에서 매우 효율적이다.
4.1. 드론 및 오토파일럿
NuttX는 오픈소스 및 오픈 하드웨어로 유명한 드론 업체 3DR의 픽스호크 프로젝트(PX4) 및 플라이트 컨트롤러(FC)에 사용되는 운영체제이다. 픽스호크 플라이트 컨트롤러는 32비트 ARM 아키텍처인 Cortex M4를 장착했다. 리눅스 재단의 드론 코드 프로젝트는 PX4를 채택하고 있다.
* PX4 오토파일럿 드론.
* 고급 사용자 친화적인 오토파일럿인 픽스호크.
4.2. 모바일 및 IoT
* OsmocomBB는 NuttX를 사용하여 휴대폰용 운영 체제를 개발한다.
* Haltian의 Thingsee IoT 게이트웨이 장치는 NuttX를 기반으로 하는 ThingseeOS 운영 체제를 사용한다.
* 모토로라 Moto Z.
4.3. 오디오 프로세서
소니는 오디오 프로세서에 NuttX를 사용하고 있다.
4.4. 개발 보드
소니는 Spresense 개발 보드에 NuttX를 사용하고 있다.