Introduction
Zephyr is a scalable, open-source real-time operating system designed for resource-constrained devices across multiple architectures. Maintained by the Linux Foundation, it supports 700+ boards and provides a comprehensive set of libraries including networking, Bluetooth, USB, and filesystem support, making it suitable for everything from tiny sensors to complex IoT gateways.
What Zephyr Does
- Provides a configurable RTOS kernel with preemptive and cooperative thread scheduling
- Supports 700+ hardware boards across ARM, RISC-V, x86, ARC, Xtensa, and other architectures
- Includes native networking stacks (TCP/IP, MQTT, CoAP, HTTP, WebSocket, LwM2M)
- Offers certified Bluetooth 5.3 LE and Bluetooth Mesh implementations
- Provides device driver model, power management, and hardware abstraction layers
Architecture Overview
Zephyr uses a monolithic kernel architecture where the application and OS are compiled into a single binary. The kernel provides threads, semaphores, mutexes, message queues, and memory management primitives. A devicetree-based hardware description system decouples board-specific configuration from application code. The build system uses CMake with a meta-tool called West that manages the multi-repository workspace, handles board configuration via Kconfig, and orchestrates flashing and debugging.
Self-Hosting & Configuration
- Install the West meta-tool and initialize a workspace with
west initandwest update - Install the Zephyr SDK which includes cross-compilers for all supported architectures
- Select target board with
-b <board>flag and configure features via Kconfig (menuconfig or prj.conf) - Use devicetree overlays to customize pin mappings and peripheral configuration
- Flash to hardware with
west flashusing OpenOCD, J-Link, or board-specific runners
Key Features
- Support for 700+ boards from major silicon vendors (Nordic, NXP, STMicro, Espressif, Intel)
- Memory footprint starting from 8KB RAM for minimal configurations
- Long-term support releases with security patches for production deployments
- Comprehensive test framework with 50,000+ automated tests per release
- Safety certification path with IEC 61508 SIL and ISO 26262 ASIL efforts
Comparison with Similar Tools
- FreeRTOS — minimal kernel focused on scheduling; Zephyr provides a full OS with drivers, networking, and BLE in one integrated package
- RIOT OS — similar scope for IoT; Zephyr has broader board support and stronger industry backing from the Linux Foundation
- Mbed OS — ARM-focused IoT OS (now maintenance mode); Zephyr is architecture-agnostic and actively developed
- NuttX — POSIX-compliant RTOS; Zephyr offers more modern tooling with devicetree and Kconfig plus a larger contributor ecosystem
- ESP-IDF — Espressif-specific SDK; Zephyr supports ESP32 chips while also covering hundreds of other platforms
FAQ
Q: Can Zephyr run on ESP32 boards? A: Yes. Zephyr officially supports ESP32, ESP32-S2, ESP32-S3, and ESP32-C3 boards, providing an alternative to Espressif's native ESP-IDF framework.
Q: How small can a Zephyr application be? A: A minimal Zephyr application (kernel + simple task) can fit in as little as 8KB RAM and 64KB flash, making it suitable for very constrained microcontrollers.
Q: Is Zephyr used in production products? A: Yes. Zephyr powers production devices from companies including Google (Nest), Meta, Nordic Semiconductor, Intel, and others across consumer electronics, industrial IoT, and automotive.
Q: Does Zephyr support POSIX APIs? A: Zephyr provides a POSIX compatibility layer covering pthreads, sockets, file operations, and other common APIs, making it easier to port existing code.