Comparison of these RTOS

The table below compares RTOS

  • NuttX
  • FreeRTOS
  • Zephyr

regarding the following features:

  • Standardized API to Application level
  • Maturity
  • Supported Hardware
  • Scheduling options
  • IO Support (native or vendor-specific module needed)
  • Networking stack
  • Storage and Display
  • Memory Footprint
  • Safety Certification
  • License
  • POSIX level support

Key questions:

  • Evaluation POSIX-compliance of RTOS.
  • What is the effort in providing an additional layer for non-POSIX RTOS regarding micro-ROS or ROS 2?
  • Support of RTOS for specific HW platforms

Table:

OS NuttX FreeRTOS Zephyr
Feature      
Standardization      
POSIX yes partial partial
POSIX.1 1 yes wrapper partial
POSIX.1b 2 yes partial partial
POSIX.1c 3 yes yes partial
       
OSEK/VDX no no no
Maturity      
First release 2007 2014 2016
Last release 2019 2019 2019
Update rate about 3 months irregular 3 months
Community open-source open-source Linux Foundation Collaboration Project, (Intel, Linaro (ARM), nordic, NXP, Synopsys)
       
Supported Hardware      
Olimex STM32-E407 (Cortex-M4) yes yes yes, explicitly
Bosch XDK 5 not explicitly, but similar 6 yes yes
MPC57xx no no no
Scheduling      
Priority-based FIFO yes yes
Round-Robin 4 yes yes 6 co-operative
Sporadic Server yes no no
RBS no ? no
Semaphore /Mutex Management yes (Priority Inheritance) yes yes
IO      
I2C yes vendor-specific yes
SPI yes vendor-specific yes
UART hw-specific vendor-specific yes
USB yes vendor-specific yes
CAN yes vendor-specific yes
CAnopen no vendor-specific yes
Modbus yes vendor-specific ?
Networking 7      
BLE-Stack unclear no yes
6LoWPAN yes no yes
TLS   yes yes
Thread   ? ?
Ethernet yes no yes
Wifi yes no yes
NFC unclear no yes
RFID yes no yes
Storage & Display 7      
File System yes ? yes
Graphical User Interface   ? ?
Memory Footprint      
RAM “small footprint” 236 B scheduler + 64 B / task “small footprint”
ROM “small footprint” 5 - 10 kB “small footprint”
Safety Certification      
Software Development Process DO178B Level A / EUROCAE ED-12B no SafeRTOS: DO178C (Aerspace) by Wittenstein no
Functional Safety IEC-61508 no SafeRTOS (SIL 3) soon
License BSD MIT and Commercial Apache 2

1 Processes, signals, fpe, segmentation, bus errors, timers, file and directory ops, pipes, c library, IO Port Interface

2 Real-time, clocks, semaphores, messages, shared mem, async io, memory locking.

3 Threads.

4 Executing every task in round-robin fashion but only for a pre-defined time slice.

5 ARM Cortex M3 EFM32GG390F1024 Giant Gecko family (Silicon Labs). EFM32G880F120-STK ARM Cortex M3 EFM32GG390F1024 Giant Gecko family (Silicon Labs).

6 Note: Time slicing

7 Hardware-support for Networking and Storage often depends on the platform and sometimes packages of hardware-vendors are available, which work for a particular operating system. But it is in general difficult to determine the harware-support of a given RTOS.

Some Related Work: