CN101449240A - 在运行中的操作系统下启动系统管理程序 - Google Patents
在运行中的操作系统下启动系统管理程序 Download PDFInfo
- Publication number
- CN101449240A CN101449240A CNA2007800177917A CN200780017791A CN101449240A CN 101449240 A CN101449240 A CN 101449240A CN A2007800177917 A CNA2007800177917 A CN A2007800177917A CN 200780017791 A CN200780017791 A CN 200780017791A CN 101449240 A CN101449240 A CN 101449240A
- Authority
- CN
- China
- Prior art keywords
- action
- operating system
- virtual machine
- supervisor
- computer
- 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.)
- Granted
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
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Abstract
在已有运行中的操作系统之后启动系统管理程序。操作系统自身可以启动系统管理程序。可以使用运行中的操作系统来取代系统管理程序来发现运行在计算系统上的物理资源。可以在系统管理程序工作之后启动其它操作系统或操作系统实例。
Description
背景
操作系统的一个主要功能是与计算系统上的物理资源进行接口。典型的操作系统可以针对以不恰当的方式访问物理资源进行保护。例如,在应用程序使用特定存储器段时,操作系统可以保护该段存储器不被同一操作系统所管理的另一应用程序更改。否则,应用程序可能不能如所期望的那样工作。这种访问保护通常是基于该操作系统是运行于计算系统上的唯一操作系统的假设。
然而,有时在同一计算系统上运行多个操作系统是有利的。在这种情况下,每一操作系统中的确保对资源的安全操作的固有保护可能不再足够。操作系统可能不能够控制另一操作系统对同一物理资源的访问,且甚至可能没有知晓其它运行中的操作系统的存在的机制。
系统管理程序是被配置为插入到一个或多个运行中的操作系统和所保护的物理资源(如处理器、I/O端口、存储器、中断等)之间的软件层。系统管理程序在功能上为操作系统多路复用受保护的物理资源,并以可视化的方式向每一操作系统显示资源。例如,作为一简单的示例,假定有两个操作系统正运行在具有一个处理器和1千兆字节(GB)随机存取存储器(RAM)的计算系统上。系统管理程序可以向每个操作系统各分配一半处理器周期,且向每个操作系统各分配一半存储器(512兆字节(MB)RAM)。此外,系统管理程序可以提供定址到每个操作系统的虚拟化范围的RAM,以便对两个操作系统看起来都只有512 MB RAM可用。
在操作系统尝试与物理资源进行通信以及物理资源尝试与操作系统进行通信时,系统管理程序执行适当的缓冲和变换以允许每个操作系统都仿佛其是运行在计算系统上的仅有的操作系统一样经历其环境。此外,系统管理程序以计算系统上的物理资源可由多个操作系统实例共享而仍被保护的方式来做到这点。
通常,在运行操作系统之前启动系统管理程序。这允许系统管理程序通过呈现物理资源的虚拟化视图来在虚拟机中启动操作系统为立即在虚拟机中启动操作系统,系统管理程序包括用于发现物理资源及其本质特征的大量代码。由于物理资源发现是在有任何运行中的操作系统之前完成的,所以操作系统不能依赖于该发现过程。因此,在系统管理程序中用于发现物理资源的代码可能相当复杂。
概述
虽然本发明的原理不限于该简要概述中概括的各实施例,但此处描述的某些实施例涉及在已有运行中的操作系统之后启动系统管理程序。尽管并非所需,但可以使用运行中的操作系统来取代系统管理程序来发现运行在计算系统上的物理资源。因此,如果需要,则系统管理程序可以依赖于操作系统来发现资源,而非必须具有执行相同功能的代码。
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图简述
为了进一步阐明本发明的以上和其它优点与特征,将参考附图中示出的其具体实施例来呈现本发明的更具体描述。可以理解,这些附图只描绘本发明的典型实施例,因此将不被认为是对其范围的限制。将通过使用附图用附加特征和细节来描述和说明这些实施例,附图中:
图1示出了可在其中采用本发明的各实施例的计算环境;
图2示出用于使用运行中的操作系统来启动系统管理程序的方法的流程图;
图3示出用于启动附加的操作系统实例的方法的流程图;
图4A示出其中根操作系统在没有系统管理程序时与计算系统的物理资源进行直接通信的配置;
图4B示出其中操作系统启动了系统管理程序以用作操作系统和物理资源之间的中介的配置;
图4C示出其中系统管理程序启动并支持了附加的操作系统的配置;以及
图5示出用于将操作系统传输到系统管理程序的环境的方法的流程图。
详细描述
根据本发明的各实施例,可以在已有运行中的操作系统之后启动系统管理程序。可以使用运行中的操作系统来取代系统管理程序来发现运行在计算系统上的物理资源。可以在系统管理程序工作之后启动其它操作系统实例。首先,将参考图1描述其中可实现本发明的原理的通用计算环境。然后,将参考后续附图描述关于本发明的各实施例的进一步的细节。
计算系统现在越来越多地采用各种形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括包含至少一个处理器以及其上能含有可由处理器执行的计算机可执行指令的存储器的任何设备或系统(或其组合)。存储器可采取任何形式,且可取决于计算系统的本质和形式。计算系统可在网络环境上分布,且可包括多个组成计算系统。
参考图1,在其最基本配置中,计算系统100一般包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,它可以是易失性的、非易失性的或两者的某种组合。易失性存储器的示例包括随机存取存储器(RAM)。非易失性存储器的示例包括只读存储器(ROM)、闪存等。术语“存储器”也可在此处用来指诸如物理存储介质等非易失性大容量存储。这样的存储可以是可移动或不可移动的,且可包括(但不限于)PCMCIA卡、磁盘和光盘、磁带等。
如此处所使用的,术语“模块”或“组件”可以指在计算系统上执行的软件对象或例程。此处描述的不同的组件、模块、引擎和服务可被实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。尽管此处描述的系统和方法可用软件实现,但用硬件以及软件和硬件的组合的实现也是可能的且已被想到。
在以下描述中,参考由一个或多个计算系统执行的动作描述本发明的各实施例。如果这样的动作用软件实现,则相关联计算系统中执行该动作的一个或多个处理器响应于执行了计算可执行指令而引导计算系统的操作。这样的操作的示例涉及对数据的操纵。计算机可执行指令(和所操纵的数据)可被存储在计算系统100的存储器104中。
计算系统100还可包含允许计算系统100例如通过网络110与其它计算系统通信的通信信道108。通信信道108是通信介质的示例。通信介质一般用诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、无线电、红外线和其它无线介质。如此处所用的术语计算机可读介质既包括存储介质又包括通信介质。
本发明的范围内的各实施例也包括用于承载或其上储存有计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可包括物理存储和/或存储器介质,诸如RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可用于承载或存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其它介质。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接完全视为计算机可读介质。因此,任何这样的连接被适当地称为计算机可读介质。以上的组合也应包括在计算机可读介质的范围之内。
计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于在此所述的具体特征或动作。相反,在此所述的具体特征和动作是作为实现权利要求的示例形式公开的。
图2示出用于运行中的操作系统启动系统管理程序的方法200的流程图。在本说明书和权利要求书中,“系统管理程序”是被配置为设置在一个或多个运行中的操作系统和受保护的物理资源之间的软件层。系统管理程序在功能上为操作系统多路复用受保护的物理资源,并以虚拟化的方式向每一操作系统显示资源。由此,系统管理程序用作操作系统和计算系统的物理资源之间的一种特殊的抽象层。
例如,作为一简单的示例,假定有两个操作系统正运行在具有一个处理器和1千兆字节(GB)随机存取存储器(RAM)的计算系统上。系统管理程序可以向每个操作系统各分配一半处理器周期,且向每个操作系统各分配一半存储器(512兆字节(MB)RAM)。此外,系统管理程序可以提供定址到每个操作系统的虚拟化范围的RAM,以便对两个操作系统看起来都只有512 MBRAM可用。在操作系统尝试与物理资源进行通信以及物理资源尝试与操作系统进行通信时,系统管理程序执行适当的缓冲和变换以允许每个操作系统都仿佛其是运行在计算系统上的仅有的操作系统一样经历其环境。
不同于传统的系统管理程序配置,本发明的各实施例准许在操作系统启动之后启动系统管理程序,即使操作系统已经发现了计算系统的物理资源。开始系统管理程序的操作系统将表示所发现的物理资源的状态的信息传递给系统管理程序。由此,系统管理程序不必拥有发现计算系统的物理资源的独立的代码。
一旦操作系统启动系统管理程序并将关于所发现的计算系统的物理资源的信息传递给系统管理程序之后,操作系统择可以暂停执行并将控制传递给系统管理程序。系统管理程序随后可以设置虚拟机实例来处理将来的对计算系统的物理资源的任何受保护资源的访问请求。用与受保护的物理资源的操作系统的概念相一致的状态来初始化虚拟机实例。在完成之后,操作系统在虚拟机环境中恢复。然而,在虚拟机环境中,操作系统通过系统管理程序与物理资源间接地进行接口,而非直接地与物理资源进行接口。这一改变对操作系统来说是透明的,因为专用于与操作系统进行通信的虚拟机尊重操作系统先前发现的关于物理资源的信息。
在某些情况下并对于某些受保护的物理资源,可能对操作系统来说不使用系统管理程序则不可能发现受保护的物理资源,并且因此也不可能以透明的方式稍后通过系统管理程序与同一受保护的物理资源间接地进行接口。在这种情况下,操作系统可被配置为理解其稍后将通过系统管理程序来操作,并且因而忽略稍后不能以透明的方式虚拟化的任何物理资源。例如,操作系统加载器可被配置为通知其它操作系统组件不要使用特定受保护的物理资源。
回头参考图2,方法200在根操作系统启动(动作201)时开始。“根”操作系统是启动系统管理程序的操作系统,而非可在系统管理程序工作之后启动的操作系统。图4A示出在其中操作系统401在没有系统管理程序时与计算系统的物理资源402直接进行通信404的操作阶段的配置400A。
根操作系统随后执行在图2的左边一栏中栏标题“根操作系统”下示出的若干动作。例如,根操作系统发现至少一个物理资源(动作211A)。操作系统通常具有在启动操作系统不久之后执行的发现计算系统的物理资源的指令。例如,参考图4A,操作系统401发现物理资源状态403。发现计算系统的物理资源可能是复杂的工作。
为在启动系统管理程序之前的状态下恢复操作系统,操作系统捕获在启动系统管理程序之前的物理机器的状态。在一实施例中,所捕获的状态包括所有物理处理器和物理APIC(高级可编程中断控制器)的状态。物理处理器状态包括:
1.通用寄存器。
2.浮点和XMM寄存器。
3.控制寄存器(CR)。
4.调试寄存器(DR)。
5.指令指针寄存器(RIP)、栈指针寄存器(RIP)和标志寄存器(RFLAGS)
6.CS、DS、SS、ES、FS、GS和TR段的段状态,包括段基础、限制和访问权限。
7.全局描述符表寄存器(GDTR)、中断描述符表寄存器(IDTR)和局部描述符表寄存器(LDTR)。
8.包括KernelGsBase,Star,Lstar,Cstar,Sfmask,SysenterCs,SysenterEip,SysenterEsp和ApicBase MSR的特定模型专用寄存器(MSR)。
物理本地APIC状态可以包括:
1.本地APIC ID
2.请求寄存器
3.服务寄存器
4.任务优先级寄存器
另外,在启动系统管理程序时,可以将硬件的某些其它方面作为引导参数提供给系统管理程序。这些可以包括:
1.当前和可能的逻辑处理器,包括可运行时热插入的那些
2.是否在BIOS中启用或禁用超线程
3.当前物理RAM范围—在引导系统管理程序时用RAM填充的系统物理地址范围
4.物理节点(包括在引导时不具有相关联的资源但可能在运行时填充的那些)
5.物理节点之间的存储器存取比率
6.系统管理程序必须访问的特定硬件特征(例如,电源管理定时器)的地址
操作系统还启动要插入到操作系统和物理资源之间的系统管理程序(动作211B)。例如,参考图4B,系统管理程序405被插入到根操作系统401和物理资源402之间。作为该启动的一部分,操作系统向系统管理程序提供关于至少要被保护的物理资源的状态信息。该状态信息包括系统管理程序发现要由系统管理程序来防护的受保护的物理资源的相关状态所需的所有信息。在一实施例中,状态信息可以包括上述的捕获状态。至少,状态信息至少包括对应的物理资源的标识。
同样,作为启动的一部分,操作系统将控制传递给系统管理程序。系统管理程序随后执行图2的右边一栏中标题“系统管理程序”下示出的动作。具体地,系统管理程序随后执行向根操作系统虚拟化计算系统的受保护的物理资源所必需的任务(动作221)。
例如,系统管理程序可以创建关于根操作系统的虚拟机实例(动作231)。参考图4B,框421表示关于操作系统401的虚拟机实例。一旦被初始化并工作之后,虚拟机实例421将用作关于操作系统401的物理资源402的代理。虚拟机实例421将从操作系统401接收对物理资源的服务请求,并将取决于虚拟机实例421可访问的状态信息来执行适当的请求变换和缓冲。虚拟机实例421随后将使得系统管理程序405从物理资源请求适当的服务。虚拟机实例421还可以视需要用适当的变换和缓冲来将请求结果报告回操作系统401。
取决于虚拟机实例可访问的状态信息,虚拟机实例421将不同地工作。系统管理程序尊重操作系统401已发现的关于物理资源402的状态信息。因此,系统管理程序405用操作系统提供的至少某些状态信息来初始化虚拟机实例421(动作232)。例如,系统管理程序405可以用操作系统所提供的捕获状态来初始化虚拟机。以此方式,用与表示操作系统所检测到的物理资源的信息相一致的状态初始化了虚拟机实例421。随后在虚拟机环境中恢复操作系统(动作233和动作214)。在该环境中,如图4B中可见的,取代操作系统401直接地与物理资源402进行接口,通过使用虚拟机实例421和系统管理程序405来为操作系统401虚拟化物理资源402。由于虚拟机421所使用的状态信息与操作系统401所发现的状态信息相一致,所以在某些实施例中改变对于操作系统401来说是透明的。
在一实施例中,经由仿真物理处理器行为的虚拟处理器抽象来提供虚拟化。类似地,其提供仿真物理APIC的行为的虚拟APIC。这如下实现:
1.将虚拟处理器的状态初始化为所捕获的物理处理器的状态。
2.将虚拟ACPI的状态初始化为所捕获的物理本地APIC的状态。
3.系统管理程序安装截取来防止操作系统访问特许物理硬件资源。例如,本地APIC在启动系统管理程序之前所处的客物理地址被标记为不存在以使所有对本地ACPI的访问都被俘获到系统管理程序。
在启动系统管理程序之后,系统管理程序可以启动附加操作系统,这些附加操作系统或是同一操作系统的实例或是不同的操作系统的实例。例如,参考图4C,可以附加地启动操作系统412和413以及可能的由省略号414所表示的其它操作系统。图3示出用于同样为附加操作系统虚拟化物理资源的方法300的流程图。在要启动附加操作系统时,系统管理程序首先启动对应的虚拟机实例(动作301),随后通过该动作启动操作系统(动作302)。系统管理程序使用对应的虚拟机实例来向对应的附加操作系统虚拟化物理资源(动作303)。
在启动操作系统后每一操作系统都执行物理资源的发现时,各种信息请求由对应的虚拟机实例来截取。取代找出与物理资源相关联的实际状态信息,对应的虚拟机向操作系统提供虚拟化的状态信息。
有时,启动系统管理程序的操作系统可能处于不同的环境类型。例如,可能操作系统以32位模式操作,而要启动的系统管理程序要以64位模式操作,或相反。类似地,操作系统和系统管理程序能以不同的分页模式操作。即使操作系统和系统管理程序在不同的环境中操作时,本发明的某些实施例也允许操作系统启动系统管理程序。
图5示出供操作系统进入系统管理程序的环境以准备启动系统管理程序的方法500的流程图。从图5的启动操作系统的动作201,操作系统首先使任何不可屏蔽的中断无法起作用(动作501),并屏蔽任何可屏蔽中断。能以多种不同的方法来使不可屏蔽中断无法起作用。毕竟,在操作系统转移到系统管理程序操作环境时,应该注意,要确保在加载系统管理程序的初始阶段之前没有中断和异常发生。如果在离开操作系统环境后而在进入系统管理程序环境前发生中断或异常,处理器可能不能够处理该中断或异常,因为没有中断描述符表或栈。大部分异常都可被容易地避免,因为它们是软件初始化的。可以在该过程期间通过将RFLAGS寄存器中的IF位清零来抑制可屏蔽的硬件中断。
可以通过以下两种机制的任一种来抑制不可屏蔽中断(NMI):
1.自传递一NMI并且不执行IRET指令:这可以通过临时地修改操作系统的中断描述符表中的NMI处理程序地址以指向不同的处理程序来达到。随后NMI可被传递到当前处理器。这将使得处理器跳转到NMI处理程序所提供的地址。在NMI处理程序中,可以还原原始NMI处理程序地址并继续。这将有效地屏蔽进一步的NMI,因为在x86架构上,在接收到一个NMI之后则屏蔽各NMI,直到执行了IRET指令为止。
2.总是以有效的中断描述符表(IDT)和栈来运行:这可通过创建临时IDT和栈来达到。临时页表可以将临时IDT、NMI处理程序地址和栈映射在其原始虚拟地址及其各自的物理地址。这确保如果NMI在处理器以临时页表运行时到达,则其将被正确地传递到处理程序。
一旦中断被屏蔽或以其它方式变为无法起作用(动作501),则创建临时虚拟机实例(动作502)。操作系统随后用引起截取的指令来初始化临时虚拟机实例(动作503)。截取是从操作系统到系统管理程序的控制传输。在恢复了临时虚拟机实例时(动作504),该虚拟机实例执行引起截取的指令,且截取被由此生成(动作505)。因此,临时虚拟机实例开始使用系统管理程序状态来执行(动作506),从而使得操作系统继续以系统管理程序模式操作(动作507)。操作系统随后可以启动系统管理程序。可任选地,可以毁去临时虚拟机实例,因为其只是将操作系统置于启动系统管理程序所需要的系统管理程序模式所需要的。
因此,本发明的各实施例即使在已有运行中的操作系统存在于计算系统上时仍准许启动系统管理程序。在某些实施例中,即使操作系统和系统管理程序处于不同的环境中,操作系统也可以启动系统管理程序。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方式的含义和范围内的所有改变应被权利要求书的范围涵盖。
Claims (20)
1.一种包括具有一个或多个计算机可执行指令的一种或多种计算机可读介质(104)的计算机程序产品,所述一个或多个计算机可执行指令在由计算系统(100)的一个或多个处理器(102)执行时,使得所述计算系统(100)执行一种用于使用运行中的操作系统来启动系统管理程序的方法,所述方法包括:
操作系统(401)启动(211B)系统管理程序(405)的动作;以及
所启动的系统管理程序(405)向启动所述系统管理程序(405)的操作系统(401)虚拟化(221)所述计算系统(100)的至少一个物理资源(402)的动作。
2.如权利要求1所述的计算机程序产品,其特征在于,所述一个或多个计算机可读介质是物理存储器或存储介质。
3.如权利要求1所述的计算机程序产品,其特征在于,所述一个或多个计算机可读介质是物理存储器介质。
4.如权利要求1所述的计算机程序产品,其特征在于,所述一个或多个计算机可读介质是物理存储介质。
5.如权利要求1所述的计算机程序产品,其特征在于,所述计算机可执行指令被进一步结构化,以便在由所述计算系统的一个或多个处理器执行时,使得所述计算系统进一步执行以下动作:
所述操作系统发现所述至少一个物理资源的动作;以及
所述操作系统向所述系统管理程序提供关于所述至少一个物理资源的状态信息的动作,所述状态信息至少包括对应的物理资源的标识。
6.如权利要求5所述的计算机程序产品,其特征在于,所述计算机可执行指令被进一步结构化,以便在由所述计算系统的一个或多个处理器执行时,使得所述计算系统进一步执行以下动作:
所述系统管理程序启动关于所述操作系统的虚拟机实例的动作;
用所述操作系统提供的状态信息来初始化所述虚拟机实例的动作;
在初始化所述虚拟机实例之后,所述系统管理程序恢复所述操作系统的动作;以及
在恢复了所述操作系统之后,所述系统管理程序使用所述虚拟机实例来虚拟化所述至少一个物理资源的动作。
7.如权利要求6所述的计算机程序产品,其特征在于,所述计算机可执行指令被进一步结构化,以便在由所述计算系统的一个或多个处理器执行时,使得所述计算系统进一步为在所述计算系统上启动的每一附加操作系统执行以下动作:
所述系统管理程序启动关于每一附加操作系统的对应的虚拟机实例的动作;
在启动所述对应的虚拟机实例之后,启动所述对应的附加操作系统的动作;以及
所述系统管理程序使用所述对应的虚拟机实例来向所述对应的附加操作系统虚拟化所述至少一个物理资源的动作。
8.如权利要求1所述的计算机程序产品,其特征在于,所述计算机可执行指令被进一步结构化,以便在由所述计算系统的一个或多个处理器执行时,使得所述计算系统进一步执行以下动作:
所启动的系统管理程序向启动所述系统管理程序的操作系统虚拟化所述计算系统的至少一个物理资源的动作。
9.如权利要求1所述的计算机程序产品,其特征在于,所述计算机可执行指令还包括在由所述计算系统的一个或多个处理器执行时,使得所述计算系统执行以下动作的计算机可执行指令,所述动作包括:
所述操作系统创建临时虚拟机实例的动作;
用生成截取的指令来初始化所述临时虚拟机实例的动作;
在所述初始化动作之后恢复所述临时虚拟机实例的动作;
在检测到得自所述恢复所述临时虚拟机实例的动作的截取后,使用系统管理程序状态来启动所述临时虚拟机实例来操作的动作。
10.如权利要求9所述的计算机程序产品,其特征在于,所述计算机可执行指令还包括在由所述计算系统的一个或多个处理器执行时,使得所述计算系统在创建所述临时虚拟机实例之前执行以下动作的计算机可执行指令,所述动作包括:
使任何不可屏蔽中断无法起作用的动作。
11.如权利要求9所述的计算机程序产品,其特征在于,所述计算机可执行指令还包括在由所述计算系统的一个或多个处理器执行时,使得所述计算系统在使用所述系统管理程序状态启动所述临时虚拟机实例之后执行以下动作的计算机可执行指令,所述动作包括:
启动所述系统管理程序的动作;以及
毁去所述临时虚拟机实例的动作。
12.如权利要求11所述的计算机程序产品,其特征在于,所述操作系统和系统管理程序中的一个以32位模式操作,而所述操作系统和系统管理程序中的另一个以64位模式操作。
13.如权利要求11所述的计算机程序产品,其特征在于,所述操作系统和系统管理程序使用不同的分页机制来操作。
14.一种用于使用运行中的操作系统(401)来启动系统管理程序(405)的启动系统管理程序(405)的方法(200),所述方法包括:
系统管理程序(405)从根操作系统(401)接收表示所述操作系统(401)检测到的多个物理资源(212)的信息的动作;
所述系统管理程序(401)启动(231)关于所述根操作系统的虚拟机实例的动作;
用与所述表示所述操作系统检测到的所述多个物理资源的信息相一致的状态来初始化(232)所述虚拟机的动作;
恢复(233)所述根操作系统以使所述根操作系统经由使用所述状态初始化的所述虚拟机实例与所述多个物理资源间接地进行接口的动作。
15.如权利要求14所述的方法,其特征在于,在所述系统管理程序运行后,还包括:
启动一个或多个附加操作系统的动作。
16.如权利要求15所述的方法,其特征在于,还包括关于所述一个或多个附加操作系统的每一个的以下动作:
初始化对应的虚拟机实例以与所述对应的附加操作系统进行接口的动作。
17.一种包括一种或多种计算机可读介质(104)的计算机程序产品,所述计算机可读介质上具有:
操作系统(401);以及
由所述操作系统(401)启动并被配置为向所述操作系统(401)虚拟化所述计算系统的至少一个物理资源(402)的系统管理程序(405)。
18.如权利要求17所述的计算机程序产品,其特征在于,所述一个或多个计算机可读介质是物理存储器或存储介质。
19.如权利要求17所述的计算机程序产品,其特征在于,所述一个或多个计算机可读介质是物理存储器介质。
20.如权利要求17所述的计算机程序产品,其特征在于,所述一个或多个计算机可读介质是物理存储介质。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/383,455 | 2006-05-15 | ||
US11/383,455 US8176485B2 (en) | 2006-05-15 | 2006-05-15 | Launching hypervisor under running operating system |
PCT/US2007/011545 WO2007133741A1 (en) | 2006-05-15 | 2007-05-14 | Launching hypervisor under running operating system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101449240A true CN101449240A (zh) | 2009-06-03 |
CN101449240B CN101449240B (zh) | 2012-06-06 |
Family
ID=38686563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800177917A Active CN101449240B (zh) | 2006-05-15 | 2007-05-14 | 在运行中的操作系统下启动系统管理程序 |
Country Status (14)
Country | Link |
---|---|
US (1) | US8176485B2 (zh) |
EP (1) | EP2024826B1 (zh) |
JP (1) | JP2009537897A (zh) |
KR (1) | KR20090009866A (zh) |
CN (1) | CN101449240B (zh) |
AU (1) | AU2007249730A1 (zh) |
BR (1) | BRPI0711369A8 (zh) |
CA (1) | CA2648874A1 (zh) |
ES (1) | ES2744379T3 (zh) |
MX (1) | MX2008014548A (zh) |
NO (1) | NO20084432L (zh) |
RU (1) | RU2446447C2 (zh) |
TW (1) | TW200813833A (zh) |
WO (1) | WO2007133741A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714821A (zh) * | 2013-12-17 | 2015-06-17 | 华为技术有限公司 | 操作系统实例创建方法及装置 |
CN111868687A (zh) * | 2018-03-20 | 2020-10-30 | 三菱电机株式会社 | 信息处理装置、方法及程序 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8898355B2 (en) * | 2007-03-29 | 2014-11-25 | Lenovo (Singapore) Pte. Ltd. | Diskless client using a hypervisor |
US7941657B2 (en) * | 2007-03-30 | 2011-05-10 | Lenovo (Singapore) Pte. Ltd | Multi-mode mobile computer with hypervisor affording diskless and local disk operating environments |
US8310336B2 (en) | 2008-10-10 | 2012-11-13 | Masimo Corporation | Systems and methods for storing, analyzing, retrieving and displaying streaming medical data |
US8156298B1 (en) * | 2007-10-24 | 2012-04-10 | Adam Stubblefield | Virtualization-based security apparatuses, methods, and systems |
US9262194B2 (en) * | 2008-06-10 | 2016-02-16 | Apple Inc. | Virtual machine communications |
US8032680B2 (en) * | 2008-06-27 | 2011-10-04 | Microsoft Corporation | Lazy handling of end of interrupt messages in a virtualized environment |
US10007758B2 (en) | 2009-03-04 | 2018-06-26 | Masimo Corporation | Medical monitoring system |
US9323894B2 (en) | 2011-08-19 | 2016-04-26 | Masimo Corporation | Health care sanitation monitoring system |
US10032002B2 (en) | 2009-03-04 | 2018-07-24 | Masimo Corporation | Medical monitoring system |
JP5749658B2 (ja) | 2009-03-04 | 2015-07-15 | マシモ・コーポレイション | 医療監視システム |
US20100234718A1 (en) * | 2009-03-12 | 2010-09-16 | Anand Sampath | Open architecture medical communication system |
US8135818B2 (en) * | 2009-06-22 | 2012-03-13 | Red Hat Israel, Ltd. | Automatic virtual machine migration in mixed SBC/CBC environment |
US8281018B2 (en) * | 2009-06-22 | 2012-10-02 | Red Hat Israel, Ltd. | Method for automatically providing a client with access to an associated virtual machine |
US8341213B2 (en) * | 2009-06-22 | 2012-12-25 | Red Hat Israel, Ltd. | Method for improving boot time of a client having a virtualized operating environment |
US8738781B2 (en) | 2009-06-22 | 2014-05-27 | Red Hat Israel, Ltd. | Launching a virtual machine associated with a client during startup |
KR101640769B1 (ko) | 2009-11-06 | 2016-07-19 | 삼성전자주식회사 | 가상화 시스템 및 그것의 명령어 실행 방법 |
KR101284791B1 (ko) * | 2009-12-04 | 2013-07-10 | 한국전자통신연구원 | 휴대용 단말기를 이용한 컴퓨터 운영체제 구현 방법 및 그 장치 |
KR20110072922A (ko) * | 2009-12-23 | 2011-06-29 | 삼성전자주식회사 | 화상형성장치의 추가 확장기능을 실행하는 방법 및 이를 수행하는 화상형성장치 |
US8839239B2 (en) * | 2010-06-15 | 2014-09-16 | Microsoft Corporation | Protection of virtual machines executing on a host device |
KR101105528B1 (ko) * | 2010-06-29 | 2012-01-13 | 삼성에스디에스 주식회사 | 클라이언트 하이퍼바이저 기반의 광고 시스템에서 사용자에 의해 광고 제어가 가능한 광고용 단말장치 및 방법 |
US9075642B1 (en) * | 2011-09-30 | 2015-07-07 | Emc Corporation | Controlling access to resources using independent and nested hypervisors in a storage system environment |
KR101692733B1 (ko) * | 2012-01-30 | 2017-01-04 | 엘지전자 주식회사 | 가상 머신 관리 방법 및 이를 위한 장치 |
US8958420B1 (en) * | 2012-03-30 | 2015-02-17 | Juniper Networks, Inc. | Methods and apparatus for virtualizing switch control plane engine |
RU2537814C9 (ru) * | 2013-02-06 | 2018-07-13 | Закрытое акционерное общество "Крафтвэй корпорэйшн ПЛС" | Способ запуска гипервизора в компьютерной системе на ранней стадии загрузки компьютера |
RU2538286C9 (ru) * | 2013-02-06 | 2018-07-12 | Закрытое акционерное общество "Крафтвэй корпорэйшн ПЛС" | Способ запуска гипервизора в компьютерной системе на ранней стадии загрузки компьютера |
WO2017049594A1 (en) | 2015-09-25 | 2017-03-30 | Intel Corporation | Efficient memory activation at runtime |
RU2609761C1 (ru) * | 2015-09-30 | 2017-02-02 | Акционерное общество "Лаборатория Касперского" | Способ выполнения кода в режиме гипервизора |
US10108446B1 (en) * | 2015-12-11 | 2018-10-23 | Fireeye, Inc. | Late load technique for deploying a virtualization layer underneath a running operating system |
US20210026950A1 (en) * | 2016-03-07 | 2021-01-28 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
US10318311B2 (en) * | 2016-06-30 | 2019-06-11 | Amazon Technologies, Inc. | Memory allocation techniques at partially-offloaded virtualization managers |
US10127068B2 (en) | 2016-06-30 | 2018-11-13 | Amazon Technologies, Inc. | Performance variability reduction using an opportunistic hypervisor |
DE112018007748T5 (de) * | 2018-12-18 | 2021-04-08 | Intel Corporation | Berechnungsverfahren und Vorrichtung mit Mehrphasen/stufen-Start |
CN112579014A (zh) * | 2019-09-27 | 2021-03-30 | 宝能汽车集团有限公司 | 基于Hypervisor的多屏显示方法、系统以及车辆、存储介质 |
RU2770136C1 (ru) * | 2021-04-22 | 2022-04-14 | Общество С Ограниченной Ответственностью "Кировский Региональный Центр Деловой Информации" | Способ защиты компьютерной системы от несанкционированного доступа к информации, реализуемый на уровне аппаратной платформы посредством механизмов виртуализации, и устройство для его осуществления |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US6530078B1 (en) * | 1998-03-26 | 2003-03-04 | Alexander V. Shmid | Virtual machines in OS/390 for execution of any guest system |
US6567933B1 (en) * | 1999-02-19 | 2003-05-20 | Texas Instruments Incorporated | Emulation suspension mode with stop mode extension |
US6892383B1 (en) | 2000-06-08 | 2005-05-10 | International Business Machines Corporation | Hypervisor function sets |
US6990663B1 (en) | 2000-06-08 | 2006-01-24 | International Business Machines Corporation | Hypervisor virtualization of OS console and operator panel |
US7093239B1 (en) * | 2000-07-14 | 2006-08-15 | Internet Security Systems, Inc. | Computer immune system and method for detecting unwanted code in a computer system |
US7085705B2 (en) | 2000-12-21 | 2006-08-01 | Microsoft Corporation | System and method for the logical substitution of processor control in an emulated computing environment |
US7035963B2 (en) | 2000-12-27 | 2006-04-25 | Intel Corporation | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
GB0112781D0 (en) | 2001-05-25 | 2001-07-18 | Global Continuity Plc | Method for rapid recovery from a network file server failure |
US7428485B2 (en) * | 2001-08-24 | 2008-09-23 | International Business Machines Corporation | System for yielding to a processor |
JP2003202964A (ja) * | 2002-01-09 | 2003-07-18 | Hitachi Ltd | 計算機システムの制御方法、計算機システム、記憶装置の制御方法及び記憶装置 |
US20050160423A1 (en) * | 2002-12-16 | 2005-07-21 | Bantz David F. | Enabling a guest virtual machine in a windows environment for policy-based participation in grid computations |
US7913251B2 (en) | 2003-12-12 | 2011-03-22 | International Business Machines Corporation | Hypervisor virtualization of OS console and operator panel |
US20060070065A1 (en) * | 2004-09-29 | 2006-03-30 | Zimmer Vincent J | Memory support for heterogeneous virtual machine guests |
US8060683B2 (en) | 2004-12-17 | 2011-11-15 | International Business Machines Corporation | System, method and program to preserve a cache of a virtual machine |
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 |
-
2006
- 2006-05-15 US US11/383,455 patent/US8176485B2/en not_active Expired - Fee Related
-
2007
- 2007-05-03 TW TW096115773A patent/TW200813833A/zh unknown
- 2007-05-14 RU RU2008145040/08A patent/RU2446447C2/ru active
- 2007-05-14 MX MX2008014548A patent/MX2008014548A/es not_active Application Discontinuation
- 2007-05-14 BR BRPI0711369A patent/BRPI0711369A8/pt not_active Application Discontinuation
- 2007-05-14 EP EP07777032.9A patent/EP2024826B1/en active Active
- 2007-05-14 KR KR1020087027870A patent/KR20090009866A/ko not_active Application Discontinuation
- 2007-05-14 CN CN2007800177917A patent/CN101449240B/zh active Active
- 2007-05-14 ES ES07777032T patent/ES2744379T3/es active Active
- 2007-05-14 WO PCT/US2007/011545 patent/WO2007133741A1/en active Application Filing
- 2007-05-14 CA CA002648874A patent/CA2648874A1/en not_active Abandoned
- 2007-05-14 JP JP2009511012A patent/JP2009537897A/ja not_active Withdrawn
- 2007-05-14 AU AU2007249730A patent/AU2007249730A1/en not_active Abandoned
-
2008
- 2008-10-21 NO NO20084432A patent/NO20084432L/no not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714821A (zh) * | 2013-12-17 | 2015-06-17 | 华为技术有限公司 | 操作系统实例创建方法及装置 |
CN104714821B (zh) * | 2013-12-17 | 2018-07-31 | 华为技术有限公司 | 操作系统实例创建方法及装置 |
CN111868687A (zh) * | 2018-03-20 | 2020-10-30 | 三菱电机株式会社 | 信息处理装置、方法及程序 |
CN111868687B (zh) * | 2018-03-20 | 2021-09-17 | 三菱电机株式会社 | 信息处理装置、方法及程序 |
Also Published As
Publication number | Publication date |
---|---|
WO2007133741A1 (en) | 2007-11-22 |
CA2648874A1 (en) | 2007-11-22 |
RU2446447C2 (ru) | 2012-03-27 |
EP2024826A4 (en) | 2012-07-11 |
US8176485B2 (en) | 2012-05-08 |
JP2009537897A (ja) | 2009-10-29 |
CN101449240B (zh) | 2012-06-06 |
EP2024826B1 (en) | 2019-06-26 |
RU2008145040A (ru) | 2010-05-20 |
EP2024826A1 (en) | 2009-02-18 |
US20070266389A1 (en) | 2007-11-15 |
KR20090009866A (ko) | 2009-01-23 |
NO20084432L (no) | 2008-12-12 |
BRPI0711369A2 (pt) | 2011-11-01 |
AU2007249730A1 (en) | 2007-11-22 |
TW200813833A (en) | 2008-03-16 |
BRPI0711369A8 (pt) | 2017-01-17 |
MX2008014548A (es) | 2008-11-27 |
ES2744379T3 (es) | 2020-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101449240B (zh) | 在运行中的操作系统下启动系统管理程序 | |
CN101213518B (zh) | 通过指令组设陷来优化os上下文切换的系统和方法 | |
US7779305B2 (en) | Method and system for recovery from an error in a computing device by transferring control from a virtual machine monitor to separate firmware instructions | |
US9483639B2 (en) | Service partition virtualization system and method having a secure application | |
EP1761850B1 (en) | Support for nested faults in a virtual machine environment | |
US20140053272A1 (en) | Multilevel Introspection of Nested Virtual Machines | |
KR101823888B1 (ko) | 신뢰 컴퓨팅을 위한 다중노드 허브 | |
US20150261952A1 (en) | Service partition virtualization system and method having a secure platform | |
CN111858004A (zh) | 基于tee扩展的计算机安全世界实时应用动态加载方法及系统 | |
CN102207886A (zh) | 虚拟机快速仿真辅助 | |
US9465617B1 (en) | Implementing upcall from secure to non-secure mode by injecting exception into non-secure mode | |
EP2905700B1 (en) | Operating system recovery method, apparatus and terminal device | |
US10108800B1 (en) | ARM processor-based hardware enforcement of providing separate operating system environments for mobile devices with capability to employ different switching methods | |
US10552345B2 (en) | Virtual machine memory lock-down | |
CN110968392B (zh) | 一种升级虚拟化模拟器的方法和装置 | |
US10565141B1 (en) | Systems and methods for hiding operating system kernel data in system management mode memory to thwart user mode side-channel attacks | |
US10691471B2 (en) | Conflict resolution for strong symbols | |
Im et al. | On-demand virtualization for live migration in bare metal cloud | |
US11669620B2 (en) | System platform initializer for mixed-critical systems | |
Im et al. | On-Demand Virtualization for Post-Copy OS Migration in Bare-Metal Cloud | |
CN110795231A (zh) | 一种虚拟cpu的处理方法及装置 | |
KR20080079852A (ko) | Cpu 가상화 방법 | |
CN107209727B (zh) | 存储系统 | |
CN118036092A (zh) | 一种基于硬件辅助虚拟化的软件完整性保护方法与系统 | |
CN113312295A (zh) | 使用控制器的系统重置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150430 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150430 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |