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

news2024/10/5 13:35:27

「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。

今年的 「openEuler Developer Day 2023 嵌入式分论坛」 进行了 Rust-Shyper 项目 “基于Rust的嵌入式虚拟机监视器及热更新技术” 的主题演讲,可通过以下链接观看视频回放(21日嵌入式分论坛,议题从00:49:38开始):

https://www.openeuler.org/zh/interaction/summit-list/devday2023/

嵌入式虚拟化的挑战

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

  • 如何保证虚拟机之间的**「隔离性和安全性」**,防止恶意攻击;
  • 如何保证虚拟机之间的通信效率和**「实时性」**,避免延迟或者抖动;
  • 如何保证 「Hypervisor 本身的稳定性和可靠性」,防止出现故障。

Rust-Shyper 的设计理念和特点

  1. 「内存安全」:利用 Rust 语言类型系统和内存安全模型,保证 Hypervisor 的内存安全;
  2. 「强隔离性」:利用硬件辅助虚拟化,实现虚拟机间的安全隔离和故障隔离;
  3. 「丰富的设备模型」:为提高资源利用率,实现了直通设备、中介传递和全模拟等多种设备模型;
  4. 「实时虚拟化」:针对性能需求 ,实现资源直通以及实时虚拟化技术;
  5. 「虚拟机监控器热更新技术」:实现了虚拟机迁移和监控器动态升级两类视器热更新机制。

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 内核提出了基于年龄的演化模型,合理地解释了操作系统网络特征的形成机理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/467000.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文阅读笔记:Hearing Lips Improving Lip Reading by Distilling Speech Recognizers

目录 论文链接 研究背景 LIBS 的整体框架 序列级知识蒸馏 上下文级知识蒸馏 最长公共子序列 (LCS) 帧级别知识蒸馏 论文链接 [1911.11502] Hearing Lips: Improving Lip Reading by Distilling Speech Recognizers (arxiv.org) 研究背景 这篇文章针对由于唇语识别动作…

【观察】解码“一网统管”:城市治理“新范式”,推动数字城市建设迈向“新高度”...

众所周知,随着城市化进程加快,大量的人员、物资、技术和信息等要素日益向城市汇聚,城市系统变得越来越复杂,随之而来的社会问题和“城市病”也层出不穷,而传统的治理模式和治理手段越来越难以胜任日益复杂城市的管理需…

深聊丨第四范式陈雨强:如何用AI大模型打开万亿规模传统软件市场?

文丨亲爱的数据 谭婧 “GPT大模型到底能不能用?用在哪里?” 这是目前中国大型企业一把手最关心的问题之一。AI大模型也被媒体称为“一把手”工程。 大型企业会非常认真地考虑大模型的应用。最近个把月,大型企业客户对大模型的热烈反应让第四范…

进程状态以及两种特殊进程

