Selecting an RTOS, Which Should I Use?

Selecting an RTOS

Introduction

So, you’re kicking off a new embedded project, congrats! Whether you’re wrangling sensors, spinning motors, or just trying to blink an LED and talk to the cloud at the same time, you’ve probably hit the age-old question: which Real Time Operating System (RTOS) should I use? Picking an RTOS can feel like walking into a hardware store with a vague idea of what you need—there are so many options, and they all promise to be just what you’re looking for. In this post, we’ll break down the key considerations to help you navigate the RTOS jungle and make a choice that won’t come back to bite you in the bootloader.

But wait, what is a RTOS?

An RTOS is a lightweight OS designed to run on embedded systems where timing is critical. Unlike general-purpose operating systems, an RTOS is built to respond to events predictably and quickly. At its core, it manages tasks, prioritizes them, and ensures they meet timing deadlines which are often within milliseconds or even microseconds. Common features include task scheduling (usually preemptive), inter-task communication (like queues, semaphores, pipes, or message buffers), and resource management (e.g., memory, peripherals). You’d use an RTOS when your system has to juggle multiple things at once like reading sensors, communicating over a network, and controlling outputs without missing a beat. It helps keep your code modular, responsive, and easier to scale as complexity grows. Let’s go through 5 commonly used RTOS, how they compare to each other and when would you choose one over the other!

Book a Call with Dojo Five Embedded Experts

Common RTOS in the wild

FreeRTOS

FreeRTOS is one of the most widely used open-source RTOS options in the embedded world. It’s lightweight, simple to integrate, and has strong support across a broad range of MCUs. It is managed by Amazon who fully integrated security/connectivity libraries and provides a tight integration with AWS IoT. FreeRTOS is great for smaller systems that need task management without a ton of overhead. It has a massive user base, which means plenty of community help and examples. The FreeRTOS community is also actively working on Safety Certified FreeRTOS which will be certified for use in certain safety-critical systems. 

Zephyr

Zephyr is a scalable, open-source RTOS backed by the Linux Foundation. It targets everything from small embedded devices to more capable IoT nodes and supports a wide range of hardware. Zephyr includes a modern device driver model, a built-in configuration system (via Kconfig and devicetree), and a rich set of features such as networking, file systems, security, and more. Its highly configurable build system allows developers to optimize for minimal memory footprint or expand to include advanced capabilities as needed. The project also offers a broad set of modular components, such as Bluetooth stacks, USB device support, and sensor frameworks, making it a powerful platform for connected and feature-rich embedded applications. Since Zephyr specializes in abstracting hardware-specific logic from application logic using various abstraction methods mentioned above, it is great for cross platform or if you would like to quickly port your applications between different versions/boards.

ThreadX

ThreadX used to be part of Microsoft’s Azure RTOS suite but has now transitioned to an open-source model under the Eclipse Foundation, becoming Eclipse ThreadX. It is a compact, high-performance RTOS with a reputation for speed and simplicity. It features an elegant API and ultra-low context switch times. It’s often found in consumer electronics, medical devices, and IoT products. Eclipse ThreadX also offers components like a file system (FileX), networking (NetX Duo), and USB stack (USBX).

embOS

embOS is a commercial RTOS developed by SEGGER, known for its small footprint, fast context switching, and zero royalties. It’s designed for high reliability and real-time performance. embOS integrates well with SEGGER’s ecosystem, including debugging and trace tools like SystemView and Ozone. While the core kernel is compact and monolithic, it supports modular extensions through SEGGER’s middleware stack. embOS is also available in a safety-certified version (embOS-Safe) and prequalified for standards like IEC 61508, and ISO 26262.

µC/OS & CesiumRTOS

Originally developed by Micrium and widely adopted across safety-critical industries, µC/OS (including µC/OS-II and µC/OS-III) is a proven RTOS known for its deterministic behaviour, clean architecture, and extensive documentation. While Silicon Labs now owns the Micrium brand and maintains Micrium OS for their own hardware platforms, Weston Embedded Solutions is the official maintainer of µC/OS, which is open source now, for general embedded use. Weston Embedded provides ongoing updates and safety-certification packages (such as for FDA, ISO 26262, IEC 61508).

Weston Embedded also offers CesiumRTOS, a modern evolution of µC/OS-III. While µC/OS continues to be maintained for compatibility and long-term support, CesiumRTOS is a clean, enhanced implementation with new features, additional architecture support, and active development. Both options come with safety certification support and commercial licensing, making Weston Embedded a go-to resource for embedded teams building high-reliability systems.

General Differences to Consider

RTOSLicenseFootprint (min ROM)Cloud IntegrationCommunity Support
FreeRTOSMIT (Open Source)~5-10 KBAWSHuge open-source community, very active
ZephyrApache 2.0  (Open Source)~2-8 KBOptional (via modules)Growing open-source ecosystem with Linux Foundation backing
ThreadXMIT (Open Source)~2 KBAzureModerate; small dev community post-transition
embOSCommercial (SEGGER)~1.7 KBNoneVendor-supported, strong tooling, small public community
µC/OSApache 2.0 (Open Source)~6-24 KBNone, manual integrationSmall but stable
CesiumRTOSCommercial (Weston Embedded)~6-24 KBNone, integration-friendlyActively supported by Weston Embedded, commercial access

More Technical Differences to Consider

