Linux中國

一種新的開源嵌入式操作系統

目前對 嵌入式操作系統 有巨大的需求,你建立的操作系統最好是開源的。RT-Thread 項目的研發團隊花了兩年時間,研發出了該項目的最新成果:RT-Thread Smart。這是一款微內核的操作系統,主要針對中高端的處理器,如具有內存管理單元(MMU)的 RISC-V 或 Arm Cortex-A,為嵌入式領域的所有行業提供了一個具有競爭力的、基於 POSIX 的軟體平台。

誰需要 RT-Thread Smart?

RT-Thread Smart 是一款專業的、高性能的微內核操作系統,用於實時應用。它為所有市場的嵌入式設備提供了開源基礎,如安全(IP 攝像頭)、工業控制、車載設備、消費電子及其他嵌入式科技應用,可謂一切場景。它的意義在於:不像傳統的物聯網操作系統,一個微內核的操作系統可以填補傳統實時操作系統 RTOS 和相對大型的操作系統如 Linux 之間的空白,實現實時性能、成本、安全、啟動速度等等各方面之間的最佳平衡。

RT-Thread Smart 的架構

RT-Thread Smart 通過 MMU 和系統調用將系統分割為內核模式和用戶模式,並為每種模式區分了地址空間(一個 32 位系統可以提供 4G 地址空間)。

![RT-Thread Smart 架構](/data/attachment/album/202205/06/131929b6v8hbzh87v86siv.png "RT-Thread Smart architecture")

(RT-Thread, CC BY-SA 4.0

RT-Thread Smart 內核包括平台的基礎功能,並支持定製化。RT-Thread Smart 的用戶應用環境使用 musl libc 來提供 POSIX 介面調用和 C 語言的運行時支持。它也繼承了原始的 RT-Thread 生態系統,使用 SCons 或者其他編譯工具如 Autotools、Makefile、CMake 等等來支持開發,以及 RT-Thread 開箱即用的在線軟體包(撰寫本文時超過 342 個)。你甚至可以將 Linux 應用程序(如 wget/cURL、BusyBox、OpenSSL 和 Simple DirectMedia Layer)移植到你的平台。

壓縮的 RT-Thread Smart 內核僅 217 KB,搭配一個 127 KB 的根文件系統。大約 2 MB的存儲佔用。包括了對文件系統、網路協議棧、多媒體的完整支持。RT-Thread 只需要 3 到 5 秒完成啟動,而在不運行其他功能組件時,RT-Thread Smart 需要的啟動及準備時間不到 500ms。

通過其集成的 Persimmon 用戶界面(UI)組件,RT-Thread Smart 從上電到運行 UI 需要大約 1 秒。換句話說,這是一個非常輕巧快速的系統。當然,「實時」不是指啟動,而是指系統隨著時間推進而表現出的一致性。對於 RT-Thread ,實時性能需要優先考慮,中斷時延小於 1μs,滿足大部分實時性要求嚴格的場景需求。

RT-Thread Smart 和 RT-Thread

你可能想知道 RT-Thread Smart 和 RT-Thread 之間的不同。簡單來說, RT-Thread Smart 是一個基於 RT-Thread RTOS 的操作系統,但它整合了用戶態的處理過程。RT-Smart 的內核部分本質上是 RT-Thread RTOS,它在虛擬地址上運行,增加了進程管理,使用進程間通信機制(IPC)、虛擬內存/地址空間管理、ELF 載入器等等,以上特性全部在 RT-Thread RTOS 內實現,當這些組件被禁用時,RT-Smart 會回歸 RT-Thread RTOS。

以下是對比:

RT-Thread RT-Thread Smart
支持晶元 Cortex-M/R、RISC-V RV32IMAC(以及類似)、Cortex-A MPU Cortex-A 等具有 MMU 的 MPU
編譯 內核和應用都編譯到一個鏡像 內核和應用可以被分開編譯和運行
存儲 使用線性地址空間(即使有 MMU),使用物理地址的虛擬定址 運行在內核佔用超過 1GB 的 32 位操作系統,擁有完整 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。你可以下載代碼和文檔,嘗試一下,並提交評論和反饋,將該項目傳播給更多開源倡導者。嵌入式系統屬於它們的用戶,有太多的嵌入式開發人員沒有找到太多可用的嵌入式系統。

如果你是開發人員,請幫助改進 RT-Thread Smart。隨著 RT-Thread 項目的不斷推進,我們希望創建物聯網和邊緣計算的令人激動的開源世界。

via: https://opensource.com/article/21/7/rt-thread-smart

作者:Zhu Tianlong 選題:lujun9972 譯者:tendertime 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國