对 嵌入式操作系统 的需求日益增长,而构建在其上的操作系统最好是开源的。 RT-Thread 项目的研发团队花费了两年时间的研究和密集开发,推出了该项目的最新产品:RT-Thread Smart。它是一个微内核操作系统,主要面向 RISC-V 或 Arm Cortex-A 等中高端处理器,这些处理器具有内存管理单元 (MMU),并为嵌入式领域的各个行业提供具有竞争力的、基于 POSIX 的软件平台。
谁需要 RT-Thread Smart?
RT-Thread Smart 是一个专业的、高性能的、用于实时应用的微内核操作系统。 它为任何市场中的嵌入式设备提供了一个开源基础,包括安全(例如,网络协议摄像头)、工业控制、车载设备、消费电子产品以及任何使用嵌入式技术的设备(这种情况正日益意味着“一切”)。 它的重要性在于,与传统的物联网操作系统不同,微内核操作系统可以填补传统实时操作系统 (RTOS) 和像 Linux 这样相对较大的操作系统之间的空白,从而在实时性能、成本、安全性、启动速度等方面实现最佳平衡。
RT-Thread Smart 的架构
RT-Thread Smart 通过利用 MMU 和系统调用方法将系统分成内核空间和用户空间。 然后它划分每种模式的地址空间(32 位系统提供 4G 地址空间)。

(RT-Thread, CC BY-SA 4.0)
RT-Thread Smart 内核包括平台的基本功能并支持自定义。 RT-Thread Smart 的用户空间应用程序环境使用 musl libc 来提供 POSIX 接口调用和 C 运行时支持。 它还继承了原始 RT-Thread 生态系统,使用 SCons 或其他构建工具,例如 Autotools、Makefiles、 CMake 等来支持开发,以及 RT-Thread 的开箱即用的在线软件包(在撰写本文时超过 342 个)。 您甚至可以将 Linux 应用程序(例如 wget/cURL、BusyBox、OpenSSL 和 Simple DirectMedia Layer)移植到您的平台。
压缩后的 RT-Thread Smart 内核仅为 217KB,根文件系统为 127KB。 典型的内存使用量约为 2MB。
凭借对文件系统、网络协议栈和多媒体的完整支持,RT-Thread 仅需三到五秒即可完成其启动过程。 在不运行或加载复杂的用户应用程序的情况下,RT-Thread Smart 需要不到 500 毫秒即可启动并准备就绪。
凭借其集成的 Persimmon 用户界面 (UI) 组件,从上电到运行 UI 所需的时间约为一秒钟。 换句话说,这是一个非常小巧且快速的系统。 当然,“实时”并非关于启动,而是关于系统如何在一段时间内持续运行。 对于 RT-Thread,实时性能是首要任务,中断延迟小于 1 微秒,这满足了大多数具有最严格实时要求的应用场景。
RT-Thread Smart 与 RT-Thread
您可能想知道 RT-Thread Smart 和 RT-Thread 之间的区别。 简而言之,RT-Thread Smart 是一个基于 RT-Thread RTOS 的操作系统,但它集成了用户空间进程。 RT-Smart 的内核部分本质上是 RT-Thread RTOS;它运行在虚拟地址上,添加了进程管理,并使用进程间通信机制、虚拟内存/地址空间管理、ELF 加载器等,它使所有这些功能都成为 RT-Thread RTOS 中的组件。 当这些组件被禁用时,RT-Smart 会回退到 RT-Thread RTOS。
这是一个比较
RT-Thread | RT-Thread Smart | |
---|---|---|
支持的芯片 | Cortex-M/R, RISC-V RV32IMAC (及类似), Cortex-A MPU | 带有 MMU 的 MPU,例如 ARM Cortex-A 和 RISC-V |
编译 | 内核和应用程序被编译成一个镜像程序。 | 内核和应用程序可以单独编译和执行。 |
内存 | 在线性地址空间上运行(即使有 MMU),并使用虚拟寻址与物理地址 | 在 32 位系统上运行,内核运行在超过 1GB 的空间,用户空间 进程具有完整的 4G 地址空间,彼此隔离。 外围驱动程序必须使用虚拟地址访问外围设备。 |
运行错误 | 当应用程序失败时,整个系统崩溃。 | 当应用程序失败时,它不会影响内核和其他进程的执行。 |
运行模型 | 多线程模型 | 多进程模型(进程内支持多线程,内核线程由内核支持) |
用户模型 | 单用户模型 | 单用户模型 |
API | RT-Thread API, POSIX PSE52 | RT-Thread API(在内核和用户空间上),加上完整的 POSIX API |
实时 | 抢占式硬实时系统 | 抢占式硬实时系统 |
资源利用率 | 非常小 | 相对较小 |
调试 | 通常通过模拟器进行调试 | 支持 GDB 调试,无需模拟器 要求 |
RT-Thread RTOS 非常紧凑。 所有应用程序和子系统都编译到镜像中,多线程应用程序运行并共享相同的地址空间。
RT-Thread Smart 是独立的。 系统和应用程序分别编译和执行。 应用程序具有完整的地址空间,并且彼此隔离。 它还继承了 RT-Thread 的所有出色实时特性,并具有 POSIX 环境。
同样,它们都与 RT-Thread API 兼容,因此 RT-Thread RTOS 上的应用程序可以平滑地移植到 RT-Thread Smart。
嵌入开源
RT-Thread Smart 是一个开源项目,其代码可在 GitHub 上找到。 您可以下载代码及其文档,试一试,提交评论和反馈,并帮助将其传播给更多的开源倡导者。 嵌入式系统应该属于其用户,并且有太多的嵌入式开发人员没有意识到可用的东西。
如果您是开发人员,请帮助 hack RT-Thread Smart! 随着 RT-Thread 项目不断发展,我们的目标是使激动人心的物联网和边缘计算世界开源。
评论已关闭。