用于系统管理请求的虚拟高特权模式的制作方法
【专利摘要】一种处理系统管理请求的计算系统和方法。该计算系统包括在由虚拟机监视器管理的受信任域内的虚拟高特权模式。该虚拟高特权模式处理系统管理请求。
【专利说明】用于系统管理请求的虚拟高特权模式
【背景技术】
[0001]电子设备,如计算机或其它类型设备,能够包括负责启动该电子设备的基本输入/输出系统(BIOS)。在启动期间,BIOS对电子设备的组件进行初始化和配置,并且加载电子设备中的操作系统。此外,BIOS还能够提供其它服务,如电源管理服务、热管理服务、BIOS更新服务等等。
【专利附图】
【附图说明】
[0002]关于以下附图描述一些实施例:
[0003]图1是根据虚拟高特权模式的示例实现方式的计算系统的框图;
[0004]图2是根据虚拟高特权模式的示例实现方式的计算系统的框图;
[0005]图3是根据示例实现方式的处理系统管理请求的方法的流程图;
[0006]图4是根据示例实现方式的处理系统管理请求的方法的流程图;以及
[0007]图5是根据计算机可读介质的示例实现方式的计算系统的框图。
【具体实施方式】
[0008]基本输入/输出系统(BIOS)通常是电子设备启动时该电子设备运行的最初代码。电子设备的示例包括计算机(例如台式计算机、笔记本计算机、平板计算机、服务器计算机等)、手持设备(例如个人数字助理、智能电话等)、电子仪器、游戏控制台或任何其它类型的电子设备。BIOS对电子设备的多个硬件组件进行初始化和配置,并且加载和启动电子设备的操作系统(0S)。用于BIOS的代码通常存储在非易失性存储器上,如闪存设备或其它类型的可编程只读存储器(ROM)上。
[0009]BIOS还提供能够在电子设备中调用的其它功能。BIOS的这样的其它功能中许多功能经常在电子设备中通过进入系统管理模式(SMM)来运行,系统管理模式(SMM)是0S运行被暂停的操作模式。另外,在具有多个处理器或处理器核的电子设备中,多个处理器或处理器核中除一个处理器或处理器核以外的全部处理器或处理器核可以在SMM模式中被禁用。为了进入SMM模式,断言一系统管理中断(SMI ),并且运行SMI处理器程序(其是BIOS的一部分),通常在相对高特权模式下运行SMI处理器程序,以执行不同功能。
[0010]可存在与进入SMM模式来执行BIOS功能相关的多种问题。首先,由于0S运行被暂停,所以不能进行正常的电子设备操作。另外,在处理器或处理器核(多个处理器或多个处理器核)在SMM模式期间被禁用的电子设备中,该电子设备的处理能力的一部分被临时解激活,这意味着这样的处理能力的一部分不可用来执行其它任务。而且,可能难以预测SMM处理会花费多长时间,这可导致电子设备操作中的不确定性。此外,由于特定BIOS功能可能花费相对长的一段时间来完成(例如大约数分钟),所以状态信息也许不可由电子设备的用户利用,这可造成用户的不安体验,这是因为用户不能够断定电子设备是否正在正常工作。
[0011]安全也可能是个问题,因为恶意软件可能在SMM操作期间进行攻击,这可能造成系统出错。为避免对SMM操作的任何这样攻击而采取的安全手段能够引起电子设备的设计方面的增加的复杂度。这样的安全手段的示例包括锁定特定存储区域,该特定存储区域包括寄存器和/或诸如闪存设备或其它类型的可编程只读存储器之类的非易失性存储器的一部分。另外,安全手段可以对特定BIOS功能(如BIOS代码更新)的性能带来约束,这可能迫使这样的BIOS功能仅在特定时刻(如系统重启动时)执行。
[0012]在SMM中经常执行的多种功能的示例能够包括下面中任一种或下面的组合:更新BIOS代码的服务;访问或修改BIOS的设置的服务;执行热管理(例如控制冷却设备,如电子设备中的风扇)的热管理服务;电源管理服务(移除或恢复对特定硬件组件的供电);使电子设备在不同的供电状态之间转变的服务(例如休眠状态、睡眠状态、完全开启状态等);处理电子设备的按键或按键序列的激活(这包括激活多个按键的某一组合)的服务(例如开启/关闭无线接口组件的按键、执行某一预限定任务的热键序列等等);与电子设备的环境光传感器(用于检测电子设备周围的环境光)关联的服务;改变电子设备中的硬件组件的设置的服务;改变电子设备的可启动设备的启动顺序的服务;用于处理0S和BIOS之间的特定一类调用(例如中断15调用)的服务;运行嵌入式控制器的命令的服务;以及在特定条件下支持合法外围设备(例如通用串行总线设备)的服务。
[0013]尽管上面列出多个示例BIOS功能,但是注意到在其它实现方式中能够使用其它或可替代的BIOS功能。
[0014]根据一些实现方式,为了更稳健的系统行为,可在电子设备的特权域(privilegeddomain)中提供BIOS的功能,其中特权域是电子设备的相对安全的并且具有不可由电子设备中的其它实体利用的特定预限定特权的域。一般来说,“特权域”指具有预限定的特权的域,该预限定的特权允许该域内的实体执行电子设备中其它实体(例如0S、应用程序等)不被允许执行的功能。另外,特权域还具有安全机制,以保护该特权域不受未被授权的访问或攻击影响。
[0015]通过将SMM模式的功能移动至虚拟高特权模式,电子设备不必进入SMM模式来执行已经被移动到虚拟高特权模式的这样BIOS功能。在一些实现方式中,能够从硬件中完全消除SMM操作。在其它实现方式中,仍能够启用SMM操作来执行特定BIOS功能,同时通过虚拟高特权模式执行剩余的BIOS功能。
[0016]特权域的示例包括下面中的任一种或某一组合:域“0”,其经常是由执行管理任务的虚拟机监视器(还被称为管理程序(hypervisor))启动的第一域;虚拟机监视器(或管理程序)的一部分;来宾虚拟机,具有预限定的设置以向该来宾虚拟机提供增强的特权和/或安全;或者电子设备中具有预限定的特殊特权和/或安全机制的另一类型的域。安全的特权域能够包括受信任的运行时B10S,该受信任的运行时BIOS可包括用于安全地处理系统管理指令的虚拟高特权模式,而不必具有在与虚拟机监视器的对等层次上的组件(如系统管理模式转换监视器),以使虚拟高特权模式与其它域分离以及保护虚拟高特权模式不受其它域影响。
[0017]“虚拟机”(还被称为“虚拟装置”或“虚拟分割”)指为对物理机器进行虚拟化或模拟而提供的物理机器(电子设备)的某一部分或片段。从用户或应用的角度看,虚拟机看上去像物理机器。虚拟机包括操作系统(被称为来宾操作系统)以及至少一个应用程序。
[0018]还被称为管理程序的虚拟机监视器(VMM)管理电子设备的包括硬件组件在内的物理资源中由虚拟机进行的分配。VMM对物理资源进行虚拟化。每个虚拟机具有由VMM管理的关联的虚拟化物理资源。VMM处理对物理资源的请求。
[0019]参考附图,图1是根据虚拟高特权模式的示例实现方式的计算系统的框图。计算系统100可包括处理器110。处理器110是计算系统100的硬件105的一部分。处理器110可以是通用处理器或专用处理器。作为示例,硬件105还能够包括:1/0设备、易失性存储器、从存储、闪存、网络接口控制器、图形适配器等。该系统可包括虚拟机监视器115,以管理硬件组件的物理资源和虚拟化物理资源。计算系统包括附接至来宾域(guest domain) 130的虚拟基本输入输出系统(vB10S)135。来宾域130是可以运行诸如微软视窗、Linux、Unix或别的操作系统之类的操作系统的虚拟机。
[0020]在一些示例中,特权域120是域“0”,其是在系统启动时由VMM102启动的管理域并且具有增强的特权和安全机制。由域“O”执行的任务的示例包括创建和配置来宾域。域“O”和来宾域中的每个域均被认为是对应的虚拟机。特权域120能够与VMM115分离。在替代实现方式中,特权域120能够是VMM115的一部分。在这样的替代实现方式中,受信任的运行时BIOS功能125是VMM115的一部分。特权域120在其由受信任的VMM115生成或管理时可以是受信任的域(trusted domain)。
[0021]在特权域120中提供BIOS功能125实现“云中的BIOS”,该“云中的BIOS”还被称为“受信任的运行时B10S125”或BIOS.V。“云(cloud)”可以指特权域120 (或某一其它受信任的域)。云可位于计算系统100内或计算系统100外。例如,包含受信任的运行时B10S125功能的云可以由计算系统100通过网络访问。网络可以是例如局域网、广域网或环球网。
[0022]计算系统100可以包括虚拟高特权模式140,以处理系统管理请求。系统管理请求可以包括系统管理中断和系统管理指令中至少一种。系统管理请求可以由例如来宾域130或者特权域120发出。尽管虚拟高特权模式140是在特权域内的受信任的运行时BIOS内示出的,但是其能够位于由VMM生成或管理的任何受信任的域内或者包含在VMM115本身内。由VMM生成或管理的、可能是受信任的域的其它域可以包括特权域120、虚拟装置、来宾域130。
[0023]处理系统管理请求的虚拟高特权模式140能够防止处理器110或其它硬件105进入系统管理模式,该系统管理模式引起处理器停止运行,直至该系统管理请求被处理。例如,如果来宾域130生成系统管理请求,则虚拟机监视器115能够防止该系统管理请求将处理器110带入系统管理模式并且将该系统管理请求重定向至虚拟高特权模式140来处理该请求。虚拟高特权模式可以访问硬件来执行另外会在处理器的系统管理模式中执行的系统配置改变。在一个示例中,对硬件105的访问能够由虚拟机监视器115提供。
[0024]图2是根据虚拟高特权模式的示例实现方式的计算系统的框图。计算系统200可包括处理器210。处理器210是计算系统200的硬件205的一部分。该硬件可包括固件245,固件245可以包括基本输入/输出系统(BIOS) 250以及可扩展固件接口(EFI) 255。B10S250可以被称为物理BIOS。“物理BIOS”指驻留在诸如闪存或其它可编程的只读存储器之类的非易失性存储器内的并且应当在计算系统200启动时运行的BIOS代码。在一些实现方式中,物理BIOS可以是BIOS的精简(简化)版本,这是因为系统管理模式的至少一部分被移至虚拟高特权模式。如果实现受信任的运行时B10S225,则由于与受信任的运行时B10S225附接的信任,物理B10S250可以继续被解锁来允许变化。处理器210可以是通用处理器或专用处理器。该系统可以包括虚拟机监视器VMM215,以管理硬件组件的物理资源和虚拟化物理资源。计算系统100包括附接至来宾域230的虚拟基本输入输出系统(vBIOS)235。来宾域230是可以运行诸如微软视窗、Linux、Unix或别的操作系统之类的操作系统的虚拟机。
[0025]在一些示例中,特权域220是域“0”,其是在系统启动时由VMM202启动的、具有增强的特权和安全机制的管理域。由域“0”执行的任务的示例包括创建和配置来宾域。域“0”和来宾域中的每个域均被认为是对应的虚拟机。特权域220能够与VMM215分离。在替代实现方式中,特权域220可以是VMM215的一部分。在这样的替代实现方式中,受信任的运行时B10S225是VMM215的一部分。
[0026]虚拟系统管理模式240要处理系统管理请求,虚拟系统管理模式240是能够执行将系统硬件205带入系统管理模式的虚拟高特权模式。在虚拟系统管理模式240中处理系统管理模式的功能防止处理器210在系统管理模式中时停止处理指令和数据,因为处理器未进入系统管理模式。在一些实现方式中,处理器210不具有系统管理模式。
[0027]在实现方式中,虚拟系统管理模式240能够位于由VMM215生成或管理的任何受信任的域内,这包括位于VMM215自身或虚拟装置260、特权域220内,或者能够位于来宾域230内。在一个示例中,生成系统管理请求。将系统管理请求转发至虚拟系统管理模式240,以处理该系统管理请求。该系统管理请求能够由虚拟基本输入输出系统(vB10S)235接收,以在一个实现方式中转发至虚拟系统管理模式240。系统管理请求可以由网络服务的应用编程结构(API)发送。在另一实现方式中,系统管理请求可以被封装在视窗管理规范(WMI)包装内。另一实现方式包括使用远程过程调用(RPC)来将系统管理请求转发至虚拟系统管理模式。
[0028]在一些实现方式中,云中的BIOS建立在基于VMM的体系结构的以下前提基础上:物理BIOS知道并且信任该物理BIOS正在启动的主运行时实体(VMM215),并且BIOS信任的VMM有能力捕获并且关闭除那些来自特权域以外的所有1/0请求(访问BIOS功能的1/0请求)。在一些实现方式中,能够提供BIOS核验机制来验证要被计算系统启动的VMM的来源。这样的核验机制允许管理员或其它用户指定在计算系统中只能够启动经验证的VMM。核验机制确保计算系统内的VMM映像未被恶意修改,并且该VMM能够是可信的。物理BIOS能够核验VMM图像,并且确保用事先已经规定的已知一组受控操作设置启动该VMM。然后,该VMM可以生成并管理虚拟高特权模式240来处理受信任环境内的系统管理请求,而不导致硬件205进入系统管理模式。
[0029]在核验已经启动了经验证的VMM以后,然后物理BIOS能够推迟或省略物理BIOS会正常执行的多种安全手段的执行,以防止被未经验证的或恶意的代码破坏。例如,物理BIOS能够选择不锁定BIOS快闪寄存器和/或闪存的多个部分。
[0030]在一些实现方式中,在计算系统200中内部地提供受信任的运行时B10S225,然而受信任的运行时B10S225还可以位于计算系统外。从希望访问BIOS服务的计算系统的来宾虚拟机或其它实体的角度,包括BIOS服务的云能够位于任何位置,该任何位置包括位于计算系统外的位置。
[0031]在具有受信任的运行时BIOS的一个实现方式中,除特权域或另一受信任的域以外的其它域不能够与BIOS通信。这一点通过确保捕获从来宾域至BIOS的所有通信方式并且将其输送至特权域部分来由适当过滤器接收和处理,变得可能。然后,特权域中的虚拟高特权模式能够处理该请求并且做出对闪存或BIOS的直接调用或间接调用。该从特权域至BIOS的调用然后将由管理程序允许来经历,因为管理程序能够检测从特权域而非来宾域产生的调用。假若对物理BIOS的开放但排它性的访问,则保护从特权域至物理BIOS的通信,现在特权域能够在运行时写或读BIOS的所有设置,这消除处理器会进入系统管理模式的情况。
[0032]将系统管理请求处理移动至虚拟高特权模式具有更多系统信息和背景可供虚拟机监视器利用的优点。例如,如果计算系统不断地触发系统管理请求来应对热事件,则虚拟机监视器可能决定适当地调整其调度资源,自动地提供用于允许系统冷却的调整,该调整在没有虚拟高特权模式的情况下可能不断地将处理器带入SMM中。
[0033]图3是根据示例实现方式的处理系统管理请求的方法300的流程图。该方法能够在305处由虚拟机监视器管理受信任的域以使虚拟高特权模式接收系统管理请求。受信任的域可以是特权域120或另一域。系统管理请求可以是可将处理器110带入系统管理模式并且停止正在处理器110的真实模式下运行的所有处理的请求。在310处,防止系统管理请求发起系统管理模式。能够将系统管理请求输送至虚拟高特权模式环境140。输送系统管理请求能够例如通过vBIOS向虚拟高特权模式发送系统管理请求、将系统管理请求封装在WMI包装中,进行远程过程调用(RPC)或网络服务API。在315处,能够在虚拟高特权模式环境内处理系统管理请求。虚拟高特权模式环境能够访问硬件来以来宾域不可利用的方式改变系统配置。
[0034]图4是根据示例实现方式的处理系统管理请求的方法的流程图。该方法能够通过在402处由域发出系统管理请求开始。该域能够是例如来宾域130或特权域120。
[0035]在405处,虚拟机监视器能够管理受信任的域以使虚拟高特权模式接收系统管理请求。虚拟高特权模式可接收可能已经由另一组件(如VMM115或特权域120)输送的系统管理请求。系统管理请求可以是可将处理器110带入系统管理模式并且停止正在处理器110的真实模式下运行的所有处理的请求。在410处,防止系统管理请求发起系统管理模式。如果系统管理请求被除虚拟高特权模式以外的某物接收,则其能够被输送至虚拟高特权模式环境140。输送系统管理请求能够例如通过vBIOS向虚拟高特权模式发送系统管理请求、将系统管理请求封装在WMI包装中或者进行远程过程调用(RPC)。在415处,能够在虚拟高特权模式环境内处理系统管理请求。虚拟高特权模式环境能够访问硬件来以来宾域不可利用的方式改变系统配置。
[0036]图5是根据计算机可读介质515-516的示例实现方式的计算系统500的框图。计算机可读介质515-516能够包括代码,该代码如果被处理器505运行则能够引起计算系统运行虚拟机监视器。该代码还能够引起虚拟高特权模式接收系统管理请求。能够防止系统管理请求发起处理器的系统管理模式。该代码能够引起在虚拟高特权模式环境中处理系统
管理请求。
[0037]该代码能够引起虚拟高特权模式改变不能被来宾域改变的系统配置。系统管理请求能够由诸如来宾域或特权域之类的域生成,以执行在处理器的实际模式下不可由该域利用的系统配置。
[0038]各种模块,如在其它图中绘出的那些模块,能够被实现为能够在一个或多个处理器上运行的机器可读指令。处理器能够包括微处理器、微控制器、处理器模块或子系统、可编程的集成电路、可编程的门阵列或者别的控制设备或计算设备。
[0039]该机器可读指令能够存储在机器可读存储介质或计算机可读存储介质中,其能够被实现为一个或多个计算机可读存储介质或机器可读存储介质。存储介质能够包括不同形式的存储器,包括诸如动态随机存取存储器或静态随机存取存储器(DRAM或SRAM)、可擦可编程只读存储器(EPR0M)、电可擦可编程只读存储器(EEPR0M)和闪存之类的半导体存储器设备,诸如硬盘、软盘和可移动式磁盘之类的磁盘,包括磁带的其它磁性介质,诸如光盘(CD)或数字视频盘(DVD)之类的光学介质,或其它类型的存储设备。注意,上面论述的软件的指令能够提供在一个计算机可读存储介质或机器可读存储介质上,或者可替代地,可以提供在分布于可能具有多个节点的大型系统中的多个计算机可读存储介质或机器可读存储介质上。这种计算机可读存储媒介或介质或机器可读存储媒介或介质被认为是物品(或制品)的一部分。物品或制品可指任意被制造的单个部件或多个部件。存储介质或存储媒介能够位于运行该机器可读指令的机器内或者位于能够通过网络下载用于运行的机器可读指令的远程位置。
[0040]在前面的描述中,阐述许多细节,以提供对本文公开的主题的理解。然而,实现方式可以在没有这些细节中的一些细节或全部细节的条件下实践。其它实现方式可以包括上面介绍的细节的改变和变型。意在所附权利要求覆盖上述改变和变型。
【权利要求】
1.一种计算系统,包括: 处理器; 虚拟机监视器,管理受信任的域;以及 所述受信任的域中的虚拟高特权模式,处理系统管理请求。
2.根据权利要求1所述的系统,其中所述虚拟高特权模式是处理系统管理请求的虚拟系统管理中断模式。
3.根据权利要求1所述的系统,其中所述处理器不进入系统管理模式。
4.根据权利要求1所述的系统,其中所述虚拟高特权模式是虚拟应用。
5.根据权利要求1所述的系统,其中所述虚拟机监视器或所述特权域包括所述虚拟高特权模式。
6.根据权利要求1所述的系统,其中所述系统管理请求是由在视窗管理规范(WMI)包装内向所述虚拟高特权模式提供的虚拟基本输入输出系统(vBIOS)接收的或者是通过远程过程调用(RPC)向所述虚拟高特权模式提供的虚拟基本输入输出系统(vBIOS)接收的。
7.一种处理计算系统中的系统管理请求的方法,包括: 由虚拟机监视器管理受信任的域以使虚拟高特权模式接收系统管理请求; 防止所述系统管理请求发起系统管理模式;以及 在虚拟高特权模式环境中处理所述系统管理请求。
8.根据权利要求7所述的方法,进一步包括改变系统配置。
9.根据权利要求8所述的方法,其中所述虚拟机监视器改变不可由来宾域利用的系统配置。
10.根据权利要求7所述的方法,进一步包括从来宾域发出系统管理中断。
11.根据权利要求10所述的方法,其中所述域是来宾域或特权域。
12.—种计算机可读介质,包括如果被处理器运行则致使计算系统执行下述步骤的代码: 用虚拟机监视器管理受信任的域; 在所述受信任的域中由虚拟搞特权模式环境接收系统管理请求; 防止所述系统管理请求发起系统管理模式;以及 在所述虚拟高特权模式环境中处理所述系统管理请求。
13.根据权利要求12所述的计算机可读介质,进一步包括如果被运行则致使计算设备执行以下步骤的代码: 改变不可由来宾域利用的系统配置。
14.根据权利要求12所述的计算机可读介质,进一步包括如果被运行则致使计算设备执行以下步骤的代码: 将所述系统管理请求从虚拟基本输入输出系统(vBIOS)转发至虚拟高特权模式。
15.根据权利要求12所述的计算机可读介质,进一步包括如果被运行则致使计算设备执行以下步骤的代码: 生成域来发出所述系统管理请求,其中所述域是来宾域或特权域。
【文档编号】G06F9/44GK103748552SQ201180072971
【公开日】2014年4月23日 申请日期:2011年8月30日 优先权日:2011年8月30日
【发明者】瓦柳丁·Y·阿里, 约瑟·保罗·泽维尔·皮雷斯, 詹姆斯·M·曼, 波利斯·巴拉切夫, 克里斯·I·道尔顿 申请人:惠普发展公司,有限责任合伙企业