「Rust-Shyper 是北京航空航天大學計算機學院王雷教授團隊設計開發的虛擬機監控器,該系統基于 Rust 語言,實現了一個高可靠、嵌入式 Hypervisor。2023 年 2 月 15 日 Rust-Shyper 正式在 openEuler 社區開源。」
項目地址:https://gitee.com/openeuler/rust_shyper
Rust-Shyper 是一款基于 AArch64 架構、「Rust 編寫」、面向無人車、機器人等嵌入式場景的「Type-1 型」虛擬機監控器(Hypervisor)。其設計目標是在提高資源利用率的同時,保障虛擬機實時性、隔離性與內存安全。此外,Rust-Shyper 支持「虛擬機遷移」(VM migration)和「監控器動態升級」(Hypervisor Live-update)兩種熱更新機制,能夠在不影響虛擬機運行的情況下,動態修復 Hypervisor 的軟件漏洞。目前該系統可以在 NVIDIA Jetson TX2、Raspberry Pi 4 和 QEMU 平臺上運行,支持實時和非實時虛擬機,可運行 Linux 和 RTOS。
嵌入式虛擬化的挑戰
物聯網的不斷發展使得現代嵌入式系統正在朝著通用系統和混合關鍵系統的方向演化,其承載的任務往往有著不同的可靠性、實時性和驗證級別,如何保證不同關鍵性任務之間的相互隔離以及實時性成為了一個難題。虛擬化技術提供的資源隔離手段成為了解決上述問題的關鍵,但嵌入式虛擬化也面臨一些挑戰:
如何保證虛擬機之間的「隔離性和安全性」,防止惡意攻擊;
如何保證虛擬機之間的通信效率和「實時性」,避免延遲或者抖動;
如何保證「Hypervisor 本身的穩定性和可靠性」,防止出現故障。
Rust-Shyper 的設計理念和特點
「內存安全」:利用 Rust 語言類型系統和內存安全模型,保證 Hypervisor 的內存安全;
「強隔離性」:利用硬件輔助虛擬化,實現虛擬機間的安全隔離和故障隔離;
「豐富的設備模型」:為提高資源利用率,實現了直通設備、中介傳遞和全模擬等多種設備模型;
「實時虛擬化」:針對性能需求 ,實現資源直通以及實時虛擬化技術;
「虛擬機監控器熱更新技術」:實現了虛擬機遷移和監控器動態升級兩類視器熱更新機制。
Rust-Shyper 系統架構和功能
Rust-Shyper 是一款基于 AArch64 體系結構的 Type-1 虛擬機監控器,整個結構包含三個層級:
最底層為硬件層級,對應 ARMv8 EL3 固件層級;
中間層為虛擬機監控器層,對應 ARMv8 EL2 虛擬化層級,該層級也是 Rust-Shyper 代碼所處的特權層級;
最上層為虛擬機層級,對應 ARMv8 EL1 和 EL0 層級。
為了符合嵌入式應用的需求,Rust-Shyper 通過提供不同的虛擬機類型,來提供差異化的虛擬化服務,Rust-Shyper 中支持管理虛擬機(MVM)、客戶虛擬機(GVM)、實時虛擬機(RTVM)等三類虛擬機。
Rust-Shyper 的「虛擬機監控器熱更新技術」
為了提升嵌入式場景下 Hypervisor 的可靠性,Rust-Shyper 引入了跨硬件的虛擬機遷移技術和本地熱更新技術。
虛擬機遷移
虛擬機遷移技術的整個流程如上圖所示。Rust-Shyper 實現了基于 Pre-Copy 策略的虛擬機在硬件平臺之間的遷移,可用于負載平衡和錯誤預防。
監控器動態升級
Rust-Shyper 設計實現了「監控器動態升級技術」,其最大延遲抖動低于 Jailhouse,顯著降低熱更新成本,滿足虛擬機的實時性需求,可用于軟件版本升級和錯誤修復。
應用場景與未來的規劃
基于 Rust-Shyper 移植 NVIDIA Jetson TX2 硬件平臺的無人車應用(預計 2023 年 5 月完成);
基于 Rust-Shyper 支持 ROS 系統,移植機器人應用;
針對 Virtio 等虛擬化設備模型的優化研究;
針對 RISC-V 平臺的 Rust-Shyper 移植。
關于我們
北航王雷老師的團隊承擔了國家自然科學基金項目、863 課題和核高基等多項科研項目。在虛擬化方面,針對混合關鍵領域高可靠、強實時的要求,基于時空分區的隔離機制,開發了 C 語言的 Shyper 虛擬機監控器,該監控器已經通過了 EAL5+ 認證。在操作系統內核方面,基于復雜網絡理論,針對 Linux 內核提出了基于年齡的演化模型,合理地解釋了操作系統網絡特征的形成機理。
審核編輯:湯梓紅
-
嵌入式
+關注
關注
5092文章
19177瀏覽量
307680 -
Linux
+關注
關注
87文章
11345瀏覽量
210395 -
開源
+關注
關注
3文章
3407瀏覽量
42712 -
虛擬機
+關注
關注
1文章
940瀏覽量
28427 -
Rust
+關注
關注
1文章
230瀏覽量
6665
原文標題:Rust-Shyper:基于 Rust 語言的高可靠、開源嵌入式 Hypervisor
文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論