0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Rust語言的高可靠、開源嵌入式Hypervisor

openEuler ? 來源:openEuler ? 2023-05-24 16:31 ? 次閱讀

「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)行 LinuxRTOS。

嵌入式虛擬化的挑戰(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)和功能

4d6bc15a-e632-11ed-ab56-dac502259ad0.png

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ī)遷移

4d7f9fae-e632-11ed-ab56-dac502259ad0.png

虛擬機(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ù)。

4d90885a-e632-11ed-ab56-dac502259ad0.png

應(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ī)理。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    名單公布!【書籍評(píng)測(cè)活動(dòng)NO.42】 嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用

    嵌入式Hypervisor的架構(gòu)、設(shè)計(jì)與實(shí)現(xiàn)、高級(jí)應(yīng)用和未來規(guī)劃。閱讀本書,不僅提升讀者對(duì)嵌入式Hypervisor的認(rèn)知,還能助力汽車、航空航天等高安全需求行業(yè)打造適用的產(chǎn)品,構(gòu)建
    發(fā)表于 08-23 15:17

    學(xué)習(xí)hypervisor嵌入式產(chǎn)品安全設(shè)計(jì)

    第一部分(第1~2章)介紹Hypervisor基礎(chǔ),涵蓋虛擬化技術(shù)與實(shí)現(xiàn)、主流的嵌入式Hypervisor產(chǎn)品,以及基于分離內(nèi)核的嵌入式Hyperv
    發(fā)表于 08-25 09:11

    【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+第一二章讀后感

    非常感謝社區(qū)提供的閱讀機(jī)會(huì),拿到書后,就迫不及待的的開始閱讀了。 社區(qū)還有簽名留念呢,值得紀(jì)念。 《嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用》的第一、二章為讀者提供了關(guān)于Hypervisor技術(shù)
    發(fā)表于 10-09 18:22

    【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+第三四章閱讀報(bào)告

    在深入閱讀了《嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用》的第三、四章后,我對(duì)嵌入式Hypervisor的設(shè)計(jì)與實(shí)現(xiàn)技術(shù)有了更為詳盡和系統(tǒng)的理解。以下是我對(duì)這兩章內(nèi)容的閱讀報(bào)告:
    發(fā)表于 10-09 18:29

    【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+第7-8章學(xué)習(xí)心得

    提供了安全、可靠和高效的虛擬化環(huán)境。同時(shí),嵌入式Hypervisor的設(shè)計(jì)還注重解決容錯(cuò)性和實(shí)時(shí)性問題,為構(gòu)造可靠
    發(fā)表于 10-09 18:50

    【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+全文學(xué)習(xí)心得

    降低了虛擬機(jī)之間的耦合性,提高了系統(tǒng)的可靠性和安全性。 在學(xué)習(xí)過程中,我深刻體會(huì)到嵌入式Hypervisor的核心價(jià)值在于其靈活性和可擴(kuò)展性。它能夠根據(jù)實(shí)際應(yīng)用需求,動(dòng)態(tài)地調(diào)整資源配置,滿足不同應(yīng)用場(chǎng)
    發(fā)表于 10-09 19:11

    【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+ 了解Hypervisor

    正值舉國(guó)歡度國(guó)慶佳節(jié)之際,我收到了《嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用》一書,在此感謝電子發(fā)燒友論壇!當(dāng)初申請(qǐng)?jiān)u測(cè)此書之時(shí),我根本就不知道這個(gè)Hypervisor是什么,只是看到有
    發(fā)表于 10-13 16:47

    【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+ Hypervisor應(yīng)用場(chǎng)景調(diào)研

    ,比如系統(tǒng)軟件和應(yīng)用軟件自身的漏洞、病毒和網(wǎng)絡(luò)攻擊、以及人為操作導(dǎo)致的破壞,Hypervisor的出現(xiàn)就是為了構(gòu)建高可靠性的嵌入式系統(tǒng),原來如此啊! 讀到這里,我感覺Hypervisor
    發(fā)表于 10-14 11:21

    怎樣去使用Rust進(jìn)行嵌入式編程呢

    使用Rust進(jìn)行嵌入式編程Use Rust for embedded development篇首語:Rust的高性能、可靠性和生產(chǎn)力使其適合
    發(fā)表于 12-22 07:20

    RUST嵌入式開發(fā)中的應(yīng)用是什么

    Rust是一種編程語言,它使用戶能夠構(gòu)建可靠、高效的軟件,尤其是用于嵌入式開發(fā)的軟件。它的特點(diǎn)是:高性能:Rust具有驚人的速度和
    發(fā)表于 12-24 08:34

    為什么要用Rust進(jìn)行嵌入式開發(fā)

    提示信息 為什么要用 Rust 進(jìn)行嵌入式開發(fā) Rust 的設(shè)計(jì)理念:既要安全,也要高性能。Rust 的設(shè)計(jì)理念完全是嵌入式開發(fā)所需要的。
    的頭像 發(fā)表于 11-06 10:04 ?3017次閱讀

    嵌入式編程語言的狀態(tài)

    C語言已經(jīng)穩(wěn)定了一代以上的嵌入式系統(tǒng)編程。但今天,一種新型的開發(fā)人員正在世界各地的高中和大學(xué)接受培訓(xùn),他們不使用C語言。他們使用的是蟒蛇、JavaScript、節(jié)點(diǎn).js和 Rust。
    的頭像 發(fā)表于 10-14 15:50 ?872次閱讀
    <b class='flag-5'>嵌入式</b>編程<b class='flag-5'>語言</b>的狀態(tài)

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

    Rust語言是二十一世紀(jì)的語言新星。Rust被人廣泛承認(rèn)的一點(diǎn),就是因?yàn)樗苓\(yùn)行在多樣的目標(biāo)上,從桌面和服務(wù)器設(shè)備,到資源有限的嵌入式設(shè)備。
    發(fā)表于 09-12 09:39 ?3312次閱讀
    適合<b class='flag-5'>嵌入式</b>設(shè)備開發(fā)的編程<b class='flag-5'>語言</b>—<b class='flag-5'>Rust</b><b class='flag-5'>語言</b>

    基于Rust嵌入式符合ACID的鍵值數(shù)據(jù)庫

    surrealkv -- 基于 Rust 的 low level、版本化、嵌入式、符合 ACID 的鍵值數(shù)據(jù)庫
    的頭像 發(fā)表于 12-28 11:29 ?957次閱讀

    嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用 閱讀體驗(yàn) +Hypervisor基礎(chǔ)概念

    本章詳細(xì)介紹了虛擬化技術(shù)的基本概念、實(shí)現(xiàn)方式以及應(yīng)用領(lǐng)域,著重介紹了嵌入式虛擬化技術(shù)的特點(diǎn)、面臨的挑戰(zhàn)以及具體的解決方案。嵌入式Hypervisor一直被認(rèn)為是嵌入式系統(tǒng)軟件的下一個(gè)前
    的頭像 發(fā)表于 10-08 15:08 ?893次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Hypervisor</b>:架構(gòu)、原理與應(yīng)用 閱讀體驗(yàn) +<b class='flag-5'>Hypervisor</b>基礎(chǔ)概念