RTOS.
Not the robot in a new Star Wars movie, but the silent orchestrator behind IoT devices, aeronautic systems, air control, and more.
Right here on Earth.
An RTOS — or real-time operating system — is designed to manage resources and execute programs for applications where precise timing is crucial.
But not all RTOSs are created equal; you want to choose the best RTOS suited to your specific project.
(After all, you wouldn’t use one that’s perfect for automotives on a smartphone.)
In this blog post, we’ll take a look at the world of RTOSs and share what they’re capable of. We’ll also cover the different types of RTOSs, as well as our top 15 picks of RTOSs to take into 2024 for your next big projects.
What is an RTOS?
A real-time operating system (RTOS) is specifically designed for managing resources and executing programs with strict time constraints. This makes it crucial for real-time applications where milliseconds matter.
In fact, industries like aerospace, automotive, industrial automation, medical devices, and telecommunications use RTOSs.
“How is it different from a traditional operating system?” you might ask.
Unlike a normal OS, an RTOS offers deterministic, hard real-time responses to external events, so task execution durations are more predictable.
An RTOS can also only execute one program at a time, but it rapidly switches between tasks, giving the appearance that it’s executing them all at once simultaneously. This, again, is different from a fully-fledged OS, as the RTOS delivers highly responsive processing for a limited number of predefined tasks.
In particular, RTOSs are well suited for small hardware like microcontrollers, processing data in real-time with minimal buffer delays. The RTOS organizes tasks in a structured, independent manner, allowing for deterministic execution patterns that respond promptly to events.
Some of the key features of RTOSs include multitasking, interrupt management, inter-task synchronization and communication, memory management, and a real-time clock. More on that later.
For now, let’s take a closer look at the different types of RTOS.
Types of RTOS
Hard RTOSs
Hard RTOSs are tailored for applications where missing a deadline constitutes a system failure.
You’d expect to see this type of RTOS used in time-sensitive applications like traffic control, anti-lock braking, or aircraft sensors.
These systems guarantee specific response times to predefined inputs, executing tasks within scheduled deadlines.
In sectors like aeronautics or medical devices, for example, where precision and speed are essential, a hard RTOS ensures speedy handling of data and processing.
In these situations, RTOSs process events within tenths of a second. Failure to meet specific constraints results in system failure, and sometimes catastrophic consequences.
Soft RTOSs
Soft RTOSs offer a far more flexible approach compared to hard RTOSs. When a soft RTOS misses a deadline, it’s undesirable but not catastrophic.
These systems prioritize predictability and reliability over extreme speed.
Soft RTOSs, unlike their hard counterparts, don’t strictly enforce deadlines. This allows for better multitasking and suitability in scenarios like media streaming, network routing, games, and simulations.
While delays in soft RTOSs might lead to temporary glitches, the system will continue to function without grinding to a halt, making them ideal for devices like PCs, cameras, and smartphones.
Firm RTOSs
Firm RTOSs form the middle ground between hard and soft RTOSs. For these systems, missed deadlines are considered system failures, but don’t have catastrophic consequences.
For example, in automated factory systems, missing a deadline can cause production issues but not bring immediate dangers.
Firm RTOSs stick to deadlines with some flexibility, accepting small time delays like you might see in applications such as multimedia, where missing a deadline might impact product quality.
As a result, these systems strike a balance, ensuring the system continues functioning — despite missing deadlines — but potentially resulting in a degradation of the finished product’s quality.
What makes an RTOS?
Some of the key characteristics of an RTOS include:
Determinism | Ensures tasks are completed within predefined time frames, regardless of system load variability |
Task prioritization | Prioritizes tasks based on urgency, preventing resource starvation and ensuring efficient resource allocation |
Concurrency | Gives the appearance of simultaneity through multitasking, using preemptive schedulers to manage task execution efficiently |
Memory management | Efficiently allocates and de-allocates memory without fragmentation to maximize the available memory |
Minimal latency | Responds quickly to external events, maintaining consistent and minimal response times in real-time environments |
Reliability and stability | Ensures system reliability and stability, critical for mission-critical applications in fields like medical devices |
Small footprint | Operates with a small memory footprint, essential for embedding in systems with constrained resources |
How does an RTOS operate?
So, we know what an RTOS is and what makes an RTOS. While it’s brilliant to know both of these things, it’s also essential to know how an RTOS actually works.
So, here’s the basic overview of how an RTOS does what it does:
- Task scheduling – An RTOS uses algorithms, like Rate Monotonic Scheduling or Earliest Deadline First, to determine the order it should execute tasks.
- Interrupt management – An RTOS quickly processes interrupts and preempts ongoing tasks to cut response times down to a minimum.
- Inter-task communication and synchronization – An RTOS uses mechanisms like semaphores, message queues, and event flags to communicate between and synchronize different tasks.
- Resource allocation – An RTOS enables real-time behavior in the system by allocating CPU time, memory, and peripherals based on task priority and requirements.
The Best RTOSs for 2024
Popular open-source RTOS
Most RTOSs are open source, allowing developers to customize them for specific use cases and deploy them across various operations and devices.
Here, we’ve shared some of the most popular RTOSs on the market:
SAFERTOS®
SAFERTOS® is a safety-critical RTOS created by WHIS. It specializes in applications demanding certification, such as in medical, automotive, and industrial fields.
It has certifications including IEC 61508 SIL3 and ISO 26262 ASILD by TÜV SÜD and offers robust reliability and high performance with minimal resource utilization. Adapted from the FreeRTOS functional model, users can seamlessly transition to SAFERTOS® through a supported migration path.
The SAFERTOS® codebase, coupled with a Design Assurance Package (DAP) including key artifacts, ensures a functionally secure RTOS that simplifies regulatory certification, particularly in safety-critical equipment integration.
Keil RTX
This royalty-free RTOS is tailored for ARM Cortex-M devices.
It offers a structured and efficient platform for developers, supporting multitasking with features like flexible scheduling — with algorithms like round-robin, preemptive, and collaborative — and low interrupt latency.
Keil RTX also supports a range of synchronization mechanisms, such as mailboxes, semaphores, mutexes, and timers, for multithreading and thread-safe operations. It also enables kernel-aware debugging in MDK-ARM.
DuinOS
This small multithreading RTOS supports Arduino-compatible boards.
Based on the FreeRTOS kernel, the RTOS has been recently reconstructed to include FreeRTOS 10, with ARM Cortex-M support apparently coming soon.
Zephyr
This RTOS is hosted by the Linux Foundation, with strong backing from Intel.
As it’s open source and scalable, Zephyr is optimized for resource-constrained devices — from embedded sensors to fully-fledged IoT systems.
It supports multiple hardware architectures, including ARM (Cortex-A, Cortex-R, and Cortex-M), Intel x86, ARC, Nios II, Tensilica Xtensa, RISC-V, SPARC, and MIPS.
Zephyr is built with an emphasis on security and versatility, aligning with the evolving demands of diverse hardware landscapes and making it a promising choice for varied real-time applications.
FreeRTOS
FreeRTOS is widely considered the most popular RTOS. Owned by Amazon since 2017, it provides a wide range of support for various processor architectures and is a minimalistic but powerful RTOS for embedded systems and microcontrollers.
It has been integrated with AWS Greengrass for software development, and provides essential multithreading primitives like threads, mutexes, semaphores, and thread-safe heap allocation methods.
Tailored for microcontrollers, it efficiently runs on limited resources, directly from ROM or Flash storage.
Popular commercial RTOSs
As well as open-source RTOSs, there are also many popular commercial RTOSs on the market, created by companies for use in different sectors. Let’s take a look at some of the most popular commercially available options today:
VxWorks
VxWorks is an RTOS that’s a well-known staple for embedded operating systems and designed for real-time deterministic performance in aerospace, defense, medical, and industrial equipment.
This RTOS was introduced in 1987 by Wind River Systems — now owned by Aptiv.
VxWork supports many CPU architectures, including AMD, Intel, POWER, ARM, and RISC-V, accommodating multi-core asymmetric multiprocessing (AMP), symmetric multiprocessing (SMP), mixed-mode, and multi-OS configurations.
embOS
embOS was developed by Segger, a German company specializing in debugging equipment for embedded systems. The main focus of this RTOS is within industrial and automotive applications.
It boasts zero interrupt latency, minimal memory consumption, and optimized high-speed RAM and ROM usage. It can also be used on platforms with 8-, 16-, and 32-bit processors, so it’s highly portable across different CPUs.
ThreadX
Microsoft Azure’s RTOS, ThreadX, is an advanced RTOS that’s tailored for embedded IoT applications.
It’s one of the most popular RTOSs available, deployed in billions of products all over the world, and included in everything from consumer devices to medical electronics and industrial controls.
ThreadX provides advanced features like preemptive threshold scheduling, event chaining, and execution analysis, as well as a pico kernel architecture and comprehensive performance metrics.
It’s a small, fast, and efficient RTOS that ensures a reliable and predictable environment for running real-time applications, making it a solid choice in industries such as automotive, aerospace, and consumer electronics.
Micrium OS
Sometimes known as Micrium µC, Micrium OS is a scalable RTOS designed for embedded systems and widely used in medical devices, industrial automation, and telecommunications.
This RTOS is highly scalable to adapt to varying system complexities, making it a good choice for applications demanding real-time precision and reliability.
QNX
This proprietary RTOS is widely used in the automotive and industrial control industries, and well known for its real-time performance and reliability.
QNX creates a dependable and predictable environment for running real-time applications across different industries. It’s also versatile with a good reputation for stability, making it a good choice for meeting the stringent demands of real-time applications in critical sectors.
LynxOS
This native POSIX RTOS has been historically popular within the aerospace and defense industries, specializing in virtualization technologies.
LynuxWorks, now known as LynxOS, was founded in 1985 in California, and created the RTOS for use within the automotive, industrial, and IT infrastructure sectors. The company now creates virtualization technologies for a wide range of industries.
PikeOS
PikeOS is a commercial RTOS that was created for the industrial and automotive markets. Now, it is more geared toward hypervisor and Linux technologies.
The RTOS features a separation kernel-based hypervisor to allow multiple logical partitions for other operating systems and applications. This means teams can develop certifiable IoT devices while still sticking to industry-specific quality, security, and safety standards.
PikeOS for MPU, for instance, specifically caters to real-time, safety-critical applications using an MPU instead of an MMU.
Neutrino
Neutrino is an RTOS that has been widely known for dominating the automotive market, and particularly combustion engine management systems.
TI-RTOS
This RTOS speeds up development by removing the need to create essential system software functions from scratch. Instead, it offers scalability, ranging from a real-time multitasking kernel, TI-RTOS Kernel, to a full RTOS system with extra middleware components and device drivers.
Developers using TI-RTOS in conjunction with TI’s MCUs can design applications with extended battery life.
Azure RTOS
This RTOS is powered by Microsoft and deployed across more than 10 billion devices worldwide.
Azure RTOS is used mostly within embedded technology, and it includes a small but powerful operating system that provides reliable, ultra-fast performance for resource-constrained devices.
It also supports the most popular 32-bit microcontrollers and embedded development tools, so you can make the most of your team’s existing skills.
As technology continues to evolve, it’s more important than ever to choose the right RTOS for your project – one that properly balances factors like determinism, task scheduling, and resource allocation.
The takeaway? Navigating new and improved RTOSs helps you meet real-time requirements, and make sure the right RTOS is integrated into the right critical systems.