CN101076781A - 对虚拟机监控程序的组件解除特权的系统和方法 - Google Patents
对虚拟机监控程序的组件解除特权的系统和方法 Download PDFInfo
- Publication number
- CN101076781A CN101076781A CNA2005800424417A CN200580042441A CN101076781A CN 101076781 A CN101076781 A CN 101076781A CN A2005800424417 A CNA2005800424417 A CN A2005800424417A CN 200580042441 A CN200580042441 A CN 200580042441A CN 101076781 A CN101076781 A CN 101076781A
- Authority
- CN
- China
- Prior art keywords
- hypervisor
- little
- svm
- privilege level
- platform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
在某些实施例中,本发明涉及一种对虚拟机监控程序的组件解除特权并允许解除特权的服务虚拟机(SVM)处理所选择的俘获的事件的系统。本发明的一个实施例是一种在带有硬件虚拟化支持的平台上操作的混合VMM。该混合VMM利用来自基于超级管理程序和基于主机的VMM体系结构的特征。在至少一个实施例中,传统VMM的功能被划分成称为微超级管理程序(MH)的平台相关部分,以及一个或多个被称为服务虚拟机(SVM)的平台无关部分。该微超级管理程序在比任何SVM高的虚拟机(VM)特权级别上运行,而该SVM和其他VM仍然可以拥有对任何指令集体系结构(ISA)特权级别的访问。描述并要求保护了其他实施例。
Description
发明领域
本发明的一个实施例一般涉及虚拟化平台有关,尤其涉及在降低的特权级别上运行虚拟机监控程序的组件的系统和方法。
背景信息
存在用于管理虚拟化平台中的虚拟机的各种机制。一种管理技术是在系统上部署虚拟机监控程序(VMM)。有两种用于虚拟机监控程序的常见体系结构。第一种是超级管理程序(hypervisor)体系结构,其中有特权的超级管理程序(虚拟机监控程序)控制系统中的所有其他软件。超级管理程序必须包含其希望为运行在虚拟机VM(此处称为客机VM)中的软件提供的用于所有设备的本机驱动程序和模型。这种必要性已经是这一VMM体系结构的问题。在超级管理程序体系结构中,VMM拥有对底层平台的完全控制,并且可以限制客机VM对平台硬件的访问。超级管理程序可以访问所有硬件。只有在超级管理程序允许时,客机VM才可以直接访问硬件。超级管理程序系统可以阻止客机VM直接访问硬件,如果被设计为这样做的话。当实现超级管理程序时,用于每一物理设备的设备驱动程序也必须被实现。如果物理设备改变(例如,由该设备的不同版本所替代),则必须在超级管理程序中存在新的或替代的设备驱动程序。通常,所有操作系统都运行在VM中。VM可以用不同的方式被授予特权。例如,VM1可以访问设备#1,而VM2可以访问设备#2。
第二种用于VMM的常见体系结构是主存的VMM。在这种体系结构中,VMM被密切地约束到主存操作系统(OS)并使用由该主存OS提供的服务来执行其虚拟化功能。在这种体系结构中,主存操作系统拥有对平台的完全控制;VMM组件拥有对平台的客机VM的控制。换言之,VMM组件不直接控制底层硬件。VMM使用由主存OS提供的服务来访问底层硬件。VMM的稳定性只有主存OS的稳定性那样好。主存OS包含所有必需的设备驱动程序。VMM必须实现用于被呈现给客机VM的所有设备的模型。由于依赖特定的主存OS,以这一高级体系结构实现的VMM遭受可移植性约束。另外,还存在对主存OS的依赖性来执行调度。VMM控制客机VM的调度,但是它不控制主存OS给予它多少时间。例如,不可能请求主存OS在每一毫秒唤醒VMM。
目前存在某些虚拟化产品。例如,基于超级管理程序的体系结构ESX Server可以从VMware公司获得。Microsoft和VMware公司都提供基于主机的体系结构软件:微软公司提供VirtualPC和VirtualServer,而VMware,公司提供VMWorkstation和GSX Server。当前,这些软件系统可以被载入到没有硬件虚拟化支持的服务器或个人计算机(PC)上。
附图简述
从以下本发明的详细描述中可以清楚本发明的特征和优点,其中:
图1是示出传统的超级管理程序虚拟机监控程序(VMM)体系结构平台的框图;
图2A-B示出了根据本发明的一个实施例的IA-32体系结构平台和带有硬件虚拟化支持的平台中的各种特权级别;
图3是示出根据本发明的一个实施例的混合体系结构VMM的框图;
图4是示出根据本发明的一个实施例的用于服务带有解除特权的访问的服务虚拟机器以处理输入/输出(I/O)操作的示例性方法的流程图;以及
图5是示出根据本发明的一个实施例的由微超级管理程序执行的示例性方法的流程图。
详细描述
本发明的一个实施例是一种涉及对虚拟机监控程序的组件解除特权(deprivilege)并允许解除特权的服务虚拟机(SVM)提供所选择的功能的系统和方法。本发明的一个实施例提供一种装置,通过该装置虚拟机监控程序(VMM)可以被构造成具有较高的可移植性和可靠性。本发明的一个实施例是一种混合VMM,它使用来自基于超级管理程序的和基于主机的VMM体系结构的特点。在至少一个实施例中,传统VMM的功能可被划分成称为微超级管理程序(MH)的小型平台相关部分,以及一个或多个被称为服务虚拟机(SVM)的平台无关部分。这种混合VMM体系结构提供在开发、确认、安全性、可靠性和可用性方面超过现有VMM软件体系结构的好处。
在说明书中对本发明的“一个实施例”或“一实施例”的引用指的是结合该实施例所描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,出现在说明书中不同地方的短语“在一个实施例中”并不一定都是指同一个实施例。
出于解释的目的,阐明了具体的配置和细节,以提供对本发明的彻底理解。然而,本领域的普通技术人员显然可以看出,不需要此处所给出的具体细节就能实现本发明的诸实施例。此外,为了避免模糊本发明,众所周知的功能被省略或简化。在本描述中各处给出各种例子。这些例子只是本发明的具体实施例的描述。本发明的范围并不限于所给出的例子。
在本发明的诸实施例中,微超级管理程序是一种用来在包括SVM在内的虚拟机(VM)之间代理请求并实施隔离和安全策略的模块。微超级管理程序的设计需要固有平台知识以及对特许资源(例如,平台芯片组等)的访问。微超级管理程序以最有特权的模式运行,正如下面将参考图2A-B讨论的。微超级管理程序可以被实现为在系统引导早期被载入(类似于OS模块)、作为驱动程序或作为系统固件的一部分从主存OS启动的模块。
SVM是以解除特权模式在VM中运行的平台无关模块,如将参考图2A-B所讨论的。SVM可以被构建在现有OS和设备驱动程序或一个或多个平台无关固件模块周围。SVM可以提供服务,如设备虚拟化、对实际硬件或其他SVM的请求的代理。
图1是示出传统超级管理程序VMM体系结构平台100的框图。多个客机VM101、103、105和107可以同时运行在平台100上。虚拟机监控程序(VMM)110控制客机VM经由处理器/平台虚拟化层111对硬件120的访问。在VMM 110中可以存在多个虚拟设备模型113和115。VMM 110可以在最高的特权级别上操作,如将在下面参考图2A-B所讨论的。VMM 110控制对文件系统、存储器和所有设备的访问,如在下面进一步所讨论的。VMM 110通常拥有用于平台上的每一硬件设备的设备驱动程序119。
VMM 110和客机VM 101、103、105和107在平台硬件120上执行。平台硬件120可以包括处理器122、存储器124以及一个或多个I/O设备126和128。平台硬件120可以是个人计算机(PC)、大型机、手持式设备、便携式计算机、机顶盒或任何其他计算系统。
处理器122可以是能够执行软件的任何类型的处理器,如微处理器、数字信号处理器、微控制器等等。尽管图1只示出一个这样的处理器122,但平台硬件120中可以有一个或多个处理器,且该一个或多个处理器可以包括多个线程、多个核等等。
存储器124可以是硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存或可由处理器122读取的任何其他类型的介质。存储器124可以存储用于实现本发明的方法实施例的执行的指令。
一个或多个I/O设备126和128可以是例如系统总线(例如,外围部件互连(PCI)、工业标准体系结构(ISA)、高级图形接口(AGP))上的网络接口卡、通信端口、视频控制器、磁盘控制器;集成到芯片组逻辑或处理器中的设备(例如,实时时钟、可编程定时器、性能计数器);或平台硬件120上的任何其他设备。一个或多个I/O设备126和128可以通过I/O指令或存储器映射的I/O访问或通过本领域中已知的任何其他方法来访问。
大多数指令集体系结构(ISA),包括Inetl Pentium4的ISA(在此称为IA-32ISA),是以指令集体系结构中的特权级别的概念来设计的;这些特权级别在此被称为ISA特权级别。参见图2A和2B,示出了说明带有各种ISA特权级别的平台的框图。例如,IA-32 ISA有四个ISA特权级别,称为环级环-0 301、环-1 303、环-2 305和环-3 307。在IA-32 ISA中,环-0(301)是最有特权的ISA特权级别,而环-3(307)是最没有特权的ISA特权级别。
ISA特权级别由OS用来在用户模式和内核模式之间划分功能。在现有系统中,处理器指令集体系结构通常被设计为给予OS代码对硬件的完全控制,即,环-0模式301。ISA使得OS能够创建用于让其他软件在较低的ISA特权级别,即环-1(303),环-2(305)和环-3(307)上运行的容器。通常,在现有系统中,OS代码在最高的ISA特权级别(即环-0 301)上运行,而应用程序在最低的ISA特权级别(即环-3(307))上运行。在诸如Microsoft WindowsTM等现有OS中,设备驱动程序通常在最高de ISA特权级别上运行。在现有OS中,越来越多的代码在最高的ISA特权级别上运行。随着在最高的ISA特权级别上执行的代码的大小的增长,代码内可能的交互的复杂性和代码的确认复杂性也在增长。这一个增长可能导致由于错误软件引起更多的系统崩溃。另外,现有系统缺乏组件之间定义良好的接口,并且对任何所定义的接口的使用的实施较差。
在某些系统中已经尝试利用小型有特权的核和解除特权的服务组件的一般方法。例如,微内核OS研究(见Jochen Liedtke的“Toward Real Microkernels”(走向真实微内核),COMMUNICATIONS OF THE ACM 1996年第39卷第9期)已经尝试将类似的方案应用于对OS的各部分解除特权。微内核是OS的非常小又拥有完全有特权的部分。由于完全特权的部分使用环-0(就IA-32而言),因此OS的剩余部分必须被解除特权以允许微内核独自处在最高的ISA特权级别。必须修改OS以便在较低的ISA特权级别上进行处理。
微内核通过将操作系统的组件移入在较低的ISA特权级别上操作的容器内来分离操作系统的组件,以使得分开的容器中的组件不能相互直接影响或影响微内核的操作。某些微内核已经在现有系统中被实现,但是他们既慢又复杂,并且不是为虚拟化平台而开发的。
当一个平台具有硬件虚拟化支持时,可以引入一种将特权划分为两个特权空间的新方法。第一特权空间是ISA特权级别,如上面所述。第二特权空间在此被称为VM特权级别。在一个实施例中,有两个VM特权级别。最高的VM特权级别被称为根操作(311),而较低VM特权级别被称为非根操作(320)。在一个实施例中,VMM或微超级管理程序在根操作311中运行。客机VM在非根操作320中运行。在较高的VM特权级别上运行的软件可以控制在较低的VM特权级别上运行的软件,而不考虑在较低的VM特权级别上运行的软件的ISA特权级别。在一个实施例中,在任何VM特权级别上的软件都可以利用处理器的ISA特权级别体系结构(例如,IA-32 ISA中的环-0(301a))。然而,在较低的VM特权级别(例如,非根操作320)上运行的环-0软件仍然可以由在较高的VM特权级别(例如,根操作311)上运行的软件控制。
在一个实施例中,给定进程的VM特权级别和ISA特权级别是独立的,即VMM的组件可以在最高的VM特权级别,也可以在最低的ISA特权级别上运行。在最高的VM特权级别上但在降低的ISA特权级别(例如,IA-32 ISA中的环-3)上执行的VMM代码的性能在其直接控制或操纵在较低的VM特权级别上运行的客机软件的状态的能力方面会受到限制。这些限制可以由虚拟化体系结构施加(例如,硬件可以阻止降低的ISA特权级别代码启动新VM),或者由在最高的VM特权级别上运行的最高ISA特权级别代码来施加(例如,通过配置较低ISA特权代码的页表使之不能访问客机软件的存储器)
图3是示出根据本发明的实施例的混合体系结构VMM的框图。混合体系结构VMM使用来自基于超级管理程序和基于主机的VMM体系结构的元件。图1的VMM(110)和微超级管理程序210在最高的VM特权级别上运行,并且分别拥有对平台硬件120和220的完全控制。
该混合体系结构可以利用一个或多个服务虚拟机(SVM),如SVM 201。SVM201可以包含用户级VMM 211和设备模型213。SVM 201中的设备模型213可以与同样在SVM 201中的硬件驱动程序219交互。硬件驱动程序219在微超级管理程序210的控制下与平台硬件220通信,如将在下面所讨论的。尽管图3只示出一个这样的SVM 201,但系统200中可以有一个或多个的SVM,如将在下面所讨论的。
微超级管理程序210、服务VM 201和客机VM 203、205和207在平台硬件220上执行。平台硬件220可以包括处理器222、存储器224和一个或多个I/O设备226和228。平台硬件220可以是个人计算机(PC)、大型机、手持式设备、便携式计算机、机顶盒或任何其他计算系统。
处理器222可以是能够执行软件的任何类型的处理器,如微处理器、数字信号处理器、微控制器等等。尽管图3只示出一个这样的处理器222,但平台硬件220中可以有一个或多个处理器,且该一个或多个处理器可以包括多个线程、多个核等等。
存储器224可以是硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存或可由处理器222读取的任何其他类型的机器介质。存储器224可以存储用于实现本发明的方法实施例的执行的指令。
一个或多个I/O设备226和228可以是例如系统总线(例如,PCI、ISA、AGP上)的网络接口卡、通信端口、视频控制器、磁盘控制器;集成到芯片组逻辑或处理器中的设备(例如,实时时钟,可编程定时器、性能计数器);或平台硬件220上的任何其他设备。一个或多个I/O设备226和228可以通过I/O指令或存储器映、射的I/O访问或通过通过本领域中已知的任何其他方法来访问。
在一个实施例中,微超级管理程序210拥有对平台硬件220的完全访问和控制。在现有的基于主机和基于超级管理程序的VMM体系结构中,VMM中的设备驱动程序可以在完全特权模式中运行,并且因此,设备访问和其他服务是更高风险的操作。在该混合体系结构中,如此处所描述的,SVM 201并不在完全特权级别上运行,并且因此,服务和设备访问对平台完整性造成较低的风险。SVM 201可以提供设备驱动程序、文件系统和所有服务,但是这些特征是要在VM中以解除特权的模式执行的。SVM 201服务与在基于主机的体系结构中主机OS所服务的某些相同目的,然而是在VM中而不是直接在主机上。即使VMM的降低的VM特权级别的部分在最高的ISA特权级别(例如,IA-32 ISA中的环-0)上运行,在降低的VM特权级别上运行VMM的各部分的好处仍然存在。
在该混合体系结构的一个实施例中,没有控制系统和服务的主机OS。相反,小型微超级管理程序控制在最高的VM特权级别上运行的关键服务,且一个或多个SVM可以提供在较低的VM特权级别上运行的其他服务。例如,SVM可以提供用于硬件交互的服务。SVM可以拥有对底层硬件的有限访问。例如,SVM可以拥有只限于其所控制的硬件设备的访问。因此,硬件控制可以被分隔,以保证流氓应用程序不能对硬件设备进行未经授权的访问。
本发明的一个实施例允许现有OS无需修改就在客机VM中运行,并仍然为用户所期望的应用程序提供接口和服务。所有服务现在都可以通过调用适当的SVM来处理服务的微超级管理程序运行。在本发明的一个实施例中,这是可能的,因为较高的VM特权级别(即,图2的根操作311)在平台硬件上实现。例如,IBM370型计算机是一种支持本发明的实施例的虚拟化平台。
或者,VMM也可以允许或阻止客机VM直接访问平台的任何特定元件,包括存储器、I/O设备、DMA引擎等等。微超级管理程序可以给予客机VM对特定资源的访问。例如,可以存在提供拥有对至少一个存储设备(即磁盘驱动器)的访问的存储服务的SVM。通过平台扩展,例如,已经被给予对这一存储设备的访问的SVM可以被阻止访问平台上的其他硬件设备。
在一个实施例中,SVM在与客机VM相同的VM特权级别上运行。然而,微超级管理程序可以向SVM提供访问并非所有VM都可访问的底层硬件平台的组件的能力。微超级管理程序使用虚拟化平台中的机制来阻止VM访问特定硬件设备或存储器。例如,对特定I/O端口的所有访问可以引起向微超级管理程序的转移。
某些平台的硬件体系结构不能够阻止DMA访问引用所有的物理存储器。如果给予VM对能够执行DMA的设备的访问,则该设备可以被编程为在存储器的任何地方执行DMA。
在一个实施例中,该硬件体系结构可以提供一种机制,通过该机制,VMM可以指定物理存储器中对DMA不可访问的页。因此,可以针对所有设备来保护页。然而,不可以阻断来自CPU总线的访问。这可以针对错误或恶意设备进行保护。
在另一个实施例中,该硬件体系结构可以提供一种机制,通过该机制,VMM可以指定物理存储器中不能被DMA在每个设备的基础上访问的页,从而允许VMM授权来自特定设备的对物理存储器的特定页而非其他页的DMA访问。
对虚拟化的硬件支持可以包括供VMM使用的多种工具。在一个实施例中,VMM软件可以指定在引起转移回到VMM中的客机VM运行时发生的事件。从客机VM到VMM的转移被称为VM退出。从VMM到客机VM的转移被称为VM进入。在一个实施例中,VM进入由VMM通过执行特定处理器指令来启动。硬件使得平台能够基于由VMM设置的策略在最高特权模式(即,高VM特权级别)和较少特权或“解除特权”模式(即,较低的VM特权级别)之间来回转移。可以由VMM指定以引起VM退出的事件组是广泛的。事件可以包括但不限于,VMM可以用来虚拟化物理存储器(即,VMM可控制客机VM的页表)、中断和异常、I/O指令、对诸如机器专用寄存器(MSR)和控制寄存器(例如,IA-32 ISA中的CR0)等特定处理器状态的访问等的所有事件。由此,VMM可以虚拟化特定平台功能。
例如,如果客机VM中运行的OS执行一条I/O指令,则VMM可以通过指定这一I/O事件使用VM退出引起向VMM(即,特权模式)的转移来俘获这一事件。在一个实施例中,VMM可以指定哪些I/O端口访问应引起VM退出,从而允许客机VM访问某些I/O端口而阻止对其他端口的访问。当发生这样的VM退出时,VMM可以虚拟化I/O设备或提供服务并执行必要的I/O。这对客机VM来说是透明的。在本发明的一个实施例中,在最高的VM特权级别上运行的微超级管理程序可以代理对在较低的VM特权级别上运行的SVM的服务的请求。于是,SVM提供服务,例如访问存储器设备。
在一个实施例中,虚拟化平台可以根据被称为虚拟机控制结构(VMCS)的控制结构中的数据来控制在降低的VM特权级别上运行的软件的操作。VMCS包括一组为每一类事件指定的控制,无论其是否应引起向VMM的转移。例如,对于I/O端口访问,存在VMM可以为IA-32平台上可以访问的每一I/O端口置位或清零的位。存在一个可以或不可以直接访问的端口的列表。另外,除了其他控制以外,VMCS可以包括确定在VM进入和VM退出期间如何管理状态以及VM中的软件如何操作的控制。本领域中的普通技术人员显然可以看出,其他机制和/或数据结构可以用来定义这些策略。
图4示出了根据本发明的一个实施例的用于解除特权的服务虚拟机处理输入/输出(I/O)操作的示例性进程。在有硬件虚拟化支持的平台中,微超级管理程序(MH)在框401处启动客机VM并将控制传递给该客机VM(即,执行VM进入)。客机VM如所期望地执行,直到其尝试执行输入/输出(I/O)操作(框403)。
在框405中,确定该I/O操作是否需要访问特权I/O端口。如上所述,可在虚拟机控制结构(VMCS)或其他所实现的结构中枚举需要特权访问的I/O端口的列表。对I/O端口的访问可能引起VM退出。在框407中,如果访问的不是受保护的I/O端口,则该I/O访问不被截取,且该访问直接与所述的硬件设备通信。于是,执行在客机VM(403)中继续,直到在框403中尝试另一个I/O操作。
本领域中的普通技术人员显然可以看出,除了I/O之外,各种硬件事件都可以用这种方式来俘获。在以下讨论中,引起向到VMM的转移的任何事件都被称为“服务请求”。向VMM的转移被称为俘获。即使客机VM不知道控制它的VMM并因此相信它正直接在平台硬件上运行,仍使用术语“服务请求”。由微超级管理程序和SVM提供的“服务”可以包括,例如,平台设备的仿真,或者提供更高级的服务。例如,在一个实施例中,SVM可以提供建立并维护用于VM之间的通信的共享存储器缓冲区的工具。在另一个实施例中,SVM可以向知道微超级管理程序和SVM的存在的客机VM提供文件系统功能,以改进系统性能、安全性、可靠性等等。服务请求可以通过客机VM执行I/O指令、访问存储器的受保护段或明确地与微超级管理程序或SVM通信(例如通过执行引起VM退出的指令)来启动。本讨论涉及图4的剩余部分详述对I/O访问尝试的处理,但是现在应该明白,这是一个特定例子,它决不限制此处所描述的本发明的适用性。注意,可以特别地对待从SVM的VM退出。例如,从SVM的特定VM退出可以不需要SVM(即,第二SVM)的交互,并可以在微超级管理程序中直接处理。这在下面进一步讨论。
在框411中,如果I/O访问尝试是针对特权I/O端口,则平台从客机VM执行转移到微超级管理程序执行。在框413中,微超级管理程序标识引起VM退出的事件并确定应该由哪一服务VM(SVM)处理该I/O访问。在框415中,微超级管理程序以VM进入来进入所选择的SVM以处理该I/O访问。
可以基于若干准则来确定处理特定请求的适当SVM。在一个实施例中,存在处理所有请求的单个SVM。在这种情况下,确定用于请求的适当SVM是无足轻重的。在另一个实施例中,存在多个SVM,其每一个都处理特定类型的请求。在这一实施例中,微超级管理程序必须通过检查处理器或存储器状态或者通过检查从客机VM的VM退出(在一个实施例中由处理器作为VM退出的一部分来提供)的原因来确定请求类型。使用这一类型信息,微超级管理程序查询映射表或将请求类型映射到负责SVM的其他数据结构。在又一个实施例中,多个SVM可以处理相同类型的请求。微超级管理程序可以基于负载平衡、处理器关系或其他选择准则在这多个可用SVM中选择。在某些实施例中,这一映射表的内容可以由一个或多个SVM来确定,而微超级管理程序所做的只是实施由SVM提出的策略。
在框417中,SVM在适当时虚拟化I/O访问。可以存在多个SVM,其每一个都处理不同形式的I/O或其他服务。因此,SVM的执行将不允许对平台上的其他I/O设备的未经授权的访问。在框419中,一旦已经完成所请求I/O的虚拟化,SVM使控制转移回到微超级管理程序。在一个实施例中,这一转移可以通过客机VM中的软件执行特定指令或引起引发VM退出的特定事件来启动。在框421中,在确保虚拟化I/O的结果可以被客机VM访问之后,微超级管理程序将控制返回给该客机VM,如下面所讨论的。在框403中,客机VM继续正常执行,直到发生下一个I/O访问尝试。
在一个实施例中,引起从客机VM向微超级管理程序的转移的,某些事件并不导致向服务VM的转移。由于安全性或性能原因,可以在微超级管理程序中处理某些事件。服务VM可以配置微超级管理程序来代表其执行功能。微超级管理程序实现支持由服务VM指定的策略的机制。
例如,频繁发生的与物理存储器的虚拟化相关联的事件可以在微超级管理程序中处理,以便于改进系统性能(通过消除向服务VM的转移)。例如,负责管理系统存储器的特定服务VM可以指示特定客机VM拥有对一组物理存储器页的访问。然后,微超级管理程序在必要时负责管理客机VM对这些物理存储器页的使用以便提供正确的功能,同时阻止客机VM访问未分配给它的存储器。取决于用来实现SVM指定的策略(即,对一组特定页的使用)的算法,在客机访问物理存储器中的页时可能发生从客机VM到微超级管理程序的频繁转移。微超级管理程序可以处理这些事件并将控制返回给客机VM而不涉及服务VM(并且避免将控制转移到服务VM的等待时间)。
在一个实施例中,微超级管理程序提供确保虚拟机系统的完整性而不与服务VM交互所必需的安全功能。例如,客机物理地址到主机物理地址的翻译必须被保护并因此由微超级管理程序执行。在另一个实施例中,微超级管理程序可以调解对平台上的直接存储器访问(DMA)控制器进行编程的所有尝试,以确保用于DMA的物理地址没有指向受保护的或禁止的存储器区域。在这些情况中,不激活SVM来执行翻译,然而如果地址不能够被翻译,则将会告知SVM。
在另一个实施例中,微超级管理程序可以提供安全机制供客机VM使用,而不涉及SVM。例如,微超级管理程序可以响应来自客机VM的服务请求以加密数据分组。在一个实施例中,微超级管理程序不允许包括任何SVM在内的任何VM访问基于平台的安全设备,例如可信平台模块(TPM)。
在一个实施例中,微超级管理程序包括有限数目的设备驱动程序和设备模型。这种包括增加了在最高的VM特权级别上运行的代码的大小。然而,包括设备驱动程序和设备模型可以为频繁地被客机VM访问的设备提供巨大的性能好处。例如,平台中断控制器(例如,Intel82093 AA I/O高级可编程中断控制器)可以在每次发生硬件中断时被多次访问。通过在微超级管理程序中包括用于中断控制器的设备模型和驱动程序,减少了向服务VM(也可以提供这一功能)的转移,从而改善了系统性能。通过在微超级管理程序中包括用于这一设备的设备模型和驱动程序,不要求服务VM做出所有调度和中断路由确定,这再次改善了系统性能。
作为SVM中提供服务的一部分,微超级管理程序或SVM可能需要以某种形式把结果或数据提供给请求该服务的客机VM。例如,在仿真由客机VM使用I/O指令来访问的设备时,SVM或微超级管理程序可以通过将处理器寄存器或存储器中所期望的值返回给客机VM来把结果提供给客机VM,以使得该客机VM可以访问由处理器ISA提供的结果。例如,在IA-32 ISA中,IN指令可以用来访问I/O设备(即,从I/O设备中读取值)。在IA-32 ISA中,IN指令的结果可以被返回到作为该IN指令的操作数给出的处理器寄存器中或存储器位置中,取决于所使用的IN指令的具体形式。在把控制返回给客机VM之前,SVM或微超级管理程序将仿真ISA的这一特性。如果由SVM提供的服务更复杂,则数据或结果可以通过存储器中的位置返回,或者使用本领域中已知的任何其他机制来返回。
图5示出了根据本发明的一个实施例的用于在微超级管理程序中直接处理虚拟化事件的示例性进程。在一个示例性实施例中,微超级管理程序把控制转移到客机VM(501)。在一个实施例中,这一转移由微超级管理程序通过执行处理器指令来启动。微超级管理程序可以等待VM退出以执行所请求的服务,或者继续周期性地操作以执行正常的监控功能。
当发生虚拟化事件时(例如,发生硬件中断、客机VM请求访问受控设备或存储器位置、或者请求所选择的被制定为生成虚拟化事件的系统服务),则可以生成VM退出。微超级管理程序于是由于这一虚拟化事件而接收控制(503)。
在505处,通常出于安全或性能的目的,微超级管理程序确定虚拟化事件是否直接由微超级管理程序处理。如果微超级管理程序要处理该虚拟化事件,则在507处该事件被处理,然后控制可以被返回给客机VM(501)。在一个实施例中,这一将控制返回给客机VM通过微超级管理程序执行VM进入指令来启动。
在某些情况中,虚拟化事件可以是来自SVM的完成通知。因为SVM在客机VM中执行,因此它们可以用与其他客机VM相同的方式(通常是可以由SVM明确地执行被设计成引起VM退出的指令而引起的VM退出)将控制传递给微超级管理程序。在509处,微超级管理程序确定该事件是否指示前一个SVM请求的完成。如果该虚拟化事件指示前一个SVM请求的完成,则如上所述,微超级管理程序将任何必需的数据或结果传递到引起原始SVM请求的客机VM(511)。这一转移通常由VM进入指令的执行来实现。
如果该虚拟化事件不是SVM完成事件而是新的服务或访问请求,则微超级管理程序激活适当的SVM来处理该事件(513)。这一转移通常是VM进入,如SVM在客机VM中所执行的。
本领域中的普通技术人员显然可以看出,微超级管理程序也可以进行其他动作。例如,如果处理客机VM执行的调度,则微超级管理程序可以选择调度不同的客机VM而不是在513处激活SVM来处理事件,宁可推迟这一请求以有利于给予另一客机VM执行时间。如果例如SVM被阻断等候其他请求且不能立刻处理新请求,则微超级管理程序可以采取这一行动方式。或者,如果具有较高优先级的客机VM正在等候执行(例如,实时客机VM),则微超级管理程序可以执行这一调度。
在此所描述的技术不限于任何特定硬件或软件配置;它们可以适用于任何计算、消费性电子产品或处理环境。这些技术可以用硬件、软件或两者的组合来实现。这些技术可以用在可编程机器上执行的程序来实现,可编程机器如移动或固定计算机、个人数字助理、机顶盒、蜂窝电话和寻呼机、消费性电子设备(包括DVD播放机、个人视频录像机、个人视频播放机、卫星接收机、立体声接收机、有线电视接收机)和其他电子设备,它们可以包括处理器、可以由处理器访问的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及一个或多个6输出设备。程序代码被应用于使用输入设备输入的数据,以执行所述功能并生成输出信息。输出信息可以被应用于一个或多个输出设备。本领域中的技术人员应该明白,本发明可以用具有对硬件虚拟化的支持的各种系统配置来实现,包括多处理器系统、小型计算机、大型计算机、独立消费性电子设备等等。本发明也可以在分布式计算环境中实现,在分布式计算环境中,由通过通信网络连接的远程处理设备来执行任务或其部分。
每一程序可以用高级过程或面向对象的编程语言来实现以便与处理系统通信。然而,如果需要的话,程序可以用汇编语言或机器语言来实现。在任何情况下,语言可以是编译或解释语言。
程序指令可以被用来使得用指令编程的通用或专用处理系统执行此处所述的操作。或者,操作可以由包含用于执行操作的硬连线逻辑的特定硬件组件来执行,或由编程的计算机组件和自定义硬件组件的任意组合来执行。在此所描述的方法可以作为计算机程序产品来提供,该计算机程序产品可包括其上存储有指令的机器可访问介质,这些指令可以被用于对处理系统或其他电子设备进行编程以便执行方法。在此所用的术语“机器可访问介质”应包括能够存储或编码指令序列以供机器执行并使机器执行此处所述的任何一种方法的任何介质。术语“机器可访问介质”因此包括但不限于,固态存储器、光盘和磁盘以及编码数据信号的载波。此外,在本领域中说到软件通常以一种或另一种形式(例如,程序、过程、进程、应用程序、模块、逻辑等等)进行行动或引起结果。此类表达方式只是陈述处理系统执行软件引起处理器执行产生结果的行动的简写方式。
尽管已经参考说明性实施例描述了本发明,但这一描述并不旨在被解释为是限制。本发明所属领域的技术人员所清楚的说明性实施例的各种修改以及本发明的其他实施例被认为落入本发明的精神和范围之内。
Claims (25)
1.一种对虚拟机监控程序的组件解除特权的系统,包含:
具有多个虚拟机(VM)特权级别的带有虚拟化硬件支持的平台,所述平台能够基于至少一个俘获的事件在以各种虚拟机(VM)特权级别运行的进程之间转移;
虚拟机监控程序(VMM)的微超级管理程序部分,其中在所选择的俘获的事件之后,在所述平台上的程序执行被传递到所述微超级管理程序;以及
服务所述至少一个俘获的事件的VMM的至少一个服务虚拟机(SVM)部分,所述SVM在比由所述微超级管理程序操作的VM特权级别低的VM特权级别上运行,其中基于所述至少一个俘获的事件,在所述平台上的程序执行由所述微超级管理程序传递到所述至少一个SVM。
2.如权利要求1所述的系统,其特征在于,所述微超级管理程序在所述平台上的最高VM特权级别上运行。
3.如权利要求1所述的系统,其特征在于,在所述平台上的第一客机虚拟机中运行的第一操作系统在低于由所述微超级管理程序操作的VM特权级别的VM特权级别上运行。
4.如权利要求3所述的系统,其特征在于,当在第一操作系统下运行的客机软件请求服务时,引起一俘获的事件。
5.如权利要求3所述的系统,其特征在于,所述第一操作系统的至少一部分在所述平台的最高ISA特权级别上操作。
6.如权利要求3所述的系统,其特征在于,包含多个附加操作系统,每一附加操作系统在相应的附加虚拟机中运行,所述多个操作系统在低于由所述微超级管理程序操作的VM特权级别的VM特权级别上运行。
7.如权利要求1所述的系统,其特征在于,所述至少一个SVM在对所选择的至少一个组件的访问上受到限制。
8.如权利要求1所述的系统,其特征在于,所述微超级管理程序作为驱动程序从引导操作系统启动。
9.如要求1所述的系统,其特征在于,所述微超级管理程序驻留在通信上耦合到所述平台的系统固件中。
10.如权利要求1所述的系统,其特征在于,所述微超级管理程序在系统引导期间被载入。
11.如权利要求1所述的系统,其特征在于,所述至少一个SVM提供用于硬件交互的服务。
12.如权利要求1所述的系统,其特征在于,所述平台上的最高VM特权级别高于所述平台上的最高ISA特权级别。
13.一种用于对虚拟化平台上的虚拟机监控程序中的服务解除特权的方法,包含:
由虚拟机监控程序(VMM)的微超级管理程序部分将控制转移到带有硬件虚拟化支持的平台中的客机虚拟机(VM),所述客机VM在比所述微超级管理程序低的VM特权级别上执行;
由于一俘获的事件而接收控制;
确定由所述VMM的哪一服务虚拟机(SVM)部分来处理所述俘获的事件;以及
将控制转移到所确定的用于所述俘获的事件的SVM,其中所述SVM在比由所述微超级管理程序操作的VM特权级别低的VM特权级别上执行。
14.如权利要求13所述的方法,其特征在于,所述微超级管理程序在所述平台上的最高VM特权级别上执行。
15.如权利要求13所述的系统,其特征在于,还包含:
从所确定的SVM接收控制;以及
将执行转移到所述客机VM。
16.如权利要求13所述的方法,其特征在于,所确定的SVM是所述微超级管理程序的一部分,且所述俘获的事件由所述微超级管理程序在不明确地将控制转移到另一VM的情况下本地处理。
17.如权利要求13所述的方法,其特征在于,所述硬件虚拟化支持允许所述事件俘获。
18.如权利要求13所述的方法,其特征在于,还包含在将控制转移到所述客机虚拟机之前,在一虚拟机控制结构(VMCS)中枚举至少一个要俘获的事件类型,所述VMCS包含为每一事件类型指定所述事件类型是否会引起向所述微超级管理程序的转移的一组控制。
19.如权利要求13所述的方法,其特征在于,所述硬件虚拟化支持允许在所述微超级管理程序、客机VM和SVM之间转移控制。
20.一种用于对虚拟化平台上的虚拟机监控程序中的服务解除特权的机器可访问介质,所述介质具有指令,所述指令在被访问时使得所述机器:
由虚拟机监控程序(VMM)的微超级管理程序部分将控制转移到带有硬件虚拟化支持的平台中的客机虚拟机(VM),所述客机VM在比所述微超级管理程序低的VM特权级别上执行;
由于一俘获的事件而接收控制;
确定由所述VMM的哪一服务虚拟机(SVM)部分来处理所述俘获的事件;以及
将控制转移到所确定的用于所述俘获的事件的SVM和微超级管理程序部分,其中所述SVM在比由所述微超级管理程序操作的VM特权级别低的VM特权级别上执行。
21.如权利要求20所述的机器可访问介质,其特征在于,所述微超级管理程序在所述平台上的最高VM特权级别上执行。
22.如权利要求20所述的机器可访问介质,其特征在于,还包含指令,所述指令在被访问时使得所述机器:
从所确定的SVM接收控制;以及
将执行转移到所述客机VM。
23.如权利要求20所述的机器可访问介质,其特征在于,所述硬件虚拟化支持允许所述事件俘获。
24.如权利要求20所述的机器可访问介质,其特征在于,还包含指令,所述诸指令在被访问时,在将控制转移到所述客机虚拟机器之前,在一虚拟机控制结构(VMCS)中枚举至少一个要俘获的事件类型,所述VMCS包含为每一事件类型指定所述事件类型是否会引起向所述微超级管理程序的转移的一组控制。
25.如权利要求20所述的机器可访问介质,其特征在于,所述硬件虚拟化支持允许在所述微超级管理程序、客机VM和SVM之间转移控制。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/008,911 US7757231B2 (en) | 2004-12-10 | 2004-12-10 | System and method to deprivilege components of a virtual machine monitor |
US11/008,911 | 2004-12-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101076781A true CN101076781A (zh) | 2007-11-21 |
Family
ID=36123076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005800424417A Pending CN101076781A (zh) | 2004-12-10 | 2005-12-09 | 对虚拟机监控程序的组件解除特权的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7757231B2 (zh) |
EP (1) | EP1839142A1 (zh) |
JP (1) | JP5042848B2 (zh) |
KR (1) | KR100984203B1 (zh) |
CN (1) | CN101076781A (zh) |
WO (1) | WO2006063274A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010060300A1 (zh) * | 2008-11-25 | 2010-06-03 | 华为技术有限公司 | 一种设备驱动域的实现方法、系统及装置 |
CN101976200A (zh) * | 2010-10-15 | 2011-02-16 | 浙江大学 | 在虚拟机监控器外进行输入输出设备虚拟化的虚拟机系统 |
CN103365630A (zh) * | 2012-03-30 | 2013-10-23 | 瑞萨电子株式会社 | 半导体设备 |
CN104598842A (zh) * | 2015-02-03 | 2015-05-06 | 中国电子科技集团公司第三十研究所 | 一种虚拟机监控器信任域分割方法 |
CN106406970A (zh) * | 2015-07-29 | 2017-02-15 | 罗伯特·博世有限公司 | 用于保护超级管理程序的应用程序编程接口的方法和设备 |
CN106484494A (zh) * | 2015-07-29 | 2017-03-08 | 罗伯特·博世有限公司 | 更新在超级管理程序下运行的虚拟机的方法和设备 |
CN107566319A (zh) * | 2016-06-30 | 2018-01-09 | 中央大学 | 虚拟机器即时转移方法 |
CN108292234A (zh) * | 2015-12-22 | 2018-07-17 | 英特尔公司 | 用于实施对虚拟机的网络访问控制的技术 |
CN109858288A (zh) * | 2018-12-26 | 2019-06-07 | 中国科学院信息工程研究所 | 实现虚拟机安全隔离的方法与装置 |
CN113260993A (zh) * | 2018-12-03 | 2021-08-13 | 耐瑞唯信有限公司 | 虚拟平台系统的安全部署和操作 |
Families Citing this family (123)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7484091B2 (en) * | 2004-04-29 | 2009-01-27 | International Business Machines Corporation | Method and system for providing a trusted platform module in a hypervisor environment |
US7380119B2 (en) * | 2004-04-29 | 2008-05-27 | International Business Machines Corporation | Method and system for virtualization of trusted platform modules |
DE602004027516D1 (de) * | 2004-12-03 | 2010-07-15 | St Microelectronics Srl | Ein Verfahren zum Verwalten von virtuellen Maschinen in einer körperlichen Verarbeitungsmaschine, ein entsprechendes Prozessorsystem und Computerprogrammprodukt dafür |
US7765544B2 (en) * | 2004-12-17 | 2010-07-27 | Intel Corporation | Method, apparatus and system for improving security in a virtual machine host |
US8706942B2 (en) * | 2004-12-29 | 2014-04-22 | Intel Corporation | Direct memory access (DMA) address translation between peer-to-peer input/output (I/O) devices |
US7647589B1 (en) * | 2005-02-07 | 2010-01-12 | Parallels Software International, Inc. | Methods and systems for safe execution of guest code in virtual machine context |
US8578385B2 (en) * | 2005-04-21 | 2013-11-05 | Microsoft Corporation | Method and system for virtual service isolation |
CN100547515C (zh) * | 2005-07-15 | 2009-10-07 | 联想(北京)有限公司 | 支持可信计算的虚拟机系统及在其上实现可信计算的方法 |
US8327353B2 (en) * | 2005-08-30 | 2012-12-04 | Microsoft Corporation | Hierarchical virtualization with a multi-level virtualization mechanism |
US8528107B1 (en) * | 2005-09-19 | 2013-09-03 | Vmware, Inc. | Enforcing restrictions related to a virtualized computer environment |
US20090106754A1 (en) * | 2005-12-10 | 2009-04-23 | Benjamin Liu | Handling a device related operation in a virtualization enviroment |
US7840964B2 (en) * | 2005-12-30 | 2010-11-23 | Intel Corporation | Mechanism to transition control between components in a virtual machine environment |
US20070174429A1 (en) * | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
US7814307B2 (en) | 2006-03-16 | 2010-10-12 | Microsoft Corporation | Fast booting a computing device to a specialized experience |
US8042109B2 (en) | 2006-03-21 | 2011-10-18 | Intel Corporation | Framework for domain-specific run-time environment acceleration using virtualization technology |
US20070234412A1 (en) * | 2006-03-29 | 2007-10-04 | Smith Ned M | Using a proxy for endpoint access control |
US8332940B2 (en) * | 2006-04-11 | 2012-12-11 | Installfree, Inc. | Techniques for securing a computing environment |
US8250572B2 (en) * | 2006-08-07 | 2012-08-21 | Oracle International Corporation | System and method for providing hardware virtualization in a virtual machine environment |
US7870336B2 (en) * | 2006-11-03 | 2011-01-11 | Microsoft Corporation | Operating system protection against side-channel attacks on secrecy |
KR100790304B1 (ko) * | 2006-11-10 | 2008-01-02 | 주식회사 대우일렉트로닉스 | 자바 가상 머신과 운영 체제의 스케줄링 실행방법 |
JP5100133B2 (ja) * | 2007-01-19 | 2012-12-19 | 株式会社東芝 | 情報処理装置 |
US8380987B2 (en) * | 2007-01-25 | 2013-02-19 | Microsoft Corporation | Protection agents and privilege modes |
US7765374B2 (en) * | 2007-01-25 | 2010-07-27 | Microsoft Corporation | Protecting operating-system resources |
US8776041B2 (en) * | 2007-02-05 | 2014-07-08 | Microsoft Corporation | Updating a virtual machine monitor from a guest partition |
US9558019B2 (en) * | 2007-03-22 | 2017-01-31 | Invention Science Fund I, Llc | Coordinating instances of a thread or other service in emulation |
US8495708B2 (en) * | 2007-03-22 | 2013-07-23 | The Invention Science Fund I, Llc | Resource authorizations dependent on emulation environment isolation policies |
US9378108B2 (en) * | 2007-03-22 | 2016-06-28 | Invention Science Fund I, Llc | Implementing performance-dependent transfer or execution decisions from service emulation indications |
US20080234998A1 (en) * | 2007-03-22 | 2008-09-25 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Coordinating instances of a thread or other service in emulation |
US20080235000A1 (en) * | 2007-03-22 | 2008-09-25 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Implementing security control practice omission decisions from service emulation indications |
US8438609B2 (en) * | 2007-03-22 | 2013-05-07 | The Invention Science Fund I, Llc | Resource authorizations dependent on emulation environment isolation policies |
US20080235001A1 (en) * | 2007-03-22 | 2008-09-25 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Implementing emulation decisions in response to software evaluations or the like |
US8874425B2 (en) * | 2007-03-22 | 2014-10-28 | The Invention Science Fund I, Llc | Implementing performance-dependent transfer or execution decisions from service emulation indications |
JP5496464B2 (ja) * | 2007-04-16 | 2014-05-21 | 三星電子株式会社 | 仮想化環境での安全なシステム保護装置および方法 |
US8689288B2 (en) * | 2007-04-16 | 2014-04-01 | Samsung Electronics Co., Ltd. | Apparatus and method for protecting system in virtualized environment |
US8527673B2 (en) | 2007-05-23 | 2013-09-03 | Vmware, Inc. | Direct access to a hardware device for virtual machines of a virtualized computer system |
US8127292B1 (en) * | 2007-06-22 | 2012-02-28 | Parallels Holdings, Ltd. | Virtualization system with hypervisor embedded in bios or using extensible firmware interface |
CN101334751B (zh) * | 2007-06-29 | 2010-04-14 | 联想(北京)有限公司 | 虚拟机监视器识别客户操作系统中进程的方法及装置 |
US8151264B2 (en) * | 2007-06-29 | 2012-04-03 | Intel Corporation | Injecting virtualization events in a layered virtualization architecture |
US8739156B2 (en) * | 2007-07-24 | 2014-05-27 | Red Hat Israel, Ltd. | Method for securing the execution of virtual machines |
US8799903B1 (en) * | 2007-07-31 | 2014-08-05 | Hewlett-Packard Development Company, L.P. | Systems and methods for exchanging runtime functionalities between software stacks |
US8370559B2 (en) * | 2007-09-28 | 2013-02-05 | Intel Corporation | Executing a protected device model in a virtual machine |
US8521966B2 (en) * | 2007-11-16 | 2013-08-27 | Vmware, Inc. | VM inter-process communications |
US8539551B2 (en) * | 2007-12-20 | 2013-09-17 | Fujitsu Limited | Trusted virtual machine as a client |
US8522236B2 (en) * | 2007-12-28 | 2013-08-27 | Intel Corporation | Method and system for establishing a robust virtualized environment |
US8839237B2 (en) * | 2007-12-31 | 2014-09-16 | Intel Corporation | Method and apparatus for tamper resistant communication in a virtualization enabled platform |
CN101216777B (zh) * | 2008-01-11 | 2010-11-03 | 华中科技大学 | 一种多虚拟机环境下的快速部署系统 |
US8719936B2 (en) * | 2008-02-01 | 2014-05-06 | Northeastern University | VMM-based intrusion detection system |
US9798560B1 (en) | 2008-09-23 | 2017-10-24 | Gogrid, LLC | Automated system and method for extracting and adapting system configurations |
US8239938B2 (en) * | 2008-12-08 | 2012-08-07 | Nvidia Corporation | Centralized device virtualization layer for heterogeneous processing units |
US8776028B1 (en) * | 2009-04-04 | 2014-07-08 | Parallels IP Holdings GmbH | Virtual execution environment for software delivery and feedback |
US8661436B2 (en) * | 2009-12-14 | 2014-02-25 | Citrix Systems, Inc. | Dynamically controlling virtual machine access to optical disc drive by selective locking to a transacting virtual machine determined from a transaction stream of the drive |
EP2513789B1 (en) | 2009-12-14 | 2019-10-23 | Citrix Systems, Inc. | A secure virtualization environment bootable from an external media device |
US9342335B2 (en) | 2009-12-23 | 2016-05-17 | Open Innovation Network, LLC | Systems, methods and computer readable media for managing multiple virtual machines |
CN102158386B (zh) * | 2010-02-11 | 2015-06-03 | 威睿公司 | 系统管理程序级的分布式负载平衡 |
KR20110094764A (ko) * | 2010-02-17 | 2011-08-24 | 삼성전자주식회사 | 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법 |
US8938782B2 (en) * | 2010-03-15 | 2015-01-20 | Symantec Corporation | Systems and methods for providing network access control in virtual environments |
US8495512B1 (en) | 2010-05-20 | 2013-07-23 | Gogrid, LLC | System and method for storing a configuration of virtual servers in a hosting system |
US10474875B2 (en) | 2010-06-07 | 2019-11-12 | Affectiva, Inc. | Image analysis using a semiconductor processor for facial evaluation |
US9052965B2 (en) | 2010-06-10 | 2015-06-09 | Hewlett-Packard Development Company, L.P. | Virtual machine for execution on multiple computing systems |
US8181176B2 (en) * | 2010-06-21 | 2012-05-15 | Intel Corporation | Uniform storage device access using partial virtual machine executing within a secure enclave session |
EP2606448B1 (en) * | 2010-08-18 | 2016-02-10 | Security First Corp. | Systems and methods for securing virtual machine computing environments |
US20120059976A1 (en) * | 2010-09-07 | 2012-03-08 | Daniel L. Rosenband | Storage array controller for solid-state storage devices |
US20150121003A1 (en) * | 2010-09-07 | 2015-04-30 | Daniel L. Rosenband | Storage controllers |
US8789042B2 (en) * | 2010-09-27 | 2014-07-22 | Mips Technologies, Inc. | Microprocessor system for virtual machine execution |
US8910155B1 (en) * | 2010-11-02 | 2014-12-09 | Symantec Corporation | Methods and systems for injecting endpoint management agents into virtual machines |
US8892788B2 (en) * | 2011-02-22 | 2014-11-18 | Red Hat Israel, Ltd. | Exposing a DMA engine to guests in a virtual machine system |
JP6063941B2 (ja) | 2011-08-30 | 2017-01-18 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | システム管理要求のための仮想高特権モード |
WO2013032495A1 (en) * | 2011-08-30 | 2013-03-07 | Hewlett-Packard Development Company , L.P. | Communication with a virtual trusted runtime bios |
US8826275B2 (en) | 2011-09-01 | 2014-09-02 | Ca, Inc. | System and method for self-aware virtual machine image deployment enforcement |
US8695010B2 (en) | 2011-10-03 | 2014-04-08 | International Business Machines Corporation | Privilege level aware processor hardware resource management facility |
US10310879B2 (en) * | 2011-10-10 | 2019-06-04 | Nvidia Corporation | Paravirtualized virtual GPU |
US9176763B2 (en) | 2011-11-28 | 2015-11-03 | Ravello Systems Ltd. | Apparatus and method thereof for efficient execution of a guest in a virtualized environment |
TWI459296B (zh) * | 2012-02-21 | 2014-11-01 | Hon Hai Prec Ind Co Ltd | 增加伺服器的虛擬機配置數量的方法 |
US20130268774A1 (en) | 2012-04-06 | 2013-10-10 | Security First Corp. | Systems and methods for securing and restoring virtual machines |
ES2439804B1 (es) * | 2012-04-19 | 2014-10-29 | Universitat Politècnica De Catalunya | Procedimiento, sistema y pieza de código ejecutable para virtualizar un recurso de hardware asociado a un sistema informático |
TWI471734B (zh) * | 2012-06-28 | 2015-02-01 | Galaxy Software Services Corp | 雲端服務系統及雲端服務方法 |
WO2014100279A1 (en) * | 2012-12-18 | 2014-06-26 | Dynavisor, Inc. | Dynamic device virtualization |
JP2013061994A (ja) * | 2013-01-07 | 2013-04-04 | Fujitsu Ltd | ウイルス検出プログラム、ウイルス検出方法、監視プログラム、監視方法、及びコンピュータ |
US9575789B1 (en) * | 2013-06-26 | 2017-02-21 | Veritas Technologies | Systems and methods for enabling migratory virtual machines to expedite access to resources |
US20150007196A1 (en) * | 2013-06-28 | 2015-01-01 | Intel Corporation | Processors having heterogeneous cores with different instructions and/or architecural features that are presented to software as homogeneous virtual cores |
US9697027B1 (en) * | 2013-07-02 | 2017-07-04 | Ca, Inc. | Hypercall-based security for hypervisors |
TWI530954B (zh) * | 2013-11-22 | 2016-04-21 | 新唐科技股份有限公司 | 保護非揮發性記憶體中儲存之程式碼的裝置 |
US9507617B1 (en) * | 2013-12-02 | 2016-11-29 | Trend Micro Incorporated | Inter-virtual machine communication using pseudo devices |
US9292686B2 (en) | 2014-01-16 | 2016-03-22 | Fireeye, Inc. | Micro-virtualization architecture for threat-aware microvisor deployment in a node of a network environment |
US20150205962A1 (en) * | 2014-01-23 | 2015-07-23 | Cylent Systems, Inc. | Behavioral analytics driven host-based malicious behavior and data exfiltration disruption |
US9652631B2 (en) * | 2014-05-05 | 2017-05-16 | Microsoft Technology Licensing, Llc | Secure transport of encrypted virtual machines with continuous owner access |
DE102014209592A1 (de) | 2014-05-20 | 2015-11-26 | Robert Bosch Gmbh | Verfahren zum Erzeugen einer Hypervisor-Einheit und Hypervisor-Einheit |
US10255090B2 (en) | 2014-06-23 | 2019-04-09 | Vmware, Inc. | Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels |
US10019275B2 (en) | 2014-06-23 | 2018-07-10 | Vmware, Inc. | Hypervisor context switching using a trampoline scheme in processors having more than two hierarchical privilege levels |
US10162655B2 (en) * | 2014-06-23 | 2018-12-25 | Vmware, Inc. | Hypervisor context switching using TLB tags in processors having more than two hierarchical privilege levels |
US9792222B2 (en) * | 2014-06-27 | 2017-10-17 | Intel Corporation | Validating virtual address translation by virtual machine monitor utilizing address validation structure to validate tentative guest physical address and aborting based on flag in extended page table requiring an expected guest physical address in the address validation structure |
US9680862B2 (en) | 2014-07-01 | 2017-06-13 | Fireeye, Inc. | Trusted threat-aware microvisor |
JP2014225302A (ja) * | 2014-09-08 | 2014-12-04 | 富士通株式会社 | ウイルス検出プログラム、ウイルス検出方法、及びコンピュータ |
WO2016105232A1 (en) | 2014-12-25 | 2016-06-30 | Siemens Aktiengesellschaft | Increasing the level of security for micro-hypervisor based virtualization platforms |
US9934376B1 (en) | 2014-12-29 | 2018-04-03 | Fireeye, Inc. | Malware detection appliance architecture |
US10230693B2 (en) | 2015-01-29 | 2019-03-12 | WebCloak, LLC | Safechannel encrypted messaging system |
US10474813B1 (en) | 2015-03-31 | 2019-11-12 | Fireeye, Inc. | Code injection technique for remediation at an endpoint of a network |
US10956571B2 (en) * | 2015-05-15 | 2021-03-23 | Intel Corporation | Kernel runtime integrity using processor assists |
US10216927B1 (en) | 2015-06-30 | 2019-02-26 | Fireeye, Inc. | System and method for protecting memory pages associated with a process using a virtualization layer |
US10395029B1 (en) | 2015-06-30 | 2019-08-27 | Fireeye, Inc. | Virtual system and method with threat protection |
US11113086B1 (en) | 2015-06-30 | 2021-09-07 | Fireeye, Inc. | Virtual system and method for securing external network connectivity |
US10726127B1 (en) | 2015-06-30 | 2020-07-28 | Fireeye, Inc. | System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer |
US10454950B1 (en) | 2015-06-30 | 2019-10-22 | Fireeye, Inc. | Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks |
US10642753B1 (en) | 2015-06-30 | 2020-05-05 | Fireeye, Inc. | System and method for protecting a software component running in virtual machine using a virtualization layer |
KR101754334B1 (ko) * | 2015-07-14 | 2017-07-19 | 서울대학교산학협력단 | 하이퍼바이저를 이용한 로깅 방법 및 그 장치 |
US10033759B1 (en) | 2015-09-28 | 2018-07-24 | Fireeye, Inc. | System and method of threat detection under hypervisor control |
US10846117B1 (en) * | 2015-12-10 | 2020-11-24 | Fireeye, Inc. | Technique for establishing secure communication between host and guest processes of a virtualization architecture |
US10447728B1 (en) | 2015-12-10 | 2019-10-15 | Fireeye, Inc. | Technique for protecting guest processes using a layered virtualization architecture |
US10108446B1 (en) | 2015-12-11 | 2018-10-23 | Fireeye, Inc. | Late load technique for deploying a virtualization layer underneath a running operating system |
US20170177395A1 (en) * | 2015-12-21 | 2017-06-22 | Mingqiu Sun | Embedded architecture based on process virtual machine |
US9886303B2 (en) * | 2016-06-15 | 2018-02-06 | International Business Machines Corporation | Specialized micro-hypervisors for unikernels |
US10348838B2 (en) * | 2016-07-22 | 2019-07-09 | Cisco Technology, Inc. | Scaling service discovery in a micro-service environment |
US11412053B2 (en) | 2016-07-22 | 2022-08-09 | Cisco Technology, Inc. | Scaling service discovery in a micro-service environment |
US10191861B1 (en) | 2016-09-06 | 2019-01-29 | Fireeye, Inc. | Technique for implementing memory views using a layered virtualization architecture |
US11824863B2 (en) * | 2016-11-03 | 2023-11-21 | Nicira, Inc. | Performing services on a host |
US11115324B2 (en) | 2019-08-27 | 2021-09-07 | Nokia Solutions Networks Oy | System and method for performing segment routing over an MPLS network |
US11442873B2 (en) * | 2019-09-06 | 2022-09-13 | Meta Platforms Technologies, Llc | Microkernel architecture with enhanced reliability and security |
US11314522B2 (en) | 2020-02-26 | 2022-04-26 | Red Hat, Inc. | Fast boot resource allocation for virtual machines |
US11586458B2 (en) | 2020-02-26 | 2023-02-21 | Red Hat, Inc. | Fast device discovery for virtual machines |
CN111547270A (zh) * | 2020-04-22 | 2020-08-18 | 中国电子科技集团公司电子科学研究院 | 一种卫星电子一体化处理系统及微纳卫星 |
KR20220077694A (ko) * | 2020-12-02 | 2022-06-09 | 삼성전자주식회사 | 하이퍼바이저를 이용한 가상 머신 모니터링 방법 및 이를 지원하는 전자 장치 |
CN113297563B (zh) * | 2021-06-18 | 2023-01-24 | 海光信息技术股份有限公司 | 访问片上系统特权资源的方法、装置及片上系统 |
CN114520825B (zh) * | 2022-01-07 | 2023-12-26 | 中汽创智科技有限公司 | 一种基于分布式的Hypervisor微内核架构、通信方法及设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4787031A (en) * | 1985-01-04 | 1988-11-22 | Digital Equipment Corporation | Computer with virtual machine mode and multiple protection rings |
US5437033A (en) * | 1990-11-16 | 1995-07-25 | Hitachi, Ltd. | System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode |
JP3630087B2 (ja) | 2000-05-10 | 2005-03-16 | 日本電気株式会社 | 自動データ処理装置 |
US7272831B2 (en) * | 2001-03-30 | 2007-09-18 | Intel Corporation | Method and apparatus for constructing host processor soft devices independent of the host processor operating system |
US20030229794A1 (en) | 2002-06-07 | 2003-12-11 | Sutton James A. | System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container |
US6996748B2 (en) * | 2002-06-29 | 2006-02-07 | Intel Corporation | Handling faults associated with operation of guest software in the virtual-machine architecture |
US7376949B2 (en) * | 2003-10-01 | 2008-05-20 | Hewlett-Packard Development Company, L.P. | Resource allocation and protection in a multi-virtual environment |
US20050076186A1 (en) * | 2003-10-03 | 2005-04-07 | Microsoft Corporation | Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements |
-
2004
- 2004-12-10 US US11/008,911 patent/US7757231B2/en active Active
-
2005
- 2005-12-09 JP JP2007545682A patent/JP5042848B2/ja not_active Expired - Fee Related
- 2005-12-09 WO PCT/US2005/044701 patent/WO2006063274A1/en active Application Filing
- 2005-12-09 KR KR1020077015035A patent/KR100984203B1/ko not_active IP Right Cessation
- 2005-12-09 CN CNA2005800424417A patent/CN101076781A/zh active Pending
- 2005-12-09 EP EP05853583A patent/EP1839142A1/en not_active Ceased
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010060300A1 (zh) * | 2008-11-25 | 2010-06-03 | 华为技术有限公司 | 一种设备驱动域的实现方法、系统及装置 |
CN101976200A (zh) * | 2010-10-15 | 2011-02-16 | 浙江大学 | 在虚拟机监控器外进行输入输出设备虚拟化的虚拟机系统 |
CN101976200B (zh) * | 2010-10-15 | 2013-05-08 | 浙江大学 | 在虚拟机监控器外进行输入输出设备虚拟化的虚拟机系统 |
CN103365630A (zh) * | 2012-03-30 | 2013-10-23 | 瑞萨电子株式会社 | 半导体设备 |
CN103365630B (zh) * | 2012-03-30 | 2017-06-09 | 瑞萨电子株式会社 | 半导体设备 |
CN104598842A (zh) * | 2015-02-03 | 2015-05-06 | 中国电子科技集团公司第三十研究所 | 一种虚拟机监控器信任域分割方法 |
CN104598842B (zh) * | 2015-02-03 | 2018-05-01 | 中国电子科技集团公司第三十研究所 | 一种虚拟机监控器信任域分割方法 |
CN106406970B (zh) * | 2015-07-29 | 2021-10-22 | 罗伯特·博世有限公司 | 用于保护超级管理程序的应用程序编程接口的方法和设备 |
CN106406970A (zh) * | 2015-07-29 | 2017-02-15 | 罗伯特·博世有限公司 | 用于保护超级管理程序的应用程序编程接口的方法和设备 |
CN106484494A (zh) * | 2015-07-29 | 2017-03-08 | 罗伯特·博世有限公司 | 更新在超级管理程序下运行的虚拟机的方法和设备 |
CN108292234A (zh) * | 2015-12-22 | 2018-07-17 | 英特尔公司 | 用于实施对虚拟机的网络访问控制的技术 |
CN107566319A (zh) * | 2016-06-30 | 2018-01-09 | 中央大学 | 虚拟机器即时转移方法 |
CN113260993A (zh) * | 2018-12-03 | 2021-08-13 | 耐瑞唯信有限公司 | 虚拟平台系统的安全部署和操作 |
CN113260993B (zh) * | 2018-12-03 | 2024-03-01 | 纳格拉影像有限公司 | 虚拟平台系统的安全部署和操作 |
CN109858288B (zh) * | 2018-12-26 | 2021-04-13 | 中国科学院信息工程研究所 | 实现虚拟机安全隔离的方法与装置 |
CN109858288A (zh) * | 2018-12-26 | 2019-06-07 | 中国科学院信息工程研究所 | 实现虚拟机安全隔离的方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2008523511A (ja) | 2008-07-03 |
KR100984203B1 (ko) | 2010-09-28 |
US20060130060A1 (en) | 2006-06-15 |
KR20070086843A (ko) | 2007-08-27 |
EP1839142A1 (en) | 2007-10-03 |
WO2006063274A1 (en) | 2006-06-15 |
JP5042848B2 (ja) | 2012-10-03 |
US7757231B2 (en) | 2010-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101076781A (zh) | 对虚拟机监控程序的组件解除特权的系统和方法 | |
EP2191369B1 (en) | Reducing the latency of virtual interrupt delivery in virtual machines | |
CN102103517B (zh) | 高效嵌套虚拟化 | |
Suzuki et al. | {GPUvm}: Why Not Virtualizing {GPUs} at the Hypervisor? | |
US8719464B2 (en) | Efficient memory and resource management | |
US8595487B2 (en) | Virtualization hardware for device driver isolation | |
US9619279B2 (en) | Operating systems sharing supervisor address space with same virtual to physical mapping for supervisor address space using same translation formula with different translation tree | |
US20050216920A1 (en) | Use of a virtual machine to emulate a hardware device | |
US20130145051A1 (en) | Direct Device Assignment | |
Suzuki et al. | Gpuvm: Gpu virtualization at the hypervisor | |
US11106481B2 (en) | Safe hyper-threading for virtual machines | |
US11385927B2 (en) | Interrupt servicing in userspace | |
Bamiah et al. | Using virtual machine monitors to overcome the challenges of monitoring and managing virtualized cloud infrastructures | |
CN113626148B (zh) | 一种基于混合虚拟化的终端虚拟机生成系统及方法 | |
US20200218459A1 (en) | Memory-mapped storage i/o | |
Dibble et al. | Programming embedded systems: interacting with the embedded platform | |
Mitake et al. | Light-weighted virtualization layer for multicore processor-based embedded systems | |
Choffnes et al. | Operating Systems | |
Stallings | Process Description and Control | |
Krishnamurthy et al. | Differentiated I/O services in Virtualized environments | |
Maheshwari | Extensible Operating Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |