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

適合嵌入式設備開發(fā)的編程語言—Rust語言

基于Rust的嵌入式符合ACID的鍵值數(shù)據(jù)庫
嵌入式Hypervisor:架構、原理與應用 閱讀體驗 +Hypervisor基礎概念

評論