RTOSKernel Type/SchedulingModularityPortabilityDebugging/TracingSafety/Certification
FreeRTOSSimple, preemptive/cooperative, SMPMinimal, monolithic with optional components/librariesVery portable, wide MCU supportBasic, enhanced via 3rd-party tools like SEGGER SystemViewIn progress. Commercial SAFERTOS pre-certified
ZephyrMicrokernel-like, SMP supportHighly modular with Kconfig/devicetreeModern HAL + devicetree, flexibleBuilt-in tools, setup can be complexIn progress, not fully mature
ThreadXFast context switching, preemptiveTight core, modular Azure RTOS suiteExcellent portability, now under EclipseTraceX included, good visualizationCertifiable, used in regulated industries
embOSPriority-based, preemptive, non-SMPMonolithic, modular via SEGGER toolsHighly portable, SEGGER-supported portsDeep integration with SEGGER SystemView/OzoneCertifiable, used in safety-focused projects
µC/OSDeterministic, preemptive with time slicingHighly modular, legacy structurePortable especially for Cortex-M, customizableAdvanced tools (SEGGER SystemView,  uC/Probe)Certifiable for FDA, IEC 61508, ISO 26262, etc.
CesiumRTOSEnhanced deterministic kernel preemptive with extensionsModular with improved abstraction and integration optionsExtended platform support (ARM, RISC-V, etc)Advanced tools (SEGGER SystemView,  uC/Probe)Certification-ready, with modern compliance packages

Which RTOS Should You Choose?

Choosing the right RTOS depends on your application, hardware, and team experience. Here’s a quick cheat sheet with those RTOSes included in this blog post:

  • Use FreeRTOS if you want fast startup, a huge community, and lightweight scheduling for a small MCU which is battle-tested and well-documented, especially for resource-constrained systems.
  • Use Zephyr if you’re working on a complex or scalable IoT/network platform and want modern tooling, open-source flexibility, cross-platform/portability and an active development community.
  • Use ThreadX if you’re targeting an IoT or consumer device, want performance and a clean, mature API.
  • Use embOS if you’re already in the SEGGER ecosystem and need a small-footprint RTOS with excellent tooling, strong commercial support, and safety certification options.
  • Use µC/OS if you’re building a cost-sensitive or non-critical embedded system and want a proven, open-source RTOS with minimal overhead.
  • Use CesiumRTOS if you’re developing a safety-critical product and need certification artifacts, ongoing support, and a modernized, production-ready RTOS.
Which RTOS Should You Choose?

Remember, these are general recommendations, not strict rules. There are many excellent RTOS options out there, and the best choice always depends on your specific project needs, constraints and ecosystem. Use these recommendations as a starting point, but be sure to evaluate each option carefully based on your needs.

Conclusion

There’s no one size-fits-all answer, but understanding your project’s requirements and the trade-offs of each RTOS will help you make a confident choice. And remember, whichever RTOS you pick, the key is how you use it. Good architecture, solid debugging practices, and clear task design will get you further than any kernel flag or preemption tweak. If you have questions about selecting an RTOS or designing and implementing your RTOS project, Dojo Five can help you with all aspects of your embedded project. 

Book a call with us to get the conversation started. Or, check out our CI build platform and increase your productivity.

We look forward to hearing from you! -D5

References

Discover why Dojo Five EmbedOps is the embedded enterprise choice for build tool and test management.

Sign up to receive a free account to the EmbedOps platform and start building with confidence..

  • Connect a repo
  • Use Dev Containers with your Continuous Integration (CI) provider
  • Analyze memory usage
  • Integrate and visualize static analysis results
  • Perform Hardware-in-the-Loop (HIL) tests
  • Install the Command Line Interface for a developer-friendly experience

Subscribe to our Monthly Newsletter

Subscribe to our monthly newsletter for development insights delivered straight to your inbox.

Interested in learning more?

Best-in-class embedded firmware content, resources and best practices

Laptop with some code on screen

I want to write my first embedded program. Where do I start?

The boom in the Internet of Things (IoT) commercial devices and hobbyist platforms like the Raspberry Pi and Arduino have created a lot of options, offering inexpensive platforms with easy to use development tools for creating embedded projects. You have a lot of options to choose from. An embedded development platform is typically a microcontroller chip mounted on a circuit board designed to show off its features. There are typically two types out there: there are inexpensive versions, sometimes called

Read More »
Medical device monitoring vitals

IEC-62304 Medical Device Software – Software Life Cycle Processes Primer – Part 1

IEC-62304 Software Lifecycle requires a lot of self-reflection to scrutinize and document your development processes. There is an endless pursuit of perfection when it comes to heavily regulated industries. How can you guarantee something will have zero defects? That’s a pretty hefty task. The regulatory approach for the medical device industry is process control. The concept essentially states that if you document how every step must be completed, and provide checks to show every step has been completed properly, you

Read More »
Operating room filled with medical devices

IEC-62304 Medical Device Software – Software Life Cycle Processes Primer – Part II

Part I provides some background to IEC-62304. Part II provides a slightly more in-depth look at some of the specifics. The IEC 62304 Medical Device Software – Software Lifecycle Processes looks into your development processes for creating and maintaining your software. The standard is available for purchase here. So what activities does the standard look at? Here are some of the major topics. For any given topic, there will be a lot more specifics. This will look at a few

Read More »