多虚拟机同时运行的方法、装置及电子设备制造方法及图纸

技术编号:16330686 阅读:69 留言:0更新日期:2017-09-29 21:56
本申请提供了一种多虚拟机同时运行的方法、装置及电子设备,方法包括:在Qemu中,发起运行第二操作系统的请求;在KVM模块中,触发异常到当前运行的第一操作系统的Hypervisor;在所述第一操作系统的Hypervisor中保存第一操作系统的Hypervisor的上下文并加载所述第二操作系统的Hypervisor的上下文;在所述第二操作系统的Hypervisor中保存第一操作系统的上下文并加载第二操作系统的上下文。采用本申请所提供的方案,可以实现多个虚拟机同时运行并保证各自的功能独立运行。

【技术实现步骤摘要】
【国外来华专利技术】多虚拟机同时运行的方法、装置及电子设备
本申请涉及虚拟化
,特别涉及一种多虚拟机同时运行的方法、装置及电子设备。
技术介绍
KVM(KernelVirtualMachine)技术是一个开源的虚拟化解决方案,图1示出了现有技术中基于KVM技术的虚拟化方案架构示意图,如图所示,通常由一个主机(Host)操作系统和若干个虚拟出来的客户机(Guest)操作系统组成,这些操作系统运行在同一套硬件处理器芯片上,共享处理器以及外设资源。支持虚拟化架构的ARM处理器至少包含EL(ExceptionLevel)2、EL1、EL0三种模式,EL2模式下运行Hypervisor程序,EL1模式下运行Linuxkernel程序,EL0模式下运行用户空间程序(Usermode的Application)。Hypervisor层管理CPU、内存、定时器,中断等硬件资源,通过CPU、内存、定时器、中断的虚拟化资源,可以把不同的操作系统分时加载到物理处理器上运行,从而实现系统虚拟化的功能。现有技术的不足在于:虚拟化方案在Hypervisor层只能执行一个平台PlatformHypervisor,无法执行第三方Hypervisor软件。
技术实现思路
本申请实施例的一个目的在于解决现有技术中虚拟化方案在Hypervisor层只能执行一个平台PlatformHypervisor,无法执行第三方Hypervisor软件这一技术问题。第一个方面,本申请实施例提供了一种多虚拟机同时运行的方法,包括:在Qemu中,发起运行第二操作系统的请求;在KVM模块中,触发异常到当前运行的第一操作系统的Hypervisor;在所述第一操作系统的Hypervisor中保存第一操作系统的Hypervisor的上下文并加载所述第二操作系统的Hypervisor的上下文;在所述第二操作系统的Hypervisor中保存第一操作系统的上下文并加载第二操作系统的上下文。第二个方面,本申请实施例提供了一种多虚拟机同时运行的装置,包括:接收模块,用于在Qemu中,发起运行第二操作系统的请求;虚拟机切换模块,用于在KVM模块中,触发异常到当前运行的第一操作系统的Hypervisor;第一切换接口模块,用于在所述第一操作系统的Hypervisor中保存第一操作系统的Hypervisor的上下文并加载所述第二操作系统的Hypervisor的上下文;第二切换接口模块,用于在所述第二操作系统的Hypervisor中保存第一操作系统的上下文并加载第二操作系统的上下文。第三个方面,本申请实施例提供了一种电子设备,包括:存储器、一个或多个处理器、以及一个或多个模块;所述一个或多个模块被存储于所述存储器中,并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括用于执行如上所述方法中各个步骤的指令。第四个方面,本申请实施例提供了一种与电子设备结合使用的计算机程序产品,所述计算机程序产品包括内嵌于计算机可读的存储介质中的计算机程序,所述计算机程序包括用于使所述电子设备执行如上所述方法中各个步骤的指令。有益效果如下:本申请实施例在Qemu中发起运行第二操作系统的请求后可以在KVM模块中触发异常到当前运行的第一操作系统的Hypervisor,再在所述第一Hypervisor中保存第一操作系统的Hypervisor的上下文并加载所述第二操作系统的Hypervisor的上下文,并在所述第二操作系统的Hypervisor中保存第一操作系统的上下文并加载第二操作系统的上下文,实现Hypervisor及其虚拟操作系统的上下文管理,从而实现了虚拟机的动态切换运行,即使在硬件只支持一个虚拟化扩展的情况下,也可以让多个虚拟机同时运行并保证各自的功能独立运行。附图说明下面将参照附图描述本申请的具体实施例,其中:图1示出了现有技术中基于KVM技术的虚拟化架构示意图;图2示出了本申请实施例一中多虚拟机同时运行的方法实施的流程示意图;图3示出了本申请实施例二中多虚拟机同时运行的装置的结构示意图;图4示出了本申请实施例三中电子设备的结构示意图;图5示出了本申请实施例五中虚拟化架构示意图;图6示出了本申请实施例五中多虚拟机同时运行的框架示意图;图7示出了本申请实施例五中多虚拟机同时运行的流程示意图;图8示出了本申请实施例六中多核处理器的虚拟化架构示意图。具体实施方式为了使本申请的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。专利技术人在专利技术过程中注意到:现有技术中,KVM/Hypervisormodule跨越HostLinuxkernel和Hypervisor两层,一方面为Qemu提供接口节点,允许Qemu通过KVM节点创建虚拟CPU,管理虚拟化资源;另一方面KVM/Hypervisor实现了把HostLinux系统从物理CPU上切换出去,然后把GuestLinux系统加载到物理处理器上运行,最后处理GuestLinux系统异常退出的后续事务。Qemu作为HostLinux的一个应用运行,为GuestLinux的运行提供虚拟的硬件设备资源,通过KVM/Hypervisormodule的设备KVM节点,创建虚拟CPU,分配物理硬件资源,实现把一个未经修改的GuestLinux加载到物理硬件处理器上去运行。通过上面的描述,要想在一个硬件平台上实现虚拟化,在Hypervisor层要实现一个非常关键的功能是,对当前运行在物理硬件上的操作系统的运行上下文进行现场保护,然后把另外一个操作系统的运行上下文恢复到物理硬件上并开始执行代码,从而实现操作系统的动态切换运行。如果一个硬件平台在Hypervisor层已实现了比较复杂的逻辑功能,而且不支持虚拟化功能,在这样的平台上想运行虚拟化软件,将会遇到非常大的困难。现有的手机平台软件,已经运行了非常复杂的逻辑,已有软件已占据了所有Hypervisor层的物理硬件资源,比如stage2MMU页表,异常向量表,这样的话,第三方Hypervisor软件没有任何权限和机会在Hypervisor层去执行。针对现有技术的不足,本申请实施例提出了一种多虚拟机同时运行的方法、装置及电子设备,实现了在硬件只支持一个虚拟化扩展的情况下,可以让多个虚拟机同时运行,并保证各自的功能独立运行。下面进行详细说明。实施例一、图2示出了本申请实施例一中多虚拟机同时运行的方法实施的流程示意图,如图所示,所述多虚拟机同时运行的方法可以包括如下步骤:步骤201、在Qemu中,发起运行第二操作系统的请求;步骤202、在KVM模块中,触发异常到当前运行的第一操作系统的Hypervisor;步骤203、在所述第一操作系统的Hypervisor中保存第一操作系统的Hypervisor的上下文并加载所述第二操作系统的Hypervisor的上下文;步骤204、在所述第二操作系统的Hypervisor中保存第一操作系统的上下文并加载第二操作系统的上下文。具体实施时,Qemu可以作为第一操作系统的一个进程,在Qemu启动后,可以发起运行第二操作系统的请求,本申请本文档来自技高网...
多虚拟机同时运行的方法、装置及电子设备

