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

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

3天内不再提示

嵌入式实时虚拟机ZVM介绍

openEuler 来源:openEuler 2023-03-25 09:45 次阅读

1. 背景介绍

嵌入式实时虚拟化技术是一种允许在单个硬件平台上同时运行多个操作系统、并保持确定性和时间关键性能的技术,该技术可为嵌入式系统开发带来许多好处,例如硬件整合、系统隔离、系统灵活可靠性、安全性和可扩展性等。嵌入式实时虚拟化可支持智能汽车、数控机床及5G设备等高级应用。

开发嵌入式实时虚拟化软件面临着一些挑战。第一个挑战是如何确保不同Guest OS间的隔离和安全性,尤其是当它们具有不同级别的关键性和可信度时。第二个挑战是如何在不同Guest OS间有效地共享或分配 I/O 设备,这可能需要设备模拟或直通机制。第三个挑战是如何确保作为Guest OS运行的RTOS具备低延迟和高吞吐量。

嵌入式实时虚拟化软件需要通过提供强制的隔离和安全、高效的中断处理、灵活的 I/O 设备管理机制及硬件支持来应对这些挑战。基于架构硬件虚拟化支持与虚拟化主机拓展支持,湖大嵌入式实验室开发了基于Zephyr RTOS的虚拟化软件ZVM,实现了Guest OS间的隔离、设备分配及中断处理,保证了系统的安全与实时。

2. 技术路线

ZVM总体功能需要关注三个部分:安全隔离、设备管理和系统性能提升。

(1)安全隔离:利用虚拟化技术实现不同特权级的应用支持,确保不同Guest OS间的隔离和安全,尤其是当它们具有不同级别的关键级时。为每个Guest OS分配不同的虚拟地址空间和虚拟设备,实现虚拟机间的隔离以保证系统安全。

(2)设备管理:使用支持设备模拟和直通机制的管理程序,在不同Guest OS之间有效共享或分配I/O设备。对于中断控制器需独占的设备,用完全虚拟化的方式进行分配,对于UART等非独占的设备,使用设备直通的方式进行分配。

(3)系统性能提升:处理器方面,使用支持ARM64硬件辅助虚拟化拓展技术来减少上下文开销;在内存管理方面,使用基于硬件的两阶段地址转换地址转换性能开销;在中断方面,使用基于硬件的中断注入机制来减少上下文开销和中断时延。

3. 系统架构

ZVM整体系统架构如下图所示,通过在Zephyr RTOS中加入虚拟化模块,实现CPU虚拟化、内存虚拟化、中断虚拟化、定时器虚拟化和I/O虚拟化。ZVM支持两种类型的Guest OS,即通用的Linux操作系统和Zephyr RTOS。

b5740af0-ca94-11ed-bfe3-dac502259ad0.jpg

(1)CPU虚拟化。CPU虚拟化模块的主要功能是为每个Guest OS的vCPU虚拟出一个单独的隔离上下文。每个vCPU均作为一个线程存在,由ZVM统一调度。为了提高vCPU的性能,ARM64架构为ZVM提供了VHE支持,VHE可以使Host OS迁移到EL2特权模式,而无需改变操作系统原有代码。VHE主要实现了ARM寄存器重定向,可以在不修改Zephyr RTOS内核代码的情况下,将其迁移EL2层开发ZVM,既降低了系统冗余,又提高了系统性能。

(2)内存虚拟化。内存虚拟化模块的主要作用是实现Guest OS间内存地址的隔离。系统需要隔离不同Guest OS的内存空间,监控Guest OS对实际物理内存的访问,以保护物理内存。为了实现该功能,ARM64提供了两阶段的地址查找策略。第一阶段是从Guest OS的虚拟地址到Guest OS的物理地址转换,第二阶段是从Guest OS的物理地址到Host OS的物理地址转化。ARM专门为第二阶段转换提供单独的硬件,以提高地址翻译性能。

(3)中断虚拟化模块。中断虚拟化使用ARM的通用中断控制器(GIC)设备,并基于该设备实现虚拟中断配置。Guest OS的中断统一路由到ZVM,然后ZVM会将它们分配给不同的vCPU。虚拟中断的注入通过GIC中的Virtual CPU接口或List Register具体实现。

(4)定时器虚拟化。定时器虚拟化为每个CPU定义了一组虚拟定时器寄存器,它们在预定时间后单独计数并抛出中断,由Host OS转发给Guest OS。同时,在Guest OS切换过程中,虚拟定时器会计算Guest OS的实际运行时间,并对Guest OS退出的时间进行补偿,为Guest OS提供定时器服务。

(5)设备虚拟化。在设备虚拟化方面,ZVM采用ARM中的Memory-Mapped I/O (MMIO)方法将设备地址映射到虚拟内存地址,构建虚拟设备空间,实现Guest OS对设备地址的访问。在具体实现上,ZVM统一构建一个虚拟的MMIO设备,在Guest OS创建过程中将该设备分配给指定的Guest OS,实现I/O虚拟化。此外,对一些非独占设备,ZVM使用设备直通的方式实现设备的访问。

4. 未来规划

ZVM由Sig-Zephyr进行维护,并计划在2023年5月推出第一个支持Zephyr最新LTS的基础版本,7月实现openEuler Embedded和ZVM整合,并将完善各项其它高级功能,如IO设备框架支持、虚拟机动态资源管理及实时性支持等。





审核编辑:刘清

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

    关注

    5068

    文章

    19008

    浏览量

    302990
  • 寄存器
    +关注

    关注

    31

    文章

    5308

    浏览量

    119980
  • 定时器
    +关注

    关注

    23

    文章

    3237

    浏览量

    114435
  • 虚拟机
    +关注

    关注

    1

    文章

    908

    浏览量

    28065

