一种系统预引导阶段硬件辅助CPU虚拟化环境建立的方法技术方案

技术编号:7458889 阅读:261 留言:0更新日期:2012-06-24 03:09
本发明专利技术涉及一种系统预引导阶段硬件辅助CPU虚拟化环境建立的方法,其方法是对移动U盘进行初始化,设置相关的引导扇区以及后续硬件辅助CPU虚拟环境建立的相关信息,设计并实现系统预引导阶段硬件辅助CPU虚拟环境的建立。按照系统预启动运行环境对该方法进行测试,将引导扇区放在移动U盘的第一扇区位置,硬件辅助CPU虚拟环境建立的相关代码放在硬盘的第二扇区及其后续位置,系统加电启动后BIOS执行系统初始化后将引导扇区代码调入内存运行,由引导扇区代码调入硬件辅助CPU虚拟环境建立代码,建立预引导阶段的硬件辅助CPU虚拟环境。

【技术实现步骤摘要】

本专利技术涉及建立预引导阶段虚拟环境,特别是涉及一种系统预引导阶段硬件辅助 CPU虚拟化环境建立的方法。
技术介绍
目前主流的虚拟化技术主要有全虚拟化技术(Full Virtualization),泛虚拟化技术(Para Virtualization)和硬件辅助虚拟化技术(Hardware Assisted Virtualization)。前两种在没有硬件扩展情况下就可以支持多操作系统的运行,但是性能比较差,特别是对于I/O访问频繁的应用;硬件辅助虚拟化技术属于一种虚拟化硬件加速技术,它的主要目标有两个一是减少虚拟化系统开发设计代价,如简化VMM (Virtual Machine Monitor)软件设计,提供对客户操作系统,驱动程序的更好兼容性等方面;另外, 就是减小由于系统虚拟化所带来的额外开销问题。采用硬件辅助的虚拟化技术,可以使得客户操作系统无需修改就可以直接在虚拟机监视器VMM软件上执行,同时也不需要采用类似二进制翻译等技术,因而虚拟化开销较小。目前主流的芯片提供商都在自己最新的CPU上增加了硬件辅助虚拟化技术,从硬件的角度对虚拟化进行扩展支持,如Intel的VT,AMD的AMD-V,IBM的Power5,6以及SUN的 OpenSparc T2都包含硬件辅助虚拟化技术。尽管技术的名称存在不同,但是其基本原理,实现方法基本一致。本专利技术是以Intel的CPU虚拟化技术为例进行的。下面对Intel的CPU 虚拟化技术进行简单介绍。如图1所示,过去只有大型主机系统才支持虚拟化技术,通用处理器是不支持虚拟化的。为使得通用的处理器也支持虚拟化,Intel的虚拟化技术在其IA-32体系的CPU指令集中增加了对虚拟支持的指令VMX(Virtual Machine Extensions 虚拟机扩充)。由于这些指令是在硬件层实现的,使得虚拟控制过程变得更快更简单。在这种虚拟环境下,增加了两种新的操作模式VMX根操作模式以及VMX非根操作模式。控制虚拟环境的软件VMM运行在根操作模式下,用于处理特殊指令;而VM(Virtual Machine:虚拟机)则运行在非根操作模式。当在非根操作模式VM执行到特殊指令的时候, 系统会切换到运行于根操作模式的VMM,让VMM来处理这个特殊指令。除此之外,Intel VT VMX 操作新定义了 VMCS(Virtual Machine Control Structure 虚拟机控制结构),如图2所示。该结构中包含了处理器重要信息的区域,一个是主机状态区域,另一个是客户机状态区域。VMM对硬件虚拟CPU的管理通过VMCS实现。 VMX非根操作模式与根模式之间的状态变迁由VMCS管理。当虚拟机进入时(处理器控制从 VMX根状态进入VMX非根状态),处理器状态被保存在VMCS的主机状态区域中,同时客户机状态从VMCS中装入。相反,当虚拟机退出时(从VMX非根状态进入VMX根状态),客户机状态被保存在VMCS的客户机状态区域中,而主机状态则从VMCS的主机状态区域装入。某些特定的指令、事件或状态会导致虚拟机退出到VMM,但客户机软件本身并不知道自己是否运行在虚拟机上。
技术实现思路
本专利技术在于避免以上现有技术的不足提供一种系统预引导阶段硬件辅助CPU虚拟化环境建立的方法。本专利技术的技术方案如下一种系统预引导阶段硬件辅助CPU虚拟环境建立的方法,该方法包括以下步骤1)通过操作系统下的安装单元对移动U盘进行初始化,设置相关的引导扇区信息,建立硬件辅助CPU虚拟环境;2)操作系统对BIOS进行相关设置,将移动U盘设置为BIOS系统启动的第一引导设备;3)操作系统加电启动,BIOS完成系统自检后将移动U盘的引导扇区调入内存执行,由移动U盘的引导扇区调入所述硬件辅助CPU虚拟环境,建立操作系统启动前预引导阶段的硬件辅助CPU虚拟环境。进一步,所述的对移动U盘进行初始化的具体做法为将引导扇区代码放在移动 U盘的第一扇区位置,将建立硬件辅助CPU虚拟环境的相关信息代码,且将此相关信息代码放在移动U盘的第二扇区及其后续位置。进一步,所述的建立硬件辅助CPU虚拟环境的相关信息代码包括虚拟机监视器 VMM与虚拟机VM之间的控制权的转移。进一步,所述的VM到VMM控制权的转移包括如下步骤DCPU执行VM中正常的指令,直至最后执行HLT指令的前一条指令;2) VM代码中的HLT指令,产生一个通用保护错误处理的中断服务事件;3) CPU执行通用保护错误处理中断服务程序,直到遇到VMX的指令vmcall ;4) vmcall指令产生VM退出事件,将CPU控制权转交给VMM。进一步,所述的VMM到VM控制权的转移包括如下步骤1) CPU执行主控任务中的指令,进入IA32-E模式,将系统控制权交给VMM ;2) CPU执行VMM中的指令,主要的任务有设置A20模式、根据MSR基地址,读取VMX 能力MSR、初始化VMM以及VM的VMCS区域、调用vmxon指令进入VMM根操作模式、清除VM 的VMCS区域、装载VM的VMCS区域为当前的VM、为当前的VM的VMCS进行初始化配置、调用 VMX的vmlaunch指令将控制权转给VM ;3) CPU执行VM中的指令,将控制权转交给VMM ;4) VMM从步骤3)的下一条指令继续执行,其中包括从当前VMCS中获取信息,调用 vmxoff指令退出根操作模式;5) VMM将控制权交给主控任务,主控任务从步骤1)的下一条指令继续执行,离开 IA32-E 模式;6)主控任务将CPU控制权交给系统原有的系统装载器,继续系统的启动过程。本专利技术相比现有技术具有如下优点1.在系统预引导阶段由移动U盘建立硬件辅助CPU虚拟环境,由于此时操作系统尚未启动,具有与具体的操作系统无关的特征。2.由移动U盘作为介质建立硬件辅助CPU虚拟环境,不论成功与否,都不影响目标系统原来的执行流程,从而不会对原有的系统造成影响。附图说明图1.是Intel VT技术中VMX根操作模式与非根操作模式的进入与退出示意图。图2.是Intel VT技术中VMCS,VM以及VMM之间的关系示意图。图3.是本专利技术存放在移动U盘上代码之间位置关系以及执行次序的示意图。图4.是本专利技术所示VM到VMM控制权的转移流程图。图5.是本专利技术所示VMM到VM控制权的转移流程图。具体实施例方式本专利技术一种系统预引导阶段硬件辅助CPU虚拟化环境建立的方法实施步骤通过以下方式实现第一步,通过操作系统下的相关工具,比如Linux下的dd命令或Windows下的 dskprobe工具对移动U盘进行初始化,设置相关的引导扇区信息以及主控代码、VMM代码、 VM代码。将主控代码、VMM代码、VM代码放在移动U盘的第二及其后续扇区位置,具体所占扇区个数由代码大小决定。第二步,设置BIOS (Basic Input Output System)对 Intel VT 的支持,设置 BIOS 中系统引导盘的的次序,使得移动U盘成为系统引导的第一设备。第三步,系统启动,BIOS系统运行完后,由INT 19H中断调度移动U盘的引导扇区执行,该引导扇区代码将存放在移动U盘的第二以及后续扇区的主控代码、VMM代码、VM代码调度执行,建立硬件辅助CPU虚拟化环境。本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:彭双和
申请(专利权)人:北京交通大学
类型:发明
国别省市:

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

1
相关领域技术