目录 进程状态1 具体状态2 进程状态的意义3 进程状态实例3.1 R&S&T认识3.2 认识Z & 僵尸进程 & 孤儿进程僵尸进程孤儿进程 进程状态 为了弄明白正在运行的进程是什么意思,我们需要知道进程的不同状态。一个进程可以有几个状态(在Linux内…

==、equals区别 | java学习笔记

做一些java基础知识的记录📕 java基本类型:byte short int long float double char boolean(指向具体的数值) java引用类型:类 接口 数组等。指向的不是具体的数值,而是指向了对象的地址。 用于判断基本类…

JavaWeb|在IDEA中创建基于Maven的Web项目| Servlet依赖|这一篇就够了(超详细)

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:老茶icon 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,计…

【c语言】详解c语言#预处理期过程 | 宏定义前言

c语言系列专栏&#xff1a; c语言之路重点知识整合 创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持…

微信小程序php+python+nodejs+vue大学生心理健康测试职位推荐系统

心理测试开发使系统能够更加方便学生捷&#xff0c;同时也促使心理测试变的更加系统化、有序化。系统界面较友好&#xff0c;易于操作。具体在系统设计上&#xff0c;客户端使用微信开发者&#xff0c;后台也使用php技术在动态页面上进行了设计&#xff0c;Mysql数据库&#xf…

算法 DAY44 动态规划6 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ

完全背包 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品都有无限个&#xff08;也就是可以放入背包多次&#xff09;&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 完全背包和01背包问题唯一不同…

Java每日一练(20230427)

目录 1. 螺旋矩阵 2. LRU 缓存机制 3. 解数独 &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#…

Leetcode——495. 提莫攻击

&#x1f4af;&#x1f4af;欢迎来到的热爱编程的小K的Leetcode的刷题专栏 文章目录 1、题目2、题目分析3、题解代码 1、题目 题目链接&#xff1a;Leetcode——495. 提莫攻击 在《英雄联盟》的世界中&#xff0c;有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希&…

国民技术N32G430开发笔记(1)-macos开发环境搭建

macos开发环境搭建 1、安装arm-none-eabi- 工具链 brew tap ArmMbed/homebrew-formulae brew install arm-none-eabi-gcc如果没有安装brew&#xff0c;请先安装brew。 2、安装vscode 3、安装pyocd a、python官网下载最新版的python b、pip3 install -U pyocd 我的开发板为N3…

Hadoop 1:Apache Hadoop、HDFS

Hadoop核心组件 Hadoop HDFS&#xff08;分布式文件存储系统&#xff09;&#xff1a;解决海量数据存储 Hadoop YARN&#xff08;集群资源管理和任务调度框架&#xff09;&#xff1a;解决资源任务调度 Hadoop MapReduce&#xff08;分布式计算框架&#xff09;&#xff1a;解决…

MyBatis的代理开发方式、动态sql语句和typeHandlers和plugins标签实战

文章目录 Mybatis的Dao层实现传统开发方式编写UserDao接口编写UserDaoImpl实现mapper文件测试传统方式 代理开发方式代理开发方式介绍编写UserMapper接口测试代理方式 MyBatis映射文件深入动态sql语句动态sql语句概述动态 SQL 之<if>动态 SQL 之<foreach>SQL片段抽…

信号处理的本质是什么?

信号处理的宗旨是“将信号中蕴涵的信息变得显然”&#xff0c;从数学角度分析, 信号即是某个物理量x的函数f(x), 信号所蕴含的信息需要通过此类函数予以揭示. 自然地可将f(x)投影到其所在空间中的一组基函数上, 由投影系数或加权系数来构成函数f(x)在变换域上的表示。在一定条件…

Nginx基本配置

文章目录 准备环境安装NginxNginx配置初始配置信息配置详解1. 全局块2. events 块3. http 块3.1 http 全局块3.2 server 块3.2.1 全局 server 块3.2.2 location 块 启动Nginx 参考资料 本教程讲述Nginx的基本配置和操作。首先需要安装 Nginx&#xff0c;关关于具体的安装方式&a…

输入网址url到网页显示,期间发生了什么?

当我们在浏览器输入一个网址后&#xff0c;知道网页显示在我们眼前&#xff0c;这一期间是如何发生的&#xff0c;接下来就将详细介绍在这期间发生的过程及使用的协议栈 1、浏览器解析URL并生产HTTP请求消息 URL是我们输入的网址信息&#xff0c;比如 https://www.taobao.com …

JavaScript 知识总结下篇(更新版)

91.实现一个 promise 参考链接&#xff1a;实现一个完美符合Promise/A规范的Promise Issue #4 forthealllight/blog GitHub function myPromise(constructor) {let self this;self.status "pending" // 定义状态改变前的初始状态self.value undefined;// 定义状…

c++调用java方法详解

当我们使用 Java程序调用C程序时&#xff0c;我们可以使用JAVA_HOME类来访问 Java虚拟机中的类&#xff0c;并使用其提供的方法来调用 Java方法。 使用JAVA_HOME类调用 Java方法时&#xff0c;可以在 JVM中直接操作 Java虚拟机。这个方法称为“直接访问”&#xff08;Direct Ac…

华为交换机配置telnet登录图文教程

一、配置交换机管理vlan和地址&#xff0c;配置交换机接口 1.关闭多余的信息提示&#xff1a; [Huawei]undo in en Info: Information center is disabled. [Huawei] 2.交换机配置 在工作中通过Telnet方式登录交换机进行设备登录管理能更加便利&#xff0c;不需要到机房里…