关注+星标公众,不错过精彩内容

作者 | strongerHuang

微信公众号 | strongerHuang

就目前而言,全球RTOS装机量或用户量最大的非FreeRTOS莫属,但近两年你可能看到了另外一个RTOS(Zephyr)火起来了。

于是,就有网友抛出了这样的话题:Zephyr会超过FreeRTOS,成为下一个RTOS王者吗?

这里就简单来分享一下FreeRTOS和Zephyr的一些内容以及各自的优势。

关于FreeRTOS

2003年,FreeRTOS由英国工程师Richard Barry开发并开源,旨在为嵌入式系统提供轻量级、可移植的实时操作系统内核。

发布的首个版本包括一些基础的核心功能,比如任务调度、队列、信号量和软件定时器等。

当时,由于市面上的RTOS比较少,而且FreeRTOS代码简洁,用 C 语言编写,以及少量汇编用于平台适配,关键是开源免费。于是,FreeRTOS迅速在开发者社区快速传播,并积累了一定口碑。

因为FreeRTOS遵循 MIT 许可证开源,允许免费使用、修改和分发。逐渐吸引了全球开发者的参与,贡献移植层、示例代码和文档。

慢慢地,FreeRTOS支持的处理器架构逐步扩展,涵盖 ARM Cortex-M、AVR、MSP430、PIC 等主流 MCU。

2017年,亚马逊收购了FreeRTOS,并往物联网转型,其组件也逐渐丰富了起来。

再到后来,就是大家看到的,FreeRTOS成为 STM32、Arduino 等很多平台的“标准 RTOS”。同时,也集成在很多IDE工具中,比如:STM32CubeMX、e2 studio、MounRiver Studio等。

关于Zephyr

最初的Zephyr 内核源自 Wind River Systems(风河公司)内部的一个轻量级微内核项目,用于研究资源受限设备的实时调度与安全隔离。

2016年,Wind River 将该项目捐赠给 Linux 基金会,并命名为 Zephyr Project,致力于打造一个开源、中立、由社区驱动的物联网操作系统

Zephyr采用 Apache 2.0 开源许可证,由Linux基金会托管之后,鼓励商业使用与社区贡献,逐步建立起了企业与社区共同贡献的模式。

2016年4月:发布 Zephyr v1.0,提供基本任务调度、中断处理、简单驱动模型。

2017年:发布了v1.6版本,首次支持 RISC-V 架构,顺应了开源硬件浪潮。同时,引入了设备树(Device Tree) 和 Kconfig 配置系统,奠定模块化基础。

2018年:进行了重大更新,发布了v2.0版本。引入了内存保护单元(MPU)支持,实现用户/内核空间隔离,增强了网络协议栈(IPv4/IPv6、CoAP、MQTT),提升了安全能力(安全启动、加密 API)。

2019年:发布了v2.2版本,大幅扩展硬件支持,覆盖 STM32、ESP32、NRF52、Raspberry Pi Pico 等热门平台。引入了统一构建系统(CMake + West 工具),提升开发体验。

2020年:发布了v2.6版本,引入 实时多线程调度器优化,任务切换延迟降至微秒级。支持 USB、CAN、LoRa、Wi-Fi(通过 ESP-AT) 等外设协议。

2021年:获得 MISRA C 合规性认证,满足汽车与工业编码规范,被 Bosch、Siemens 等工业厂商用于传感器和边缘节点。

2023年:发布v3.4版本,集成 MCUboot 安全引导加载程序,支持 A/B 分区 OTA。实验性支持 Rust 语言编写应用(通过 zrust 模块)。

2024年:进行了重大更新,发布了v4.0版本,重构电源管理子系统,支持深度睡眠 + Tickless Idle,待机电流达 μA 级。蓝牙协议栈通过 Bluetooth SIG 认证。

2025年:发布v4.1、v4.2版本,让其性能对标 ThreadX,在 EEMBC CoreMark/MHz 测试中表现优异。同时,被 Linux 基金会列为 “关键数字基础设施” 项目。

Zephyr vs FreeRTOS

Zephyr 和 FreeRTOS都属于RTOS范畴,就目前而言,两大RTOS都在往物联网方向靠近,但软件架构以及内核等技术还是存在很大区别。

1、系统架构

FreeRTOS

Zephyr

调度器

纯抢占式,固定优先级(通常 56 级)

抢占式 + 协作式 + 时间片轮转,动态优先级(默认 32 级)

内存管理

动态分配为主(pvPortMalloc),多种 heap 方案

默认静态分配,支持 slab/buddy 系统,强调确定性与防碎片

硬件抽象

通过 port 层手动移植(需写汇编上下文切换)

基于 设备树(Device Tree) 自动配置外设

多核支持

无原生 SMP 支持(需外部 IPC)

原生支持 SMP(对称多处理) 和 AMP

内存保护

无(除非配合 MPU 手动实现)

支持 用户/内核空间隔离(MPU/MMU)

2、资源占用

FreeRTOS

Zephyr

最小 Flash

~6 KB

~32 KB(含基本驱动)

最小 RAM

~1–2 KB

~8–16 KB

上下文切换

~0.8 μs

~1.2 μs

中断延迟

<5 μs

<1 μs(关闭内核锁时)

3、协议栈与功能

FreeRTOS

Zephyr

网络协议

需 FreeRTOS+TCP(额外组件)

内置 IPv4/IPv6、CoAP、MQTT、LwM2M、HTTP

无线协议

BLE/Wi-Fi 需厂商 SDK(如 ESP-IDF)

原生支持 BLE 5.4、Thread 1.4、Wi-Fi(ESP-AT/SoftMAC)、LoRa、IEEE 802.15.4

安全能力

依赖 mbed TLS 或 AWS IoT SDK

内置 PSA Crypto、安全启动(MCUboot)、TEE 支持

文件系统

需 FatFS 或 LittleFS 集成

内置 LittleFS、FATFS、NVS(非易失存储)

OTA 更新

依赖 AWS IoT Jobs 或自研方案

内置 MCUboot + A/B 分区 OTA

4、开发环境与调试

FreeRTOS

Zephyr

构建系统

Makefile / IDE 工程(如 Keil、IAR)

CMake + West(命令行工具),高度标准化

配置方式

FreeRTOSConfig.h

 头文件宏定义

Kconfig + Device Tree(图形化 menuconfig 支持)

调试支持

基础日志,依赖 IDE 调试器

内置 LOG 子系统、GDB 支持、QEMU 仿真

学习曲线

低(API 简洁,文档丰富)

较高(需理解 Devicetree、Kconfig、CMake)

Zephyr 会超过 FreeRTOS 吗?

通过以上分析与对比,其实你已经发现了Zephyr 和 FreeRTOS 虽然有很多相似之处,但技术层面和应用场景还是有很大差别。

所以,Zephyr 不太可能完全超越或取代FreeRTOS 成为唯一的 RTOS 王者,但Zephyr极有可能成为“中高端物联网 RTOS 的新王者”。

未来的嵌入式RTOS格局可能是:

低端/极简场景 → FreeRTOS(或裸机)

中高端/安全/多协议场景 → Zephyr

国产化/生态闭环场景 → RT-Thread

高性能实时控制 → ThreadX / VxWorks

------------ END ------------

单片机可以用 Python 开发吗?

安路吹响号角,国产ARM+FPGA SoC崛起了

单片机SPI也能实现单线半双工模式?

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