适用于嵌入式系统的新型开源操作系统

RT-Thread Smart 正致力于开源物联网和边缘计算的世界。
54 位读者喜欢这篇文章。
An intersection of pipes.

Opensource.com

嵌入式操作系统 的需求日益增长,而构建在其上的操作系统最好是开源的。 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 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 项目不断发展,我们的目标是使激动人心的物联网和边缘计算世界开源。

接下来读什么
User profile image.
拥有超过 10 年的 RTOS 编程经验,致力于研究和开发尖端技术。

评论已关闭。

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.