Xen的敏感指令陷入-《Xen虚拟化技术》学习

本文介绍了Xen虚拟化技术如何处理x86架构中的敏感指令问题,这些指令在非最高特权级执行时需由VMM捕获。Xen通过软件方法解决x86的虚拟化缺陷,确保虚拟机的等价性和资源控制。文章列举了包括SGDT、SIDT、SLDT、SMSW等在内的敏感指令,并解释了它们在虚拟环境中的影响及VMM如何进行干预。
摘要由CSDN通过智能技术生成

Xen虚拟机系统所采用的半虚拟化技术通过软件方法实现了x86架构的虚拟化,解决了x86架构所固有的虚拟化缺陷,即敏感和特权指令无法被VMM所捕获的缺陷。

G.Popek和R.Goldberg在1974年发表的论文中提到,作为向上层VM提供底层硬件抽象的一层轻量级的软件,VMM必须满足以下3个条件:

1.等价性(Equivalence) :应用程序在VMM 上的虚拟机执行,应与物理硬件上的执行行为相同。

2.资源控制(Resource Control) :物理硬件由VMM全权控,VM 及VM上的应用程序不得直接访问硬件。

3.有效性(Efficiency) :在虚拟执行环境中应用程序的绝大多数指令能够在VMM不干预的情况下,直接在物理硬件上执行。


CPU的指令按照运行级别的不同,可以划分为两类:

1.特权指令 :只能在最高级别上运行,在低级别状态下执行会产生trap。例如:LIDT只能在系统模式下执行,在其他模式下都会产生trap,中止执行。

2.非特权指令 :可以在各个级别的状态下执行。


引入虚拟化后,Guest OS就不能运行在Ring 0上。因此,原本需要在最高级别下执行的指令就不能够直接执行,而是交由VMM处理执行。这部分指令称为敏感指令 。当执行这些指令时,理论上都要产生trap被VMM捕获执行。敏感指令:Guest OS中必须由VMM处理的指令,因为这些指令必须工作在0环 

敏感指令包括:

1.企图访问或修改虚拟机模式或机器状态的指令。

2.企图访问或修改敏感寄存器或存储单元,如时钟寄存器、中断寄存器等的指令。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值