什么是RTOS?
简单来说,实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间内作出快速响应,并控制所有实时任务协调一致运行的操作系统。
FreeRTOS | uC/OS-III | RT-Thread | |||
---|---|---|---|---|---|
背景 | 免费、开源的实时操作系统, 英国工程师Richard Barry创建, 最早发布于2003年 | 商业实时操作系统, uC/OS-II的升级版, 美国工程师Jean Labrosse, 最早发布于2009年 | 开源的实时操作系统, 中国开发者Bernie Zang, 最早发布于2006年, | ||
是否免费 | 完全开源免费 | 源码开放,但不是完全免费 用于商业产品开发需要购买授权 | 完全开源免费 | ||
内核比较 | 内核大小 | 4~9K ROM 2K RAM | 6K~24K ROM 2K RAM | 3K ROM 1K RAM | |
32个优先级或无限制 多个任务可设置为同一优先级 | 64个优先级或无限制 多个任务可设置为同一优先级 | 256个优先级 多个任务可设置为同一优先级 | |||
抢占调度 | Y | Y | Y | ||
协程调度 | Y(现已不维护) | N | N | ||
轮转调度 | Y | Y | Y | ||
任务 通信/同步 | 信号量 | Y | Y | Y | |
互斥锁 | Y | N | Y | ||
Y | N | Y | |||
邮箱 | N | N (uC/os III已经取消这个概念, uC/os II, uC/os是有的) | Y | ||
事件/事件组 | Y | Y | Y | ||
时间管理 | 软件定时器 | Y | Y | Y | |
内存管理 | Y | Y | Y | ||
生态相关 | I/O设备管理 | 无 | 提供USB、CAN、Modbus驱动 | 提供类似unix的管理驱动 | |
文件系统 | 支持freertos+FAT | 支持uc/os-fs | 提供FatFs、NFS、UFFS | ||
网络协议 | 提供freertos+TCP/IP | 提供TCP/IP移植版 | 提供LWIP移植版 | ||
POSIX接口 | 部分 | 无 | 支持 | ||
UI组件 | 无 | 提供uc/os GUI | 提供RT GUI | ||
IOT | 被亚马逊收购后,开始IOT相关中间件的开发 | 无 | 丰富的物联网相关中间件 |