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

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

基于Rust的嵌入式符合ACID的鍵值數(shù)據(jù)庫
嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用 閱讀體驗(yàn) +Hypervisor基礎(chǔ)概念

評(píng)論