【技术保护点】
一种多虚拟机同时运行的方法,其特征在于,包括:在Qemu中,发起运行第二操作系统的请求;在KVM模块中,触发异常到当前运行的第一操作系统的Hypervisor;在所述第一操作系统的Hypervisor中保存第一操作系统的Hypervisor的上下文并加载所述第二操作系统的Hypervisor的上下文;在所述第二操作系统的Hypervisor中保存第一操作系统的上下文并加载第二操作系统的上下文。

【技术特征摘要】
【国外来华专利技术】1.一种多虚拟机同时运行的方法,其特征在于,包括:在Qemu中,发起运行第二操作系统的请求;在KVM模块中,触发异常到当前运行的第一操作系统的Hypervisor;在所述第一操作系统的Hypervisor中保存第一操作系统的Hypervisor的上下文并加载所述第二操作系统的Hypervisor的上下文;在所述第二操作系统的Hypervisor中保存第一操作系统的上下文并加载第二操作系统的上下文。2.如权利要求1所述的方法,其特征在于,进一步包括:在Qemu中监测到第二操作系统运行结束时,在所述第二操作系统的Hypervisor中保存第二操作系统的上下文并加载第一操作系统的上下文;在KVM模块中,触发异常到第二操作系统的Hypervisor;在所述第二操作系统的Hypervisor中保存所述第二操作系统的Hypervisor的上下文并加载第一操作系统的Hypervisor的上下文。3.如权利要求1所述的方法,其特征在于,所述在所述第一操作系统的Hypervisor中保存第一操作系统的Hypervisor的上下文并加载第二操作系统的Hypervisor的上下文,具体为:在所述第一操作系统的Hypervisor中回调KVM模块,在KVM模块中保存第一操作系统的Hypervisor的上下文并加载第二操作系统的Hypervisor的上下文。4.如权利要求1所述的方法,其特征在于,所述第一操作系统为主机Host操作系统,所述第一操作系统的Hypervisor为平台Hypervisor,所述第二操作系统为客户机Guest操作系统,所述第二操作系统的Hypervisor为第三方Hypervisor。5.如权利要求1所述的方法,其特征在于,所述第一操作系统的内核为HostLinuxkernel,所述第二操作系统的内核为GuestLinuxkernel。6.一种多虚拟机同时运行的装置,其特征在于,包括:接收模块,用于在Qemu中,发起运行第二操作系统的请求;虚拟机切换模块,用于在KVM模块中,触发异常到当前运行的第一操作系统的Hypervisor;第一切换接口模块,用于在所述第一操作系统...

【专利技术属性】
技术研发人员:温燕飞王永辉
申请(专利权)人:深圳前海达闼云端智能科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1