实时操作系统(RTOS)

2026-07-07 16:14 技术

# 实时操作系统(RTOS)

为什么使用 RTOS

实时操作系统是优化后用于嵌入式/实时应用程序的操作系统 。 其主要目标在于确保对事件作出及时和确定的响应。 使用实时操作系统,软件应用程序可以被编写为一组独立任务 。 每个任务都被分配了优先级,而实时操作系统负责 确保正在运行的任务是能够运行的最高优先级任务。 任务 何时可能无法运行的示例包括任务何时在等待外部事件发生, 或任务何时在等待一个固定时段。

RTOS 通常比通用操作系统体积更小、重量更轻,因此 RTOS 非常适用于 内存、计算和功率受限的设备。

使用多任务操作系统可以简化原本复杂的软件应用程序的设计。 调度器是内核中负责决定在特定时间应执行什么任务的部分。 调度策略是调度器用来决定何时执行哪个任务的算法。

实时操作系统 (RTOS) 利用与通用(非实时)系统相同的原理来实现多任务处理, 但两者的目标截然不同。这一差异主要体现在调度策略上。 实时嵌入式系统 旨在对现实世界的事件作出及时响应。 这些事件通常有截止时间, 实时嵌入式系统必须在此之前响应, RTOS 调度策略必须确保遵守这些截止时间要求。

FreeRTOS

FreeRTOS(Free Real-Time Operating System)是一个开源的实时操作系统(RTOS)内核, 专为嵌入式系统和微控制器设计。 它以轻量级、高效、可移植著称,目前由亚马逊云科技(AWS)维护运营,在 MIT 开源许可证下免费发布。

FreeRTOS 凭借其轻量、免费、可移植、功能完备的特点, 已成为嵌入式领域最受欢迎的实时操作系统之一。 无论是小型 IoT 终端设备还是复杂的工业控制系统, FreeRTOS 都能提供可靠的实时调度能力。 加之 AWS 的持续维护和丰富的社区资源, 它是嵌入式开发入门和生产级项目的理想选择。

  • FreeRTOS: 像一个"极简管家",只负责最核心的任务调度和通信,运行在资源极少的单片机上(比如只有几十 KB 内存的芯片)。 它的特点是响应快、确定性强——你让它 1ms 内响应,它就一定能做到。
  • Linux: 像一个"全能大管家",功能极其丰富(文件系统、网络协议栈、图形界面、多用户等), 但需要较强的硬件支撑(至少是带 MMU 的处理器,如 ARM Cortex-A 系列)。 它的优势是功能强大、生态丰富,但实时性较差。

裸机程序与 FreeRTOS 对比:

对比项 裸机程序 FreeRTOS
任务模型 单线程,主循环顺序执行 多任务并发,每个任务独立运行
实时性 依赖程序员手动管理,容易被长任务阻塞 内核保证高优先级任务及时响应
任务间通信 全局变量 + 标志位,容易出错 队列、信号量、事件组等机制,安全可靠
代码结构 简单任务尚可,复杂后变成"面条代码" 模块化清晰,每个任务职责单一
延时处理 delay() 会阻塞整个系统 vTaskDelay() 只阻塞当前任务,其他任务照常运行
资源占用 几乎为零 多占用几 KB RAM + 每个任务一份堆栈
调试难度 逻辑简单时容易调试 多任务并发带来竞态、死锁等新问题
开发效率 小项目快,大项目慢 小项目"杀鸡用牛刀",大项目效率更高

RT-Thread

RT-Thread 是一个源自中国的开源物联网操作系统, 诞生于 2006 年,由熊谱翔基于个人兴趣和工作经历从零编写,后以开源方式发布。 经过近二十年的发展,它已成为全球装机量最大的国产嵌入式操作系统, 累计装机量突破 25 亿台,全球拥有超过 30 万开发者。

核心定位 RT-Thread 的定位非常独特——它介于 FreeRTOS 和 Linux 之间,既能跑在资源极度受限的 MCU 上, 也能在资源丰富的处理器上提供类似 Linux 的完整生态体验。 向下:Nano 版本最小仅需 1.2KB RAM、3KB Flash,可运行在 ARM Cortex-M0 等低端芯片上 向上:完整版支持多核、64 位 ARM Cortex-A、MIPS64 等高性能处理器,可提供图形界面、触摸交互、智能语音等复杂功能

RT-Thread 可以理解为"中国版的 FreeRTOS + 生态", 它填补了传统 RTOS(如 FreeRTOS)和大型操作系统(如 Linux)之间的空白。 如果你的项目只需要一个极简内核,FreeRTOS 是不错的选择; 但如果你需要一个自带网络、文件系统、设备驱动框架和丰富软件包的完整物联网平台, RT-Thread 会是一个更高效的选择,尤其在国内芯片适配和本地化支持方面具有明显优势。

FreeRTOS 与 RT-Thread 对比

对比项 RT-Thread FreeRTOS
起源 中国(2006 年) 英国(2003 年),现属 AWS
内核定位 RTOS + 完整物联网平台 纯 RTOS 内核
最小资源 1.2KB RAM / 3KB Flash 约 4~9KB 内核
组件生态 内置丰富组件 + 450+ 软件包 需搭配第三方组件
调度方式 优先级抢占 + 时间片轮转 优先级抢占 + 时间片轮转
文件系统 内置 DFS 需外扩(如 FATFS)
网络协议栈 内置 lwIP + IoT 协议 需外扩
命令行 内置 FinSH shell
许可证 GPLv2+(商业使用无风险) MIT

简单来说:FreeRTOS 是一个"内核",RT-Thread 是一个"平台"。FreeRTOS 更纯粹、更轻量;RT-Thread 更完整、生态更丰富。

Zephyr RTOS

Zephyr 是由 Linux 基金会托管的开源实时操作系统(RTOS), 2016 年由 Intel、Wind River、NXP、Synopsys 等公司联合发起, 前身为 Wind River 的 Rocket RTOS。经过十年发展,它已从一个轻量级实验项目成长为嵌入式行业最具影响力的开源平台之一。 核心定位 Zephyr 不是传统 RTOS 的简单替代品, 而是将云计算时代的开发理念引入资源受限的嵌入式世界——以模块化、可裁剪、开箱即用为设计哲学, 解决嵌入式领域的碎片化、安全性和开发效率问题。

Zephyr 内核是一个内存占用极低的内核,它主要设计用于资源受限系统: 从简单的嵌入式环境传感器、LED 可穿戴设备,到复杂的智能手表、IoT 无线网关。

Zephyr 在被设计时就支持多架构,包括 ARM Cortex-M,Intel x86,ARC,NIOS II 和 RISC V。 您可以在 这里 查看 Zephyr 所支持的所有开发板。

Zephyr 国内现状:

总体来说,Zephyr 在国内的使用确实偏少,但正在逐步增长,属于"全球生态成熟、国内尚在起步"的阶段。 国内使用较少的主要原因

  • 学习曲线陡峭:Zephyr 使用 Linux 工具链(West、CMake、Devicetree 等),脱离了传统嵌入式"一站式 IDE"的开发模式,入门门槛比 FreeRTOS、RT-Thread 高不少
  • 中文资料匮乏:官方文档全英文,国内缺少系统性的中文教程和翻译资料
  • 国产 RTOS 替代偏好:国内有 RT-Thread(装机量超 2 亿台)、华为 LiteOS、AliOS Things 等成熟的国产 RTOS,企业更倾向于使用本土生态
  • 生态壁垒:搭建环境、学习工具链的成本较高,很多中小团队望而却步

Zephyr 被视为下一代嵌入式通用底座,架构设计先进,面向未来。