0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Rust语言的高可靠、开源嵌入式Hypervisor

openEuler 来源:openEuler 2023-05-24 16:31 次阅读

「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 平台上运行,支持实时和非实时虚拟机,可运行 LinuxRTOS

嵌入式虚拟化的挑战

物联网的不断发展使得现代嵌入式系统正在朝着通用系统和混合关键系统的方向演化,其承载的任务往往有着不同的可靠性、实时性和验证级别,如何保证不同关键性任务之间的相互隔离以及实时性成为了一个难题。虚拟化技术提供的资源隔离手段成为了解决上述问题的关键,但嵌入式虚拟化也面临一些挑战:

如何保证虚拟机之间的「隔离性和安全性」,防止恶意攻击;

如何保证虚拟机之间的通信效率和「实时性」,避免延迟或者抖动;

如何保证「Hypervisor 本身的稳定性和可靠性」,防止出现故障。

Rust-Shyper 的设计理念和特点

「内存安全」:利用 Rust 语言类型系统和内存安全模型,保证 Hypervisor 的内存安全;

「强隔离性」:利用硬件辅助虚拟化,实现虚拟机间的安全隔离和故障隔离;

「丰富的设备模型」:为提高资源利用率,实现了直通设备、中介传递和全模拟等多种设备模型;

「实时虚拟化」:针对性能需求 ,实现资源直通以及实时虚拟化技术;

「虚拟机监控器热更新技术」:实现了虚拟机迁移和监控器动态升级两类视器热更新机制。

Rust-Shyper 系统架构和功能

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

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 引入了跨硬件的虚拟机迁移技术和本地热更新技术。

虚拟机迁移

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

虚拟机迁移技术的整个流程如上图所示。Rust-Shyper 实现了基于 Pre-Copy 策略的虚拟机在硬件平台之间的迁移,可用于负载平衡和错误预防。

监控器动态升级

Rust-Shyper 设计实现了「监控器动态升级技术」,其最大延迟抖动低于 Jailhouse,显著降低热更新成本,满足虚拟机的实时性需求,可用于软件版本升级和错误修复。

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

应用场景与未来的规划

基于 Rust-Shyper 移植 NVIDIA Jetson TX2 硬件平台的无人车应用(预计 2023 年 5 月完成);

基于 Rust-Shyper 支持 ROS 系统,移植机器人应用;

针对 Virtio 等虚拟化设备模型的优化研究;

针对 RISC-V 平台的 Rust-Shyper 移植。

关于我们

北航王雷老师的团队承担了国家自然科学基金项目、863 课题和核高基等多项科研项目。在虚拟化方面,针对混合关键领域高可靠、强实时的要求,基于时空分区的隔离机制,开发了 C 语言的 Shyper 虚拟机监控器,该监控器已经通过了 EAL5+ 认证。在操作系统内核方面,基于复杂网络理论,针对 Linux 内核提出了基于年龄的演化模型,合理地解释了操作系统网络特征的形成机理。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5091

    文章

    19176

    浏览量

    307201
  • Linux
    +关注

    关注

    87

    文章

    11342

    浏览量

    210246
  • 开源
    +关注

    关注

    3

    文章

    3398

    浏览量

    42673
  • 虚拟机
    +关注

    关注

    1

    文章

    931

    浏览量

    28381
  • Rust
    +关注

    关注

    1

    文章

    230

    浏览量

    6647

原文标题:Rust-Shyper:基于 Rust 语言的高可靠、开源嵌入式 Hypervisor

