计算机研究与发展 ›› 2014, Vol. 51 ›› Issue (10): 2348-2359.doi: 10.7544/issn1000-1239.2014.20130612
• 软件技术 • 上一篇
熊海泉1,2,刘志勇1,徐卫志3,唐士斌1,2,范东睿1
Xiong Haiquan1,2, Liu Zhiyong1, Xu Weizhi3, Tang Shibin1,2, Fan Dongrui1
摘要: 针对虚拟化环境下Guest OS某些特定指令行为不会产生陷入从而在虚拟机管理器(virtual machine monitor, VMM)中无法对其进行监控处理的问题,提出通过改变非陷入指令正常运行条件,使其执行非法产生系统异常陷入VMM的思想;据此就x86架构下Guest OS中3种非陷入系统调用指令在VMM中的截获与识别进行研究:其中基于int和sysenter指令的系统调用通过使其产生通用保护(general protection, GP)错系统异常而陷入,基于syscall指令的系统调用则通过使其产生UD(undefined)未定义指令系统异常而陷入,之后VMM依据虚拟处理器上下文现场信息对其进行识别;基于Qemu&Kvm实现的原型系统表明:上述方法能成功截获并识别出Guest OS中所有3种系统调用行为,正常情况下其性能开销也在可接受的范围之内,如在unixbench的shell测试用例中,其性能开销比在1.900~2.608之间.与现有方法相比,它们都是以体系结构自身规范为基础,因此具有无需修改Guest OS、跨平台透明的优势.
中图分类号: