作为 RTOS 的初学者,你对 RT-Thread 可能还比较陌生,但随着你对它的了解,你会逐渐发现 RT-Thread 的魅力,以及它相较于其他同类 RTOS 的优势。RT-Thread 是一款完全由国内团队开发和维护的嵌入式实时操作系统(RTOS),拥有完全自主知识产权。经过 16 年的发展,伴随着物联网的兴起,它正在进化为功能强大、组件丰富的物联网操作系统。
RT-Thread,全称是Real Time-Thread,顾名思义,它是一个嵌入式实时多线程操作系统,它的基本属性之一就是支持多任务。允许多个任务同时运行,并不代表处理器真的会同时执行多个任务,实际上一个处理器核每次只能运行一个任务。由于每个任务的执行时间很短,而且通过任务调度器(调度器根据优先级确定此刻要执行的任务)切换非常快,所以给人一种多个任务同时运行的错觉。在RT-Thread系统中,任务是通过线程来实现的,RT-Thread中的线程调度器就是上面说的任务调度器。
RT-Thread主要使用C语言编写,简单易懂,移植方便,将面向对象的设计方法运用到实时系统设计中,使得代码风格优雅,架构清晰,系统模块化,非常易于定制。

针对资源受限的微控制器(MCU)系统,可以通过简单易用的工具定制只需要3KB Flash和1.2KB RAM内存资源的NANO版本(NANO是RT-Thread官方于2017年7月发布的极简内核);
针对资源丰富的物联网设备,RT-Thread可使用在线软件包管理工具,配合系统配置工具,实现直观、快速的模块化剪裁,无缝导入丰富的软件功能包,实现类Android图形界面、触摸滑动特效、智能语音交互特效等复杂功能。
相较于 Linux 操作系统,RT-Thread 体积小、成本低、功耗低、启动速度快,此外 RT-Thread 还具有实时性高、资源占用小的特点,非常适合各类资源受限的场合(如成本、功耗限制)。虽然 32 位 MCU 是其主要运行平台,但实际上很多带有 MMU 的应用处理器,基于 ARM9、ARM11,甚至 Cortex-A 系列级别的 CPU,也适合在特定应用中使用 RT-Thread。
评论:
IoT终端设备采用Linux操作系统,有点太重了!
!
!
RT-Thread系统完全开源,遵守Apache License 2.0开源许可协议,可以免费用于商业产品中,不需要公开私有代码,无任何潜在的商业风险。
近年来,物联网(IoT)概念广泛流行,物联网市场发展迅速,嵌入式设备联网成为大势所趋。终端联网大大增加了软件的复杂度,传统RTOS内核越来越难以满足市场需求,嵌入式Linux又过于庞大笨重。在这种情况下,物联网操作系统(IoT OS)概念应运而生。
物联网操作系统是指基于操作系统内核(可以是RTOS、Linux等)的软件平台,包括文件系统、图形库等比较完善的中间件组件,并具备低功耗、安全性、通信协议支持、云端连接能力等特点。RT-Thread就是一款物联网操作系统。
RT-Thread 与 FreeRTOS、uC/OS 等很多其他 RTOS 的一个主要区别就是,它不仅是一个实时内核,还拥有一套丰富的中间层组件,这是 FreeRTOS 和 uC/OS 所不具备的!
如下图所示。
具体包括以下几个部分:
(1)内核层:RT-Thread内核是RT-Thread的核心部分,包括内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件/板级支持包)与硬件紧密相关,由外设驱动、CPU移植等组成。
(2)组件与服务层:组件是基于 RT-Thread 内核的上层软件,例如虚拟文件系统、FinSH 命令行接口、网络框架、设备框架等。采用模块化设计,实现组件内部高内聚,组件间低耦合。
(3)RT-Thread软件包:运行在RT-Thread物联网操作系统平台上,由描述信息、源代码或库文件等构成的面向不同应用领域的通用软件组件。RT-Thread提供了开放的软件包平台,存放了官方或开发者提供的软件包。平台为开发者提供了丰富的可复用软件包可供选择,这也是RT-Thread生态的重要组成部分。软件包生态对于操作系统的选择至关重要,因为这些软件包具有很高的可复用性和模块化,极大地方便了应用开发者在最短的时间内搭建自己想要的系统。目前RT-Thread已经支持的软件包数量已经达到400+个,如下图所示: