一種新的開源嵌入式操作系統
目前對 嵌入式操作系統 有巨大的需求,你建立的操作系統最好是開源的。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 架構
(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 項目的不斷推進,我們希望創建物聯網和邊緣計算的令人激動的開源世界。