原文标题:openEuler开源新项目,嵌入式实时虚拟机ZVM介绍

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

收藏 人收藏

    评论

    相关推荐

    嵌入式的 你们Linux系统是装在虚拟机还是PC上呢?

    嵌入式的 你们Linux系统是装在虚拟机还是PC上呢?
    发表于 03-16 23:17

    gnuboy虚拟机怎么应用到嵌入式环境中?

    嵌入式平台上对gnuboy运用进行的尝试性工作,同时, Gnuboy作为一种虚拟机技术,本文的工作对研究虚拟机技术在ARM L inux中的应用也具有一定的价值。
    发表于 03-05 06:51

    介绍VirtualBox虚拟机的构建方法

    本系列文章将向大家介绍嵌入式系统开发的各方面知识。本文将向大家介绍VirtualBox虚拟机的构建方法。一、什么是虚拟机二、主流
    发表于 11-08 06:21

    如何创建虚拟机

    实战开发--开发环境安装(五)1、下载软件vmware和ubuntu-20.04.1-desktop-amd64.iso2、创建虚拟机完整步骤3、安装嵌入式linux所需的工具包4、安装vmware tool,实现虚拟机与物理主
    发表于 12-16 07:45

    虚拟机通过USB网卡与嵌入式Linux开发板直连需求

    应用场景:虚拟机通过USB网卡与嵌入式Linux开发板直连需求:保证虚拟机正常上网的同时,使用USB网卡与开发板组建局域网通信虚拟机网络设置:桥接模式,使用独立IP(方便以
    发表于 12-16 07:02

    介绍SSH软件的安装和ssh软件在主机和虚拟机之间传文件

    学习!!!!文章嵌入式系统设计(一):虚拟机、Ubuntu的安装以及SSH 软件的安装使用:里面详细介绍了SSH软件的安装和ssh 软件在主机和虚拟机之间传文件。文章
    发表于 12-22 08:01

    基于嵌入式平台的并发虚拟机研究

    并发程序对提高应用系统的处理能力具有重要作用,基于嵌入式平台的并发程序开发尚无统一的工具支持。本文提出了一种基于嵌入式平台的并发虚拟机(CVM)设计思想,并采用
    发表于 09-09 16:08 14次下载

    虚拟机嵌入式开发

    虚拟机嵌入式开发 华清远见视频教程使用说明================================= 环境要求:1、推荐最佳分辨率为1024*
    发表于 02-11 10:44 20次下载

    基于gnuboy虚拟机嵌入式实验平台的移植与优化

    本文就是在构建的基于ARM920T Linux的嵌入式平台上对gnuboy运用进行的尝试性工作,同时, Gnuboy作为一种虚拟机技术,本文的工作对研究虚拟机技术在ARM L inux中的应用
    发表于 02-12 11:17 1123次阅读
    基于gnuboy<b class='flag-5'>虚拟机</b>的<b class='flag-5'>嵌入式</b>实验平台的移植与优化

    字符型嵌入式软PLC虚拟机设计

    摘要! 介绍一种可直接解析字符型语句表指令的字符型嵌入式软PLC虚拟机虚拟机主要运行于嵌入式操作系统上可直接对字符型语句表指令进行解析和处
    发表于 04-08 16:54 25次下载
    字符型<b class='flag-5'>嵌入式</b>软PLC<b class='flag-5'>虚拟机</b>设计

    嵌入式系统开发笔记1:构建VirualBox虚拟机开发环境

    本系列文章将向大家介绍嵌入式系统开发的各方面知识。本文将向大家介绍VirtualBox虚拟机的构建方法。一、什么是虚拟机二、主流
    发表于 11-03 13:06 13次下载
    <b class='flag-5'>嵌入式</b>系统开发笔记1:构建VirualBox<b class='flag-5'>虚拟机</b>开发环境

    嵌入式系统设计(九):虚拟机安装常见错误汇总,保你顺利安装

    学习!!!!文章嵌入式系统设计(一):虚拟机、Ubuntu的安装以及SSH 软件的安装使用:里面详细介绍了SSH软件的安装和ssh 软件在主机和虚拟机之间传文件。文章
    发表于 11-04 09:36 11次下载
    <b class='flag-5'>嵌入式</b>系统设计(九):<b class='flag-5'>虚拟机</b>安装常见错误汇总,保你顺利安装

    嵌入式系统设计(二): 虚拟机和主机之间共享文件夹

    学习!!!!文章嵌入式系统设计(一):虚拟机、Ubuntu的安装以及SSH 软件的安装使用里面详细介绍了SSH软件的安装和ssh 软件在主机和虚拟机之间传文件。但由于网络原因,部分用户
    发表于 11-04 10:21 11次下载
    <b class='flag-5'>嵌入式</b>系统设计(二): <b class='flag-5'>虚拟机</b>和主机之间共享文件夹

    嵌入式虚拟化保护传统投资

      总之,被称为嵌入式虚拟机管理程序的虚拟化技术基于实时分离内核,可以帮助嵌入式开发人员将他们的传统嵌入
    的头像 发表于 06-28 15:05 814次阅读

    openEuler开源新项目,嵌入式实时虚拟机ZVM介绍

    嵌入式实时虚拟机ZVM(Zephyr-based Virtual Machine)是由湖南大学嵌入式与网络计算湖南省重点实验室(以下简称“湖
    的头像 发表于 04-11 14:52 1687次阅读