RTOS Comparison
Overview
The real-time operating system landscape spans from ultra-minimal MCU kernels to full POSIX-compliant microkernel operating systems with formal safety certifications. The choice of RTOS is often the most consequential long-term architectural decision in an embedded or real-time project — switching RTOS mid-development is prohibitively expensive, and RTOS characteristics fundamentally constrain application design.
This document compares the major RTOS options across the axes that matter most for product development: hardware support, certification status, footprint, POSIX compliance, licensing, and real-world deployment history.
Prerequisites
- Embedded systems fundamentals (see Section 34)
- Real-time fundamentals: scheduling theory, WCET, schedulability (see 01-real-time-fundamentals.md)
- Understanding of POSIX threading APIs
- Basic understanding of safety standards (DO-178C, IEC 61508, ISO 26262)
Historical Context
RTOS History Timeline:
1982 QNX (Quantum Software Systems) — first POSIX microkernel RTOS
Designed for real-time control on early PCs
1987 VxWorks (Wind River Systems) — commercial RTOS for embedded
Used in radar systems, avionics from day one
Eventual Mars rover heritage
1988 RTEMS (Real-Time Executive for Multiprocessor Systems)
US Army contract, originally for missile guidance
Becomes open source, used extensively in space
1996 OSEK/VDX automotive RTOS standard — forerunner of AUTOSAR OS
Consortium of German auto OEMs + suppliers
2003 FreeRTOS — open source, MIT, minimal footprint
Becomes most-deployed RTOS by volume within 10 years
2009 BlackBerry acquires QNX (with subsequent Qualcomm licensing deals)
QNX dominates automotive infotainment
2011 Microsoft releases ThreadX (acquired 2019 as Azure RTOS)
Targets ultra-low-footprint MCU market
2016 Zephyr Project — Linux Foundation
IoT focus, Apache 2.0, modern architecture
2017 Amazon acquires FreeRTOS, releases MIT, creates AWS IoT integration
2024 Linux 6.12 merges PREEMPT_RT — full RT mainline Linux
VxWorks
Developed by Wind River Systems (founded 1983, acquired by Intel 2009, then by TPG Capital 2018), VxWorks is the flagship commercial RTOS for safety-critical and high-performance embedded systems.
Architecture
+--------------------------------------------------+
| VxWorks Application Layer |
| POSIX tasks, C++17/20, RTP (Real-Time Processes)|
+--------------------------------------------------+
| VxWorks RTOS Kernel |
| Wind Microkernel | POSIX | TIPC | WDB Debugger |
| Task sched (FP) | IPC | Net | File Systems |
+--------------------------------------------------+
| Board Support Package (BSP) |
| Architecture port (PowerPC, ARM, x86, MIPS) |
+--------------------------------------------------+
| Hardware |
+--------------------------------------------------+
Key Characteristics
- Preemptive, priority-based scheduling with 256 priority levels
- POSIX PSE52 profile (certified conformance)
- Real-time processes (RTP): memory-isolated userspace processes with MMU support, similar to Linux processes
- Kernel tasks: share address space, minimal overhead, for hard RT components
- VxWorks 7: component-based, modular; replaces VxWorks 5 and 6
- Wind River Linux integration: shared toolchain, Eclipse-based IDE (Wind River Workbench)
Safety Certifications
VxWorks is the most heavily certified commercial RTOS:
| Standard | Level | Domain |
|---|---|---|
| DO-178C | Level A (DAL A) | Avionics |
| ED-12C | Level A | European avionics |
| IEC 61508 | SIL3 | Industrial |
| EN 50128 | SIL3 | Railway |
| IEC 62304 | Class C | Medical |
| ISO 26262 | ASIL D | Automotive |
DO-178C Level A is the highest level of avionics software assurance — required for software whose failure could cause catastrophic aircraft loss. Achieving it requires full WCET analysis, MC/DC (Modified Condition/Decision Coverage) code coverage, and traceability from requirements to test results.
Production Heritage
Mars Curiosity Rover (2012): VxWorks 6.x on a BAE Systems RAD750 radiation-hardened PowerPC 750 processor at 200MHz. The flight software manages all rover operations: arm control, autonomous hazard avoidance, sample analysis instrument sequencing, communication scheduling with the Deep Space Network.
Mars Perseverance Rover (2021): Same VxWorks + RAD750 combination (radiation-hardened PowerPC has limited alternatives in deep space). The Mars Helicopter Ingenuity, however, runs Linux on a Snapdragon 801 — demonstrating the transition even in space.
F-35 Lightning II Mission Systems: VxWorks on multiple avionics computers. DO-178C Level A for flight-critical functions. Involves real-time sensor fusion from radar, EW systems, and electro-optical sensors.
US Navy's Aegis Combat System: VxWorks on distributed mission computers. Coordinates radar, weapons systems, and threat assessment in real time.
Footprint
Kernel alone: ~100KB. A minimal bootable VxWorks image with networking and filesystem: ~2-4MB. Full-featured POSIX environment: 10-20MB. Not suitable for MCUs below 1MB flash/RAM.
Licensing
Commercial, per-seat development license. Runtime license fees per deployed unit for some configurations. Significant cost barrier for startups; standard choice for defense and aerospace prime contractors.
QNX Neutrino RTOS
QNX was developed by Gordon Bell and Dan Dodge at Quantum Software Systems in Ottawa in 1980-1982. Its defining characteristic — a true microkernel where all OS services (filesystems, networking, drivers) run as user-space processes — was novel in 1982 and remains architecturally distinctive.
Microkernel Architecture
QNX Microkernel vs. Monolithic Kernel:
Monolithic (Linux): QNX Microkernel:
+---------------------------+ +---------------------------+
| Applications | | Applications |
+---------------------------+ +---------------------------+
| Kernel (all services) | | FS | Net | Display | IO |
| FS, Net, Drivers, MM | | (user-space processes) |
+---------------------------+ +---------------------------+
| Hardware | | Microkernel (10-20KB) |
+---------------------------+ | Scheduling, IPC, signals |
+---------------------------+
| Hardware |
+---------------------------+
QNX IPC: Synchronous message passing between processes
client sends msg -> blocks until server replies
Server receives -> processes -> replies -> client unblocks
Zero-copy via shared memory for large messages
Key Characteristics
- Synchronous message passing:
MsgSend/MsgReceive/MsgReplyprimitives. All OS services are message-passing servers. - Fault isolation: A crashing filesystem driver can be restarted without kernel crash (unlike monolithic kernels). Critical for systems requiring five-nines availability.
- QNX Momentics IDE: Eclipse-based development environment with real-time analysis tools.
- Adaptive partitioning scheduler: CPU bandwidth guaranteed per partition — ensures safety-critical partitions get their CPU even if non-critical partitions run amok.
- POSIX compliant: Full POSIX.1-2008 conformance.
Safety Certifications
| Standard | Level | Domain |
|---|---|---|
| IEC 61508 | SIL3 | Industrial |
| IEC 62304 | Class C | Medical |
| ISO 26262 | ASIL D | Automotive |
| IEC 61511 | Process industry |
Note: QNX does NOT have DO-178C certification for avionics (VxWorks and RTEMS dominate there).
Automotive Dominance
QNX owns roughly 70-80% of the automotive infotainment operating system market. Most car head units built in the 2010s run QNX:
- BMW iDrive (many generations): QNX-based IVI
- General Motors' CUE infotainment: QNX
- Ford SYNC (early generations): Microsoft then QNX
- Audi MMI: QNX on the main application processor
- Porsche PCM: QNX
BlackBerry's 2010 acquisition of QNX was strategic — positioning the company in automotive software as smartphone revenues declined. The QNX Hypervisor enables safety-critical vehicle functions (instrument cluster, ADAS) to run in isolated partitions alongside non-safety infotainment.
Production Example: BlackBerry QNX in Automotive
Modern vehicles running QNX use the adaptive partitioning scheduler to guarantee CPU time to instrument cluster rendering (ASIL B) while sharing hardware with infotainment applications (QM). The hypervisor extends this to full OS-level isolation — running both QNX (safety-critical) and Android (infotainment) on the same SoC with hardware-enforced memory isolation.
RTEMS
RTEMS (Real-Time Executive for Multiprocessor Systems) began in 1988 under a US Army contract for missile guidance systems. It was released as open source in the mid-1990s and has become the RTOS of choice for space missions and scientific instruments.
Architecture
RTEMS implements the POSIX PSE51 thread profile (subset), a Classic API (older, task-based), and the FACE (Future Airborne Capability Environment) technical standard profile. It supports SMP on multicore processors.
Space Mission Heritage
RTEMS has an extraordinary deployment record in space:
| Mission | Agency | Notes |
|---|---|---|
| Mars Express | ESA | In orbit around Mars since 2003 |
| Rosetta / Philae | ESA | Comet rendezvous 2014 |
| BepiColombo | ESA/JAXA | Mercury mission, launched 2018 |
| Parker Solar Probe | NASA | Closest approach to Sun |
| Lunar Reconnaissance Orbiter | NASA | Moon mapping |
| Deep Space 1 | NASA | Ion drive demonstration |
| INTEGRAL | ESA | X-ray observatory |
| James Webb Space Telescope (JWST) flight software components | NASA | Selected subsystems |
| Dawn | NASA | Asteroid belt mission |
The ESA standard for spacecraft software (ECSS-E-ST-40) effectively mandates RTEMS or equivalent for non-Linux spacecraft software. Its open-source nature, POSIX subset support, and long maintenance history make it the default for ESA missions.
Key Characteristics
- Open source, maintained by OAR Corporation and community
- POSIX PSE51 subset (no filesystem, no process model — only threads)
- Supports 50+ BSPs (Board Support Packages)
- SMP support since RTEMS 4.11
- No formal safety certification out of the box (but used in safety-adjacent space systems under mission-specific qualification processes)
Footprint
Typical RTEMS kernel image: 50-300KB depending on configuration. Can run on SPARC (ERC32, LEON), PowerPC, ARM, RISC-V, x86 — the breadth reflects its space and defense customer base.
Zephyr RTOS
Zephyr was launched in 2016 by the Linux Foundation as an open-source RTOS for IoT and embedded devices, with founding support from Intel, NXP, Synopsys, and Nordic Semiconductor. It takes inspiration from Linux's architecture (Device Tree, Kconfig, modular driver model) while targeting MCU-class hardware.
Architecture
+--------------------------------------------------+
| Zephyr Application |
+--------------------------------------------------+
| POSIX API | Native Zephyr API | Shell/CLI |
+--------------------------------------------------+
| Subsystems: BT, WiFi, Net, USB, FS, Crypto |
| Drivers: 300+ device drivers |
+--------------------------------------------------+
| Kernel: Scheduler, IPC, Memory, Power Mgmt |
+--------------------------------------------------+
| Device Tree Hardware Abstraction |
+--------------------------------------------------+
| Hardware (ARM Cortex-M/A, RISC-V, Xtensa, x86) |
+--------------------------------------------------+
Key Characteristics
- Apache 2.0 license: Truly open, no GPL copyleft. Enterprise-friendly.
- West build tool: Python-based meta-tool managing multi-repo workspaces, CMake-based builds, and board configuration.
- Device Tree for MCUs: Borrowed from Linux — boards described in DTS files, drivers match via compatible strings.
- Bluetooth LE stack: Full host stack (HCI, L2CAP, ATT, GATT, SM) in tree. Used on nRF52 series, ESP32, STM32WB.
- Matter/Thread/Zigbee: Integrated protocol support for smart home IoT.
- 900+ supported boards (as of 2024): Nordic nRF series, STM32, NXP i.MX RT, Espressif ESP32, Raspberry Pi Pico.
Security Focus
Zephyr's PSA Certified implementation (ARM Platform Security Architecture) and MbedTLS integration make it a strong choice for IoT devices requiring: - Secure boot with key management - TLS 1.3 client/server - Hardware crypto acceleration integration (STM32 Crypto, nRF Security) - Trusted Execution Environment support (ARM TrustZone, Cortex-M33)
Production Use
- Nordic Semiconductor nRF Connect SDK: Zephyr is the OS in the nRF Connect SDK, the standard development environment for nRF52/nRF53/nRF91 chips. These chips power millions of BLE devices, Thread networks, and LTE-M IoT nodes.
- Google Thread: Google's Thread-based IoT devices (Nest Hub, Nest Mini) use Zephyr-based firmware on the Thread module.
- Amazon Sidewalk: IoT edge network using Zephyr on LoRa-enabled microcontrollers.
Azure RTOS / ThreadX (now Eclipse ThreadX)
Originally written by William Lamie at Express Logic in 1997 as a commercial ultra-compact RTOS (full kernel in 9KB flash, 2KB RAM). Microsoft acquired Express Logic in 2019 and rebranded as Azure RTOS. In 2023, Microsoft transferred Azure RTOS to the Eclipse Foundation as Eclipse ThreadX under the MIT license.
Key Characteristics
- Ultra-small footprint: Kernel core ~9KB flash, 2KB RAM (verified on Cortex-M0)
- Picokernel architecture: Threads run in a flat address space; no process isolation
- POSIX compatibility layer:
px_prefix POSIX calls map to ThreadX primitives - FileX, NetX Duo, USBX, GUIX: Ecosystem of companion middleware
- IEC 61508 SIL4, DO-178C Level B, IEC 62304 Class C certifications (pre-Eclipse; availability under Eclipse to be confirmed)
- Azure IoT integration: Direct integration with Azure Device Provisioning Service, IoT Hub
Target Market
ThreadX targets the same space as FreeRTOS: MCU-class devices. Its differentiator is the formal safety certifications and its extremely small certified footprint. The transfer to Eclipse Foundation makes it competitive with FreeRTOS on licensing while retaining its certification artifacts.
RTOS Comparison Matrix
+------------+----------+-------+----------+--------+----------+----------+
| RTOS | Footprint| POSIX | Cert |License | Primary | Arch |
| | (min) | Level | (highest)| | Market | Support |
+------------+----------+-------+----------+--------+----------+----------+
| VxWorks 7 | ~2MB | PSE52 | DO178C A | Comm. | Avionics | ARM,x86 |
| | | | ASIL D | | Defense | PPC,MIPS |
+------------+----------+-------+----------+--------+----------+----------+
| QNX | ~300KB | Full | ASIL D | Comm. |Automotive| ARM,x86 |
| Neutrino | | POSIX | IEC 61508| | Medical | AArch64 |
+------------+----------+-------+----------+--------+----------+----------+
| RTEMS | ~50KB | PSE51 | Mission- | LGPL | Space | SPARC |
| | | | specific | | Science | ARM,PPC |
| | | | | | | RISC-V |
+------------+----------+-------+----------+--------+----------+----------+
| Zephyr | ~20KB | PSE51 | PSA Cert | Apache | IoT, BLE | Cortex-M |
| | | subset| | 2.0 | Consumer | RISC-V |
| | | | | | | Xtensa |
+------------+----------+-------+----------+--------+----------+----------+
| FreeRTOS | ~5KB | None | None | MIT | MCU IoT | Cortex-M |
| | | (ext) | (FP-ext) | | Consumer | RISC-V |
| | | | | | | Xtensa |
+------------+----------+-------+----------+--------+----------+----------+
| Eclipse | ~9KB | Layer | DO178C B | MIT | MCU IoT | Cortex-M |
| ThreadX | | | IEC61508 | | Medical | ARM, x86 |
+------------+----------+-------+----------+--------+----------+----------+
| PREEMPT_RT | >10MB | Full | None | GPL v2 | Industrial| x86 |
| Linux | | POSIX | (process)| (Linux)| Telecom | ARM64 |
+------------+----------+-------+----------+--------+----------+----------+
RTOS Selection Criteria Checklist
1. Hardware Constraints
[ ] What is the minimum RAM available for RTOS + app code?
< 10KB: bare-metal only
10-64KB: FreeRTOS, ThreadX, Zephyr
64KB-1MB: Any MCU RTOS
> 1MB: Any RTOS including VxWorks, QNX
> 32MB: Consider embedded Linux / PREEMPT_RT
[ ] What processor architecture?
Cortex-M: FreeRTOS, Zephyr, ThreadX (first-class)
Cortex-A: QNX, VxWorks, PREEMPT_RT Linux
SPARC/PowerPC: RTEMS, VxWorks
RISC-V: Zephyr, FreeRTOS, RTEMS
[ ] Single-core or SMP?
SMP: Verify RTOS SMP support and scalability
2. Safety and Certification Requirements
[ ] Is safety certification required?
DO-178C Level A (avionics safety-critical): VxWorks
DO-178C Level B-C: VxWorks, ThreadX
IEC 61508 SIL3-4: QNX, VxWorks, ThreadX
ISO 26262 ASIL D (automotive): QNX, VxWorks
IEC 62304 Class C (medical): QNX, VxWorks, ThreadX
No certification required: FreeRTOS, Zephyr, RTEMS, PREEMPT_RT
[ ] Can I afford the certification cost?
Full pre-certified RTOS: VxWorks, QNX (significant license cost)
Build-your-own from open source: FreeRTOS + qualification artifacts
(2-5x engineering effort but no license cost)
3. Real-Time Requirements
[ ] What is the worst-case response time requirement?
< 10µs: Bare-metal on Cortex-M or hardware FPGA
10-100µs: Bare-metal or RTOS with priority tuning
100µs-1ms: Any RTOS including PREEMPT_RT on x86
1ms-10ms: Any RTOS comfortably
> 10ms: Even standard Linux works
[ ] Is WCET analysis required?
Yes (for certification): Use VxWorks or RTEMS + AbsInt aiT toolchain
No: Measurement-based WCET acceptable
4. Connectivity and Software Ecosystem
[ ] Does the product need networking (TCP/IP, TLS, MQTT, HTTP)?
Lightweight MCU stack: FreeRTOS+TCP, Zephyr Net, LwIP
Full-featured: PREEMPT_RT Linux, QNX, VxWorks networking
[ ] Is Bluetooth LE required?
Best native support: Zephyr (on Nordic nRF, ESP32, STM32WB)
Commercial stack: QNX, VxWorks (add-on cost)
[ ] Does the product need a filesystem?
MCU: FAT (FatFS), LittleFS, SPIFFS
Full: Linux VFS, QNX filesystem servers
[ ] POSIX APIs needed for software portability?
Full POSIX: QNX, VxWorks, PREEMPT_RT Linux
POSIX subset: RTEMS (PSE51), Zephyr (PSE51), FreeRTOS+POSIX
None: FreeRTOS native API, bare-metal
5. Licensing and Business Model
[ ] What licensing model fits the business?
Open source (MIT): FreeRTOS, Zephyr, Eclipse ThreadX
Open source (LGPL): RTEMS
Open source (GPL/copyleft): PREEMPT_RT Linux kernel
Commercial license: VxWorks, QNX
[ ] Will you sell in volume (>100K units)?
FreeRTOS, Zephyr: no per-unit royalties
VxWorks: per-unit royalties for some configurations
PREEMPT_RT Linux: GPL copyleft — must release kernel modifications
[ ] Does the device need OTA firmware updates?
Zephyr MCUboot: integrated secure bootloader + OTA
AWS FreeRTOS: AWS OTA with code signing
QNX: vendor OTA solutions
PREEMPT_RT Linux: SWUpdate, Mender, Balena
Domain-Specific RTOS: AUTOSAR
AUTOSAR (Automotive Open System Architecture) is not an RTOS but a standardized OS interface for automotive ECUs. AUTOSAR OS (based on OSEK/VDX) specifies:
- Fixed-priority preemptive scheduling (OSEK scheduling)
- Alarms and schedule tables (for time-triggered tasks)
- Task, ISR category 1 and 2, resource management
- Error hooks and protection hooks
AUTOSAR Classic: certified implementations from ETAS (ISOLAR), Vector (MICROSAR), TTTech (SafeAdaptor). Runs on microcontrollers (Infineon AURIX, Renesas RH850, NXP S32K).
AUTOSAR Adaptive (2017+): POSIX-based, runs on microprocessors (ARM Cortex-A). Enables service-oriented architecture for ADAS, autonomous driving. Can run on PREEMPT_RT Linux.
Production Examples Summary
| Product | RTOS | Hardware | Why |
|---|---|---|---|
| Mars Curiosity/Perseverance | VxWorks | RAD750 | DO-178C, space heritage |
| Boeing 787 Avionics | VxWorks | PowerPC | DO-178C Level A |
| BMW iDrive (2010s) | QNX | ARM Cortex-A | Automotive safety, POSIX |
| ESA Rosetta Comet Mission | RTEMS | SPARC ERC32 | Open source, ESA standard |
| Nordic nRF52-based BLE devices | Zephyr | Cortex-M4 | BLE stack, IoT ecosystem |
| Beckhoff EtherCAT Controller | PREEMPT_RT | x86 | Linux ecosystem + RT |
| Amazon Echo Dot MCU | FreeRTOS | ARM Cortex-M | Low cost, AWS integration |
| Philips MRI Scanner | QNX/VxWorks | Varies | IEC 62304 Class C |
Debugging Notes
- VxWorks Wind River Workbench: Full graphical debugger with real-time trace, CPU utilization, memory viewer, and kernel object inspection.
ti()command from VxWorks shell shows task information. - QNX Momentics IDE:
pidincommand shows all processes and threads with priorities.traceloggerrecords kernel events for post-mortem analysis in QNX System Profiler. - RTEMS gdb port: RTEMS includes a GDB stub; connect from host gdb via serial or UDP for remote debugging on space hardware. The RTEMS trace linker enables function call tracing without modifying source.
- Zephyr logging: Built-in structured logging with multiple backends (UART, SWO/ITM, Bluetooth, network).
CONFIG_LOG_PROCESS_THREAD_CUSTOM_PRIORITYandCONFIG_LOG_BUFFER_SIZEtune logging overhead. - Cross-RTOS debugging patterns: The invariant is always the same — identify which task holds a mutex that your stuck task is waiting for. RTOS-aware debuggers expose this directly. Without one, walk the task list looking for tasks in blocked state, then trace the resource they block on.
Security Implications
- VxWorks vulnerabilities: In 2019, 11 zero-day vulnerabilities ("URGENT/11") were disclosed in VxWorks 6.x TCP/IP stack. Over 2 billion devices affected across avionics, medical, industrial. Patching required vendor firmware updates — infeasible for deployed avionics without a lengthy recertification cycle.
- QNX microkernel isolation: The microkernel design limits blast radius — a compromised driver process cannot directly attack the kernel. But IPC between processes is a large attack surface, and compromised IPC server can affect all clients.
- Supply chain for COTS RTOS: Commercial RTOS source code may not be fully auditable. FreeRTOS, Zephyr, RTEMS, and Eclipse ThreadX are fully open-source, enabling complete security audit.
- Secure OTA: Any connected RTOS-based device requires code-signed OTA updates. VxWorks and QNX have commercial OTA solutions. Zephyr MCUboot and FreeRTOS OTA with AWS code signing provide open-source alternatives.
Performance Implications
- Context switch overhead: Bare-metal has zero RTOS overhead. FreeRTOS: ~200 cycles on Cortex-M4. Zephyr: ~400-600 cycles. VxWorks: ~500-800 cycles on PowerPC. QNX: micro-kernel IPC adds overhead vs. monolithic — each OS service call involves message passing.
- QNX microkernel IPC performance: Synchronous
MsgSend/MsgReplyon the same CPU: ~2-5µs. Cross-CPU message: ~10-20µs. This overhead is acceptable for most applications but rules QNX out for extremely tight control loops where every µs matters. - Zephyr memory footprint growth: Enabling additional Zephyr subsystems (BLE, networking, filesystems) adds to footprint non-linearly. Profile with
west build -t rom_reportto see per-subsystem flash usage.
Failure Modes
- Priority inheritance missing from RTOS selection: Choosing an RTOS without priority inheritance (or with it disabled) for multi-priority systems with shared resources. Priority inversion causes sporadic deadline misses that are difficult to reproduce and diagnose.
- Certification scope creep: Assuming that using a certified RTOS automatically certifies the application software. Certification of VxWorks or QNX certifies the RTOS kernel — not the application. Application code must independently meet the same certification standard.
- Vendor lock-in: Years into product development, the RTOS vendor raises licensing prices, discontinues support for the target architecture, or is acquired (QNX by BlackBerry, Wind River by Intel then TPG). Mitigation: abstract RTOS interfaces behind a HAL or use open-source RTOS.
- Long-term support: RTEMS is ideal for space because software must operate for 10-20 years. VxWorks 5 was discontinued years ago. Products built on discontinued RTOS versions face costly migration.
Future Directions
- Mixed-criticality systems (MCS): Consolidating ASIL D (safety-critical) and QM (non-safety) software on the same SoC using hypervisors. QNX Hypervisor, VxWorks Hypervisor, and open-source Xen/KVM-based approaches. Reduces BOM cost by eliminating separate ECUs.
- RISC-V RTOS proliferation: FreeRTOS, Zephyr, and RTEMS already support RISC-V. As RISC-V application processors mature, expect VxWorks and QNX to add support. The open ISA reduces the barrier to safety-certified hardware.
- Rust-based RTOS: RTIC (Real-Time Interrupt-driven Concurrency) is a Rust framework for Cortex-M. Hubris OS from Oxide Computer. Type-safety and memory safety at the language level as an alternative to OS-enforced protection.
- SOAFEE (Scalable Open Architecture for Embedded Edge): ARM-led initiative for standardizing software architecture for software-defined vehicles. Based on Linux + containers. Represents a potential long-term shift from traditional RTOS to containerized workloads in automotive.
Exercises
- Evaluate RTOS candidates for a blood glucose monitor: 1 hard real-time measurement task (1ms), 1 BLE task, 1 display task, battery operation, IEC 62304 Class C required, 256KB RAM, Cortex-M33. Write a justification matrix comparing FreeRTOS, Zephyr, and Eclipse ThreadX on all selection criteria.
- Compare the context switch latency of FreeRTOS and Zephyr on the same STM32 Nucleo board by measuring GPIO toggle time around
xTaskYield()/k_yield()respectively. Determine which is faster and by how much. - Read the URGENT/11 VxWorks vulnerability disclosure. Identify which TCP/IP stack components were affected, how devices were exploited, and what architectural decision (third-party TCP/IP stack not audited) enabled the vulnerability.
- Design the RTOS architecture for a drone flight controller: identify all tasks (motor PWM, IMU reading, GPS parsing, RC input, telemetry, logging), assign priority levels, specify worst-case execution times, and perform a Rate Monotonic schedulability analysis.
- Implement the same producer-consumer task in FreeRTOS and in Zephyr (if you have two target boards, or use emulated environments). Compare code structure, API ergonomics, and measured worst-case throughput through the queue primitive on both.
References
- Wind River VxWorks Documentation: https://docs.windriver.com/
- QNX Neutrino RTOS Documentation: https://www.qnx.com/developers/docs/
- RTEMS Project: https://www.rtems.org/
- Zephyr Project Documentation: https://docs.zephyrproject.org/
- Eclipse ThreadX (Azure RTOS): https://github.com/eclipse-threadx
- FreeRTOS: https://www.freertos.org/
- AUTOSAR Foundation: https://www.autosar.org/
- OSADL RTOS Licensing Survey: https://www.osadl.org/
- Jack Ganssle, "An RTOS Shoot-Out" (Embedded.com)
- Bill Lamie, "ThreadX Design" (Express Logic Technical Papers)
- NASA JPL "Mars 2020 Flight Software Architecture" (IEEE Aerospace Conference 2021)
- URGENT/11 Disclosure: Armis Security, 2019
- IEC 61508 Ed.2, "Functional safety of E/E/PE safety-related systems" (IEC, 2010)
- DO-178C, "Software Considerations in Airborne Systems and Equipment Certification" (RTCA, 2011)