文章出处:【微信号:openEulercommunity,微信公众号:openEuler】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    名单公布!【书籍评测活动NO.42】 嵌入式Hypervisor:架构、原理与应用

    嵌入式Hypervisor的架构、设计与实现、高级应用和未来规划。阅读本书,不仅提升读者对嵌入式Hypervisor的认知,还能助力汽车、航空航天等高安全需求行业打造适用的产品,构建
    发表于 08-23 15:17

    学习hypervisor嵌入式产品安全设计

    第一部分(第1~2章)介绍Hypervisor基础,涵盖虚拟化技术与实现、主流的嵌入式Hypervisor产品,以及基于分离内核的嵌入式Hyperv
    发表于 08-25 09:11

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第一二章读后感

    非常感谢社区提供的阅读机会,拿到书后,就迫不及待的的开始阅读了。 社区还有签名留念呢,值得纪念。 《嵌入式Hypervisor:架构、原理与应用》的第一、二章为读者提供了关于Hypervisor技术
    发表于 10-09 18:22

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第三四章阅读报告

    在深入阅读了《嵌入式Hypervisor:架构、原理与应用》的第三、四章后,我对嵌入式Hypervisor的设计与实现技术有了更为详尽和系统的理解。以下是我对这两章内容的阅读报告:
    发表于 10-09 18:29

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第7-8章学习心得

    提供了安全、可靠和高效的虚拟化环境。同时,嵌入式Hypervisor的设计还注重解决容错性和实时性问题,为构造可靠
    发表于 10-09 18:50

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+全文学习心得

    降低了虚拟机之间的耦合性,提高了系统的可靠性和安全性。 在学习过程中,我深刻体会到嵌入式Hypervisor的核心价值在于其灵活性和可扩展性。它能够根据实际应用需求,动态地调整资源配置,满足不同应用场
    发表于 10-09 19:11

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+ 了解Hypervisor

    正值举国欢度国庆佳节之际,我收到了《嵌入式Hypervisor:架构、原理与应用》一书,在此感谢电子发烧友论坛!当初申请评测此书之时,我根本就不知道这个Hypervisor是什么,只是看到有
    发表于 10-13 16:47

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+ Hypervisor应用场景调研

    ,比如系统软件和应用软件自身的漏洞、病毒和网络攻击、以及人为操作导致的破坏,Hypervisor的出现就是为了构建高可靠性的嵌入式系统,原来如此啊! 读到这里,我感觉Hypervisor
    发表于 10-14 11:21

    怎样去使用Rust进行嵌入式编程呢

    使用Rust进行嵌入式编程Use Rust for embedded development篇首语:Rust的高性能、可靠性和生产力使其适合
    发表于 12-22 07:20

    RUST嵌入式开发中的应用是什么

    Rust是一种编程语言,它使用户能够构建可靠、高效的软件,尤其是用于嵌入式开发的软件。它的特点是:高性能:Rust具有惊人的速度和
    发表于 12-24 08:34

    为什么要用Rust进行嵌入式开发

    提示信息 为什么要用 Rust 进行嵌入式开发 Rust 的设计理念:既要安全,也要高性能。Rust 的设计理念完全是嵌入式开发所需要的。
    的头像 发表于 11-06 10:04 2959次阅读

    嵌入式编程语言的状态

    C语言已经稳定了一代以上的嵌入式系统编程。但今天,一种新型的开发人员正在世界各地的高中和大学接受培训,他们不使用C语言。他们使用的是蟒蛇、JavaScript、节点.js和 Rust
    的头像 发表于 10-14 15:50 835次阅读
    <b class='flag-5'>嵌入式</b>编程<b class='flag-5'>语言</b>的状态

    适合嵌入式设备开发的编程语言Rust语言

    Rust语言是二十一世纪的语言新星。Rust被人广泛承认的一点,就是因为它能运行在多样的目标上,从桌面和服务器设备,到资源有限的嵌入式设备。
    发表于 09-12 09:39 3126次阅读
    适合<b class='flag-5'>嵌入式</b>设备开发的编程<b class='flag-5'>语言</b>—<b class='flag-5'>Rust</b><b class='flag-5'>语言</b>

    基于Rust嵌入式符合ACID的键值数据库

    surrealkv -- 基于 Rust 的 low level、版本化、嵌入式、符合 ACID 的键值数据库
    的头像 发表于 12-28 11:29 910次阅读

    嵌入式Hypervisor:架构、原理与应用 阅读体验 +Hypervisor基础概念

    本章详细介绍了虚拟化技术的基本概念、实现方式以及应用领域,着重介绍了嵌入式虚拟化技术的特点、面临的挑战以及具体的解决方案。嵌入式Hypervisor一直被认为是嵌入式系统软件的下一个前
    的头像 发表于 10-08 15:08 714次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Hypervisor</b>:架构、原理与应用 阅读体验 +<b class='flag-5'>Hypervisor</b>基础概念