一种在虚拟机中执行指令的方法和一种虚拟机监视器技术

技术编号:37794901 阅读:5 留言:0更新日期:2023-06-09 09:25
说明书实施例提供了一种在虚拟机中执行指令的方法,该方法包括:截获运行于宿主机用户态的虚拟机内核、或虚拟机中的第一用户进程执行第一指令触发的第一异常,并将第一异常发送到运行于宿主机内核态的虚拟机监视器;虚拟机监视器根据第一异常的触发源,处理第一异常,其中,若第一指令的执行者为虚拟机内核,虚拟机监视器从第一异常的异常信息中,获取第一指令的执行上下文;以及,根据第一指令的执行上下文,模拟第一指令的执行,得到第一执行结果,并将第一执行结果发送给虚拟机内核。并将第一执行结果发送给虚拟机内核。并将第一执行结果发送给虚拟机内核。

【技术实现步骤摘要】
一种在虚拟机中执行指令的方法和一种虚拟机监视器


[0001]本说明书一个或多个实施例涉及虚拟机领域,尤其涉及一种在虚拟机中执行指令的方法和一种虚拟机监视器。

技术介绍

[0002]近年来,随着云计算技术的普及,作为其核心技术基石的虚拟化技术得到了越来越多的重视。在实际的生产环境中,出于成本考虑,应用服务提供商常常购买/租用例如公有云云主机用作业务运行环境。目前,云提供商常常通过虚拟机方案提供云主机,并且其虚拟机方案通常基于硬件辅助技术。如果要在云主机中运行虚拟机,需要硬件支持嵌套辅助虚拟化特性,并在虚拟机运行时打开硬件的嵌套辅助虚拟化特性。
[0003]但是,在一些场景下,出于性能和安全性考虑,云提供商希望关闭硬件的嵌套辅助虚拟化特性。在此情况下,依赖硬件辅助技术难以提供对于在云主机中运行虚拟机的支持。

技术实现思路

