A recent XDA feature counted seven operating systems quietly running inside the average home, from the thermostat firmware to the router to the smart-plug controller, and the writer had a point most developers ignore. The OSes on a laptop and phone get all the press; the ones running everything else in the house get almost none. If you are building a smart-home device, an ESP32 project, or a hobby router, the seven embedded and IoT operating systems on desktop below cover almost every real workload. All development tooling runs on Windows and Linux; the target device is whatever silicon you are flashing.
What to look for in an embedded OS
The evaluation questions worth answering before locking in an RTOS:
- Silicon support. Does it run on the MCU family you are targeting (ESP32, STM32, nRF52, RP2040, RISC-V)?
- Memory footprint. Some ship in under 10 KB flash; others need 256 KB.
- Networking stack. Wi-Fi, BLE, Thread, Matter, LoRa, and TCP/IP support vary widely.
- License. Permissive (MIT, BSD, Apache) versus copyleft matters for commercial firmware.
- Toolchain integration. IDE support, VS Code plugin, PlatformIO integration.
- Community and documentation. A tiny community means every problem is unique.
- Long-term maintenance. IoT devices last a decade; the OS behind them should too.
Quick comparison
| OS | Best for | Kernel | License | Min flash | RAM |
|---|---|---|---|---|---|
| FreeRTOS | Small MCUs, industrial control | RTOS | MIT | 4 KB | 500 B |
| Zephyr Project | Modern IoT, Matter, Thread | RTOS | Apache 2.0 | 8 KB | 2 KB |
| Contiki-NG | Low-power wireless, LoRa | RTOS | BSD | 30 KB | 10 KB |
| RIOT OS | Academic + hobbyist IoT | RTOS | LGPL v2.1 | 5 KB | 1.5 KB |
| Mbed OS | Arm Cortex-M, quick prototyping | RTOS | Apache 2.0 | 20 KB | 4 KB |
| NuttX | POSIX-compliant embedded | RTOS | Apache 2.0 | 32 KB | 8 KB |
| OpenWrt | Routers, edge gateways | Linux | GPL | 4 MB | 32 MB |
The apps
1. FreeRTOS, the everywhere kernel
FreeRTOS is the RTOS most people already have running on something in their house, and they do not know it. AWS acquired it in 2017 and rebranded it FreeRTOS Kernel, then folded in AWS IoT integration. Runs on almost every 32-bit MCU worth caring about (ARM Cortex-M, Xtensa, RISC-V) and a lot of 8-bit and 16-bit chips.
Where it falls short: No native networking (bring your own stack, usually LwIP). The kernel is minimalist; you assemble the rest.
Pricing:
- Free: MIT license.
- Paid: AWS-hosted extras (FreeRTOS Long Term Support builds via Amazon) start at zero and scale for enterprise contracts.
Platforms: ARM Cortex-M/-A/-R, ARM7/9, Xtensa, RISC-V, MSP430, AVR, and dozens more.
Bottom line: The safe default for any bare-metal-plus-scheduling project on a small MCU.
2. Zephyr Project, the modern IoT choice
Zephyr is the Linux Foundation’s answer to the fragmented RTOS space. Modular, actively developed, with first-class Matter, Thread, and BLE support out of the box. The device tree overlay pattern makes porting one firmware to five boards a config-file exercise rather than a rewrite.
Where it falls short: The learning curve is steeper than FreeRTOS. West (Zephyr’s meta-tool) has its own ergonomics you have to internalize.
Pricing:
- Free: Apache 2.0.
Platforms: ARM Cortex-M/-A/-R, Xtensa, RISC-V, x86, ARC.
Bottom line: The right pick if you are shipping a modern IoT product in 2026, especially with Matter support.
3. Contiki-NG, the low-power wireless specialist
Contiki-NG is the fork of the classic Contiki with modern wireless focus. IPv6, 6LoWPAN, RPL, and CoAP built in. If your project is a battery-powered mesh (LoRa, 802.15.4), Contiki-NG’s networking stack is genuinely better than any other RTOS here.
Where it falls short: Smaller developer community than Zephyr or FreeRTOS. Fewer commercial vendor tools.
Pricing:
- Free: 3-clause BSD.
Platforms: TI CC26xx, nRF52, native (for simulation).
Download: GitHub
Bottom line: Best pick for battery-powered mesh sensors. Otherwise Zephyr.
4. RIOT OS, the academic-turned-practical choice
RIOT started as a research project in Berlin and grew into a real production RTOS. Very small footprint (kernel fits in 5 KB), IPv6/6LoWPAN native, and the API is closer to standard POSIX than most RTOSes here. Popular in universities, increasingly showing up in commercial IoT.
Where it falls short: LGPL v2.1 license matters for closed-source commercial products. Read the terms before shipping.
Pricing:
- Free: LGPL v2.1.
Platforms: ARM Cortex-M, MSP430, AVR, x86, RISC-V, ESP32.
Bottom line: Solid pick for hobby and open-source IoT. Check the LGPL implications for commercial firmware.
5. Mbed OS, the Arm-flavored option
Mbed OS is Arm’s official RTOS. Best-in-class support for Cortex-M silicon, direct integration with Arm Keil MDK and Arm Compiler, and a huge library of vendor-supported drivers. Arm scaled back active development in 2024, so pace has slowed, but the shipped code base is solid.
Where it falls short: Development pace slowed. Not future-proof for new silicon families outside Arm.
Pricing:
- Free: Apache 2.0.
Platforms: ARM Cortex-M.
Download: GitHub
Bottom line: Fine for existing Cortex-M projects. For a new project in 2026, Zephyr is the safer long-term bet.
6. NuttX, the POSIX-compliant RTOS
NuttX ships a POSIX and ANSI-standard API that lets you compile Linux-like C code with almost no changes. If you want a small RTOS that feels like a small Linux (fork, exec, pthreads, standard sockets), this is it. Sony Semiconductor uses it in some of its imaging chips; ArduPilot uses it for drone flight controllers.
Where it falls short: Bigger footprint than FreeRTOS. Smaller silicon support matrix than Zephyr.
Pricing:
- Free: Apache 2.0.
Platforms: ARM Cortex-M/-A/-R, Xtensa, RISC-V, AVR, MSP430, x86, PIC32.
Download: Apache NuttX | GitHub
Bottom line: Pick this if you want an RTOS but code like it is Linux. Popular in the drone community.
7. OpenWrt, the router-and-gateway Linux
OpenWrt is a Linux distribution for embedded devices with enough RAM to run a real kernel, not an RTOS. It runs on routers, edge gateways, LTE modems, and industrial computers. If you are replacing your consumer router’s stock firmware or building a smart-home gateway, this is what runs on top.
Where it falls short: Not an RTOS. Cannot compete on the sub-100-KB footprint end of the market.
Pricing:
- Free: GPL.
Platforms: MIPS, ARM Cortex-A, x86, RISC-V.
Bottom line: The default upgrade for any router you own, and the base OS for hobby-level home gateways.
How to pick the right one
- If you are on a small MCU shipping a commercial product, Zephyr.
- If you are on a small MCU and want the smallest possible footprint, FreeRTOS.
- If you write low-power wireless mesh sensors, Contiki-NG.
- If you want the RTOS to feel like Linux, NuttX.
- If you are already deep in Arm’s Cortex-M tooling, Mbed OS.
- If you value POSIX and academic-grade design, RIOT.
- If the device has enough RAM to run Linux, OpenWrt.
FAQ
What is an embedded operating system?
An OS designed for a specific device with tight resource limits, running a single dedicated firmware rather than user-installed apps. Your thermostat, router, and smart plug each run one.
What is the difference between an RTOS and Linux?
An RTOS (real-time OS) offers deterministic timing guarantees and runs in kilobytes. Linux offers rich features and runs in megabytes. Choose based on your hardware and timing needs.
Which RTOS supports Matter?
Zephyr has first-class Matter support and is the reference implementation for many Matter certifications. Contiki-NG and OpenThread (usable with FreeRTOS) also support the Matter stack.
Can I use FreeRTOS commercially?
Yes. FreeRTOS is MIT-licensed. Ship it in commercial products without royalty or attribution obligations beyond the license text.
What runs on an ESP32?
FreeRTOS is the default (ESP-IDF is built on it). Zephyr, NuttX, and RIOT also have ESP32 ports. Arduino Core for ESP32 wraps FreeRTOS with the Arduino API.