[0004]本说明书中的实施例旨在提供一种在虚拟机中执行指令的方法,利用该方法可以仅通过软件形式的虚拟机监视器接收和处理由虚拟机用户进程或虚拟机内核引起的异常,由虚拟机监视器接收和转发由虚拟机用户进程或虚拟机内核执行的系统调用指令,由虚拟机内核处理通常由虚拟机用户进程发起的系统调用指令,而无需虚拟化硬件辅助技术的支持。从而,提供了一种新的虚拟化方案,克服了依赖硬件辅助技术的虚拟化方案存在的例如不支持热升级方式、以及消耗大量计算资源的问题。
[0005]根据第一方面,提供一种在虚拟机中执行指令的方法,包括:
[0006]截获运行于宿主机用户态的虚拟机内核、或虚拟机中的第一用户进程执行第一指令触发的第一异常,并将所述第一异常发送到运行于宿主机内核态的虚拟机监视器;
[0007]所述虚拟机监视器根据所述第一异常的触发源,处理所述第一异常,其中,若所述第一异常的触发源为所述虚拟机内核,所述虚拟机监视器从所述第一异常的异常信息中,获取所述第一指令的执行上下文;以及,根据所述第一指令的执行上下文,模拟第一指令的执行,得到第一执行结果,并将所述第一执行结果发送给所述虚拟机内核。
[0008]在一种可能的实施方式中,所述方法还包括:
[0009]若所述第一异常的触发源为所述第一用户进程,所述虚拟机监视器将所述第一异常转发给所述虚拟机内核。
[0010]在一种可能的实施方式中,所述第一指令为内核态特权指令。
[0011]在一种可能的实施方式中,根据所述第一指令的执行上下文,模拟第一指令的执行,得到第一执行结果,包括:
[0012]将所述第一指令的执行上下文,发送给运行于宿主机内核态的宿主机内核,并从宿主机内核得到所述第一执行结果。
[0013]在一种可能的实施方式中,所述方法还包括:
[0014]截获虚拟机中的第二用户进程调用宿主机内核的系统调用指令,并将所述系统调用指令发送到所述虚拟机监视器;
[0015]所述虚拟机监视器将系统调用指令转发给所述虚拟机内核,并接收所述虚拟机内核返回的针对所述系统调用指令的第二执行结果,并将所述第二执行结果返回给所述用户进程。
[0016]在一种可能的实施方式中,所述方法还包括:
[0017]响应于所述虚拟机内核执行的指向虚拟机监视器的超级调用指令,将所述超级调用指令发送到虚拟机监视器,所述超级调用指令用于指示第二指令;
[0018]虚拟机监视器模拟所述第二指令的执行,得到第三执行结果,并将所述第三执行结果返回给所述虚拟机内核。
[0019]在一种可能的实施方式中,所述虚拟机监视器模拟所述第二指令的执行,得到第三执行结果,包括:
[0020]所述虚拟机监视器将第二指令发送给运行于宿主机内核态的宿主机内核,并从宿主机内核得到第三执行结果。
[0021]在一种可能的实施方式中,所述第二指令包括,敏感非特权指令。
[0022]在一种可能的实施方式中,所述敏感非特权指令包括标志传送指令POPF。
[0023]在一种可能的实施方式中,所述第二指令包括:敏感非特权指令以外的其它指令。
[0024]在一种可能的实施方式中,所述其它指令包括:系统寄存器写入指令WRMSR、或系统寄存器读取指令RDMSR中的一种。
[0025]根据第二方面,提供一种虚拟机监视器,包括:
[0026]接收单元,配置为,接收运行于宿主机用户态的虚拟机内核、或虚拟机中的第一用户进程执行第一指令触发的第一异常;
[0027]处理单元,配置为,所述虚拟机监视器根据所述第一异常的触发源,处理所述第一异常,其中,若所述第一异常的触发源为所述虚拟机内核,所述虚拟机监视器从所述第一异常的异常信息中,获取所述第一指令的执行上下文;以及,根据所述第一指令的执行上下文,模拟第一指令的执行,得到第一执行结果,并将所述第一执行结果发送给所述虚拟机内核。
[0028]在一种可能的实施方式中,所述接收单元,进一步配置为,接收虚拟机中的第二用户进程调用宿主机内核的系统调用指令;
[0029]所述处理单元,进一步配置为,将所述系统调用指令转发给所述虚拟机内核,并接收所述虚拟机内核返回的针对所述系统调用指令的第二执行结果,以及将所述第二执行结果返回给所述用户进程。
[0030]在一种可能的实施方式中,所述接收单元,进一步配置为,接收所述虚拟机内核执行的指向虚拟机监视器的超级调用指令,所述超级调用指令用于指示第二指令;
[0031]所述处理单元,进一步配置为,模拟所述第二指令的执行,得到第三执行结果,并第三执行结果返回给所述虚拟机内核。
[0032]在一种可能的实施方式中,所述第二指令包括,敏感非特权指令。
[0033]根据第三方面,提供一种虚拟机系统,其中包括有第二方面所述的虚拟机监视器。
[0034]根据第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,当所述计
算机程序在计算机中执行时,令计算机执行权利要求第一方面所述的方法。
[0035]根据第五方面,提供一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所述的方法。
[0036]利用以上各个方面中的方法、虚拟机监视器、系统、设备和介质中的一个或多个,可以通过软件形式的虚拟机监视器接收、转发或处理由虚拟机用户进程或虚拟机内核执行的系统调用指令或引起的异常,由虚拟机内核处理通常由虚拟机用户进程发起的系统调用指令。从而,提供了一种新的无需虚拟化硬件辅助技术支持的虚拟化方案,克服了依赖硬件辅助技术的虚拟化方案存在的例如不支持热升级方式、以及消耗大量计算资源的问题。
附图说明
[0037]为了更清楚说明本专利技术实施例的技术方案,下面将对实施例描述中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038]图1示出根据本说明书实施例的一种本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在虚拟机中执行指令的方法,包括:截获运行于宿主机用户态的虚拟机内核、或虚拟机中的第一用户进程执行第一指令触发的第一异常,并将所述第一异常发送到运行于宿主机内核态的虚拟机监视器;所述虚拟机监视器根据所述第一异常的触发源,处理所述第一异常,其中,若所述第一异常的触发源为所述虚拟机内核,所述虚拟机监视器从所述第一异常的异常信息中,获取所述第一指令的执行上下文,以及,根据所述第一指令的执行上下文,模拟第一指令的执行,得到第一执行结果,并将所述第一执行结果发送给所述虚拟机内核。2.根据权利要求1所述的方法,还包括:若所述第一异常的触发源为所述第一用户进程,所述虚拟机监视器将所述第一异常转发给所述虚拟机内核。3.根据权利要求1或2所述的方法,其中,所述第一指令为内核态特权指令。4.根据权利要求1所述的方法,其中,根据所述第一指令的执行上下文,模拟第一指令的执行,得到第一执行结果,包括:将所述第一指令的执行上下文,发送给运行于宿主机内核态的宿主机内核,并从宿主机内核得到所述第一执行结果。5.根据权利要求1所述的方法,还包括:截获虚拟机中的第二用户进程调用宿主机内核的系统调用指令,并将所述系统调用指令发送到所述虚拟机监视器;所述虚拟机监视器将系统调用指令转发给所述虚拟机内核,并接收所述虚拟机内核返回的针对所述系统调用指令的第二执行结果,并将所述第二执行结果返回给所述用户进程。6.根据权利要求1所述的方法,还包括:响应于所述虚拟机内核执行的指向虚拟机监视器的超级调用指令,将所述超级调用指令发送到虚拟机监视器,所述超级调用指令用于指示第二指令;虚拟机监视器模拟所述第二指令的执行,得到第三执行结果,并将所述第三执行结果返回给所述虚拟机内核。7.根据权利要求6所述的方法,其中,所述虚拟机监视器模拟所述第二指令的执行,得到第三执行结果,包括:所述虚拟机监视器将第二指令发送给运行于宿主机内核态的宿主机内核,并从宿主机内核得到第三执行结果。8.根据权利要求7所述的方法,其中,所述第二指令包括,敏感非特权指令。9.根据权利要求8所述的方法,其中,所述敏感非特权指令包...

【专利技术属性】
技术研发人员:赖江山王旭侯文龙马介悦
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

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

1