不停止系统运行而使用系统管理程序环境更新设备驱动器或固件的系统和方法

文档序号:6480283阅读:151来源:国知局
专利名称:不停止系统运行而使用系统管理程序环境更新设备驱动器或固件的系统和方法
技术领域
本发明涉及控制对外围设备的访问的系统和方法。更详细地,本发明涉及 共享外围设备和计算机系统之间的机密以保护外围设备的使用的系统和方法。
背景技术
计算机虚拟化软件是在单个计算机系统上运行多个操作系统的日益流行 的方法。虚拟化具有许多优点。这些优点包括允许机构合并计算机系统(例如 服务器),并且增加服务器基础设施的规模而不用购买额外的硬件。减少机构 需要的实体计算机系统的机器数目导致改善的能量保存,并且可以降低机构的
水电费(utility bill )。虚拟化也改善机器的管理,因为通常来说管理赋存(host) 多个操作系统的一个实体机器比管理每个赋存不同的操作系统的多个操作系 统更容易。在虚拟环境中还可以减少备^f分和恢复时间。虚拟化还有助于测试软 件结构,维护遗留(legacy)软件应用程序,以及减少需要容纳机构的实体计 算机系统的物理空间量。在虚拟化提供需要优点的同时,它也向机构提出新的 挑战,特别是关于固件和设备驱动器更新。
计算机外围设备利用固件来操作。例如,DVD播放器使用存储在它的只 读存储器(ROM)中的固件来读取CD或DVD。为了在例如微软的Windows 或Linux 操作系统下访问设备,使用被称为"设备驱动器"的软件来使用(控 制)该设备。设备驱动器被安装在操作系统中并包括允许操作系统使用和控制 该设备的指令。使用DVD播放器为例,设备驱动器允许操作系统来控制DVD 播放器以播放电影,或将文件写入到设备和从设备中读取文件。设备的固件和 设备驱动器有时可能需要为了不同原因而被更新,例如校正固件或设备驱动器 中的错误、改善有效性或设备的使用、找到设备发现的安全易受攻击性、或许 多其他原因。
虚拟化中的 一个挑战是管理这些设备驱动器和固件。这个挑战是由于以下事实当使用虚拟化软件时,操作系统不访问实体硬件,并且由此当需要更新 设备驱动器或固件时没有识别出。更新固件和/或设备驱动器的传统方法通常 需要在更新变得有效之前重新启动或关闭计算机系统。因为在虚拟环境中普通 的计算机系统上运行多个操作系统,计算机系统的关闭或重新启动影响^皮赋存 的每个操作系统。当管理虚拟化的计算环境时,这是另一个遇到的挑战。

发明内容
已经发现使用 一种系统、方法和计算机程序产品解决了上述挑战,该系统、 方法和计算机程序产品具有由系统管理程序(hypervisor)提供的虚拟环境。 在该虚拟环境中, 一个或多个客户操作系统与特权操作系统(privileged operating system)同时运行。 一个客户操作系统识别设备软件更新,例如识别 驱动器或固件更新,对应于连接至计算机系统的硬件设备。系统管理程序用于 将设备软件更新通知给特权操作系统。当特权操作系统被通知了该更新时,特 权操作系统使用 一个或多个技术来拒绝客户操作系统对设备的访问。然后特权 操作系统更新设备软件更新。在已经应用了设备软件更新之后,特权操作系统 恢复客户操作系统和硬件设备之间的访问。
在一个实施例中,特权操作系统验证设备软件更新的合法性。在这个实施 例中,仅当设备软件更新被成功验证之后才应用该设备软件更新。在另一个实 施例中,通过比较设备软件更新的数字签名和预先建立的数字签名来执行设备 软件更新的-睑证。
在一个实施例中,通过识别对应于每个客户操作系统的一个或多个客户操 作系统的拒绝方法来执行拒绝客户操作系统对识别的访问。这些拒绝方法包括 启动设备的热插拔(hot unplug )、强制中止一个或多个客户操作系统、停止(stall) 至少一个客户操作系统、以及从至少一个客户操作系统对设备的高速緩存请求。
在另一个实施例中,在已经拒绝了对设备的访问之后,使得该设备脱机。 在这个实施例中,在恢复客户操作系统对设备的访问之前重新启动该设备。
以上所述是概要,并且由此必要地包含简化、综述以及细节的省略。由此, 本领域的普通技术人员应该理解到概要仅是说明性的,并不用于任何形式的限 制。如仅由权利要求定义的那样,本发明的其他方面、发明特征以及优点即那个在下面的无限制的详细描述中变得明显。


通过参考以下附图使得本发明可以被更好理解,并且其多个目的、特征和 优点对本领域的普通技术人员来说变得明显。
图1是可以执行在此描述的方法的数据处理系统的框图2提供了图1所示的信息处理系统环境的扩展,以说明在此描述的方法
可以在联网环境中操作的多种多样的信息处理系统上执行;
图3是表示使用系统管理程序来更新驱动器或固件中使用的不同元件的
元件图4是表示客户操作系统、系统管理程序和特权(privileged)操作系统之 间执行以更新驱动器的步骤的流程图5是表示由客户操作系统和特权操作系统执行以更新设备驱动器的步 骤的流程图6是表示由客户操作系统和特权操作系统执行以更新固件的步骤的流 程图7是表示采取的步骤以验证驱动器或固件更新的正确性的流程图8是表示由特权操作系统或系统管理程序执行以拒绝客户操作系统访
问正在被更新的设备的步骤的流程图9是表示由特权操作系统或系统管理程序执行以更新设备的步骤的流
程图;以及
图10是表示由特权^f喿作系统或系统管理程序执行以在设备被更新之后重 新进行客户操作系统对设备的访问的步骤的流程图。
具体实施例方式
在下面的描述和附图中结合了某些特定细节以提供本发明的不同实施例 的完全理解。然而,为了避免不必要地使本发明的不同实施例不清楚,在下面 的描述中没有结合通常与计算和软件技术相关的某些公知细节。此外,相关领 域的普通技术人员将理解到他们可以实践其他实施例,而不是在下面描述的一 个或多个细节。最终,当参考下面描述中的步骤和顺序来描述的不同方法时, 这样的描述是用于提供本发明的实施例的清楚实施,并且步骤和步骤的顺序不应该被认为实践本发明所必须的。相反,下面的描述是用于提供本发明的例子 的详细描述,并且不应该被认为限制本发明本身。此外,任意数目的变型例可 以落入本发明的范围之内,本发明的范围是由附带的权牙'j要求书所限定。
在发明内容之后通常是下面的具体实施方式
,按照需要进一步解释和扩展 本发明的不同方面和实施例的定义。
具体实施方式
首先提出了图1中的计算环
境,其适于与本发明相关的软件和/或硬件技术。图2示出了联网环境作为基 本计算机环境的扩展,以强调现代计算技术可以在多个分离设备上执行。
图1示出信息处理系统100,其是能够执行在此描述的计算操作的计算机 系统的简化例子。信息处理系统100包括一个或多个处理器110,其耦合
(couple)至处理器接口总线112。处理器接口总线112将处理器110连接至 北桥(northbridge ) 115,北桥(northbridge ) 115其也被称为存储器控制器集 线器(MCH)。北桥115连接至系统存储器120,并且提供处理器110访问系 统存储器的手段。图形控制器125也连接至北桥115。在一个实施例中,使用 PCI高速总线118来将北桥115连接至图形控制器125。图形控制器125连接 至显示设备130,例如计算机监视器。
北桥115和南桥135使用总线119彼此连接。在一个实施例中,该总线是 直接媒体接口 (DMI)总线,其在北桥115和南桥135之间的每个方向上以高 速传递数据。在另一个实施例中,外部组件互联(PCI)总线用于连接北桥和 南桥。南桥135,也称为1/0控制器集线器(ICH),是通常实现以被北桥提供 的能力更低的速度操作的能力的芯片。南桥135通常提供不同总线,用于连接 不同元件。这些总线可以包括PCI和PCI高速总线、ISA总线、系统管理总线
(SM总线或SMB)、低针脚型(LPC)总线。LPC总线通常用于连接低带宽 设备,例如引导ROM196和"遗留"1/0设备(使用"超级I/0"芯片)。"遗 留"I/O设备(198)可以包括串行和并行端口、键盘、鼠标、软盘控制器。 LPC总线也可以用于将南桥135连接至可信任平台模块(TPM) 195。在南桥 135中通常包括的其他元件包括直接存储器访问(DMA)控制器、可编程中断 控制器(PIC)、存储设备控制器,该存储设备控制器使用总线184将南桥135 连接至非易失性存储设备185,例如,硬盘驱动器。
高速卡(ExpressCard) 155是用于将热可插拔设备连接至信息处理系统的
ii插槽。高速卡155支持PCI高速和USB连通性,因为高速卡155使用通用串 行总线(USB )和PCI高速总线来连接至南桥135。南桥135包括USB控制 器140,其向连接至USB的设备提供USB连通性。这些设备包括网络摄像机 (摄像机)150、红外(IR)接收器148、提供无线个人局域网(PAN)的蓝 牙设备146、键盘和触摸板144以及其他多种USB连接的设备142,例如鼠标、 可移动的非易失性存储设备145、调制解调器、网卡、ISDN连接器、传真机、 打印机、USB集线器以及许多其他种类的USB连接的设备。当可移动的非易 失性存储设备145被显示为USB连接的设备,可移动的非易失性存储设备145 可以使用不同的接口连接,例如固件接口等。
无线局域网(LAN)设备175通过PCI或PCI高速总线172连接至南桥 135。 LAN设备175通常实现空中调制技术的IEEE 802.11标准的一个,空中 调制技术均使用相同的协议在信息处理系统100和另一个计算机系统或设备 直接进行无线通信。光学存储设备190使用串行ATA ( SATA )总线188连接 至南桥135。串行ATA适配器和设备通过高速串行链接来通信。串行ATA总 线也用于将南桥135连接至其他形式的存储设备,例如硬盘驱动器。例如声卡 的音频电路160通过总线158连接至南桥135。音频电路160用于提供功能性, 例如音频输入和光学数字音频输入端口 162、光学数字输出和耳机插孔164、 内置扬声器166以及内置麦克风168。以太网控制器170使用例如PCI或PCI 高速总线的总线连接至南桥135。以太网控制器170用于通过将信息处理系统 100连接至计算机网络,例如局域网(LAN)、因特网以及其他/>共和专用计 算机网络。
尽管图1示出了一个信息处理系统,信息处理系统可以有多种形式。例如, 信息处理系统可以具有台式机、服务器、便携机、膝上电脑、笔记本或其他形 式的要素(factor)计算机或数据处理系统。此外,信息处理系统可以具有其 他形式的要素,例如个人数字助理(PDA)、游戏设备、ATM机、便携式电话 设备、通信设备或包括处理器和存储器的其他设备。
图1所示并在此描述以提供安全功能的可信任平台模块(TPM 195 )只是 硬件安全模块(HSM, hardware security module )的一个例子。因此,在此描 述和主张权利的TPM包括任意类型的HSM,该HSM包括但是不局限于硬件安全设备,该硬件安全设备附合可信任的技术组(TCG)标准,并且被称为"可 信任的平台模块(TPM)规范版本1.2"。 TPM是可以集成到任意数目的例如 图2所示的信息处理系统中的硬件安全子系统。
图2提供图1所示的信息处理系统环境的扩展,以说明在此描述的方法可 以在联网环境中运行的各种不同的信息处理系统上执行。信息处理系统的类型 范围从例如手持计算机/移动电话210的小的手持设备到例如主机计算机270 的主机系统。手持计算机210的例子包括个人数字助理(PDA)、个人娱乐设 备,例如MP3播放器、便携电视和光盘播放器。信息处理系统的其他例子包 括笔式或平板电脑220、膝上电脑或笔记本电脑230、工作站240、个人计算 机系统250和服务器260。在图2中没有单独示出的其他类型的信息处理系统 由信息处理系统280代表。如图所示,各种信息处理系统可以使用计算机网络 200而联网。可以用于互联各种信息处理系统的计算机网络的类型包括局域网 (LAN)、无线局域网(WLAN)、因特网、公共开关电话网(PSTN)、其他无 线网络,以及可以用于互联信息处理系统的任何其他网络拓朴。许多信息处理 系统包括非易失性数据存储(store ),例如硬盘驱动器和/或非易失性存储器。 以分离非易失性的数据存储来描述图2所示的一些信息处理系统(以非易失性 的数据存储265表示服务器260,以非易失性的数据存储275表示主机计算机 270,以非易失性的数据存储285表示信息处理系统280)。非易失性数据存储 可以是各种信息处理系统外部的元件,或者是信息处理系统内部的元件。此外, 可以使用不同技术在两个或多个信息处理系统之间共享可移动的非易失性存 储设备145,例如,通过将可移动的非易失性存储设备145连接至信息处理系 统的USB端口或其他连接器。
图3是表示在使用系统管理程序来更新驱动器或固件中使用的各种元件 的元件示意图。选定的计算机系统元件300包括驱动器存储器310,其存储用 于从客户操作系统更新设备软件的客户操作系统安装代码316,以及存储从特 权操作系统更新设备软件的特权操作系统安装代码318。设备软件更新315是 用于更新设备驱动器和/或设备固件的软件。
在计算机系统中运行的是一个或多个客户操作系统330,例如,Linux 操作系统、微软的Window 操作系统等等。计算机系统上运行的还有特权操作系统320。如图所示,系统管理程序软件应用程序305提供虚拟环境,在虚 拟环境中,多个客户操作系统可以与特权操作系统同步执行。在一个实施例中, 特权操作系统在系统管理程序分区操作,而在另一个实施例中,系统管理程序 提供客户操作系统和特权操作系统之间的通信。此外,在一个实施例中,客户 操作系统操作用于与该设备通信的前端驱动器335,以及特权操作系统操作后 端驱动器325,同时系统管理程序305提供后端和前端驱动器之间的通信路径。
如图所示,可以从不同源340接收设备软件更新。这些源包括石兹盘、 CD-ROM以及其他便携非易失性媒体,以及从例如因特网的计算机网络350 下栽的设备软件更新。
无论与系统管理程序305分开运行还是在系统管理程序中运行,特权操作 系统320控制设备软件更新,包括受控的固件更新375和受控的设备驱动器更 新385。设备370以不同方式连接至计算机系统,或者是直接连接至计算机系 统目标,或者是使用任意数目的接口连接,例如USB、串行接口、并行接口 等等。设备包括视频卡、打印机、驱动控制器和本领域普通技术人员公知的任 意数目的设备。通过不同的设备软件更新来更新设备固件380和设备驱动器 390,其中设备固件380通常控制设备如何操作,以及设备驱动器390通常控 制访问来自 一个或多个客户操作系统的设备。
图4是表示客户操作系统、系统管理程序和特权操作系统之间执行以更新 设备软件的步骤的流程图,例如更新设备驱动器。如图所示,客户操作系统操 作在330开始,其上在步骤410,客户操作系统的用户下载设备软件更新,例 如设备驱动器,并且在非易失性存储中存储设备软件更新,非易失性存储是计 算机系统可访问的,例如硬盘驱动器。在步骤420,执行客户操作系统安装代 码以安装设备软件更新。在执行客户操作系统安装代码的过程中的某个点上, 该代码企图存储设备软件更新。在这个点上,控制被转移至特权操作系统。
如图所示,特权操作系统处理在320开始,此时系统管理程序305提供客 户操作系统处理330和特权操作系统处理320之间的通信。如上所述,特权操 作系统可以由系统管理程序直接执行,或者作为分离的操作系统在系统管理程 序提供的虚拟环境中运行。在步骤430,客户操作系统和特权操作系统之间的 连接被验证。如果该连接被成功验证,控制转移回客户操作系统处理,否则如果该连接没有被成功验证,设备软件更新处理结束。
返回客户操作系统处理,如果该连接被成功更新,那么在步骤440,客户 操作系统将该更新存储到前端设备驱动器335。普通(generic )前端驱动器335 被安装在客户操作系统中,例如微软WindowsTM。作为普通前端,前端软件可 能具有若干更新。然而,前端驱动器335向客户操作系统提出标识符,该客户 操作系统支持对应于连接到计算机系统的选定的硬件的多个设备驱动器。选定 的设备驱动器(设备更新处理)的标识符被传送回特权操作系统,并且控制被 传送回特权操作系统用于实际更新设备驱动器。
返回特权操作系统处理,在步骤450,特权4喿作系统-险证对应于由客户操 作系统发送的驱动器更新处理的设备软件更新(见图7以及验证设备软件更新 的不同技术的对应的文字)。如果设备软件更新没有^皮验证,那么在步骤460, 特权操作系统禁用该设备。在步骤470,更新后端设备驱动器325。在步骤480, 重新启动更新后的后端设备驱动器325,并且将其重新连接至前端设备驱动器 335。在步骤490,该设备在客户操作系统中启用,并且在步骤499,从驱动器 存储器310移除设备软件更新,因为设备软件更新已经被应用至该设备和客户 操作系统。
图5是表示由客户操作系统和特权操作系统执行以更新设备驱动器的步 骤的流程图。如图所示,设备软件更新的客户操作系统处理,例如设备驱动器 更新,在步骤500开始。在步骤510,在客户操作系统上安装普通前端(FE) 驱动器。正如其名称所示,在一个实施例中,普通前端驱动器^f皮用于协调在步 骤501开始的任意数目的设备驱动器(后端设备驱动器)与特权操作系统处理 的更新。
返回客户操作系统处理,在步骤515 ,客户操作系统从设备软件更新源340 载入或下载设备软件更新。图3中示出了更新源的各种例子。在步骤520,客 户操作系统检测设备软件更新,例如设备驱动器更新,并且将该更新存储到设 备软件更新数据存储315中(例如,由客户操作系统和特权操作系统可访问的 非易失性数据存储,由客户操作系统和特权操作系统可访问的RAM存储位置 等等)。
如图所示,特权操作系统处理在步骤501开始。在步骤525,特权操作系统检测已经被载入到数据存储315中的设备软件更新。在预定处理530,使用 各种技术验证设备软件更新的合法性(见图7和处理细节的相应文字)。对于 设备软件更新是否被成功验证做出判定(决定540)。如果设备软件更新没有 被成功验证,那么确定540进入"否"分支545,在步骤550,特权操作系统 做出尝试安装非法(即,未授权的等等)设备软件更新的记录,并且在步骤 590从设备存储315移除该非法设备软件更新。返回决定540,如果设备软件 更新的合法性被成功验证,那么决定540进入"是"分支,其上在预定处理 560,客户操作系统拒绝访问该设备,使得该设备可以净皮更新而不会引起与试 图使用该设备的客户操作系统的问题(见图8和处理细节的对应文字)。客户 操作系统处理的步骤565表示客户操作系统在该点上拒绝访问该设备。在预定 处理570,设备软件更新被更新(见图9和处理细节的对应文字)。在预定处 理580,特权操作系统恢复客户操作系统和该设备的连接。客户操作系统处理 的步骤585表示客户操作系统现在可以使用新更新的设备软件更新(例如,设 备驱动器)来访问该设备。最后,设备软件更新已经被成功安装,在步骤590 从设备软件更新数据存储315移除该设备软件更新。
图6是表示由客户操作系统和特权操作系统执行以更新例如固件的设备 软件更新的步骤的流程图。客户操作系统处理在600开始,随之在步骤610, 客户操作系统检测设备软件更新(例如,固件)对设备是可用的。在步骤615, 客户操作系统从源340 (例如可移动的非易失性媒体、计算机网络等)提取设 备软件更新,在数据存储620中存储提取的更新,将该更新通知特权操作系统。
特权操作系统处理在601开始,之后在步骤625,特权操作系统检测客户 操作系统是否已经将设备软件更新载入到非易失性数据存储620中。在预定处 理630,特权操作系统验证设备软件更新的合法性,例如固件更新(参见图7 和处理细节的对应文字)。对于设备软件更新是否被成功验证做出判定(决定 640)。如果设备软件更新没有被成功验证,那么决定640进入"否"分支645, 在步骤650,进行未授权的试图更新例如固件的设备软件更新的记录,并且在 步骤690从非易失性设备存储620移除该设备软件更新。另一方面,如果设备 软件更新的合法性被验证,那么决定640进入"是"分支655,其上在预定处 理660,客户操作系统拒绝访问该设备(见图8和处理细节的对应文字)。客户操作系统拒绝访问该设备,同时在步骤665更新设备软件更新。在步骤670, 特权操作系统更新例如固件的设备软件更新(见图9和处理细节的对应文字)。 在预定处理680,在设备软件更新已经被更新之后,特权操作系统允许客户操 作系统访问该设备,该设备已经被更新了例如固件的软件。如图所示,客户操 作系统具有在步骤685对该设备的重新开始的访问,同时该设备现在具有已经 更新的软件。最后,在完成设备软件更新之后,在步骤690从非易失性数据存 储620移除设备软件更新。
图7是表示验证例如对设备驱动器或固件的更新的设备软件更新的合法 性而采取的步骤的流程图。在700开始处理,随之在步骤705,对计算机系统 使用的控制710进行检查。这些控制可以在一个系统接着一个系统的基础上实 现,也可以在使用相同的合法性控制将所有的计算机系统置于一个组织中的组 织的基础上实现。对应数字前面检查是否是部分控制做出判定(决定715)。 如果数字签名检查是正在使用的控制,那么决定715进入"是"分支718,随 之在步骤720,使用例如SHA-256算法,通过处理设备软件更新315来计算数 字签名,这得到一个值。将该值与从数据存储722中提取的期望的数字签名相 比较。对应数字签名是否是正确的(即,计算得到的值是否正确地匹配或对应 于从数据存储722中提取的期望签名)做出判定(决定725 )。如果数字签名 不是正确的,决定725进入"否"分支726,这导致设备软件更新被标记为非 法更新(不好的返回780)。另一方面,如果数字签名是正确的,那么决定725 进入"是"分支717以进一步进行处理。返回决定715,如果数字签名检查不 是正在被使用的控制之一,那么决定715进入"否"分支728以绕过数字签名 检查步骤。
对应计算机系统的拥有者(例如系统管理员、用户等)在应用更新之前授 权设备软件更新是否是控制之一进行判定(决定730)。如果拥有者授权是控 制之一,那么决定730进入"是"分支734,随之在步骤735,提示拥有者授 权设备软件更新(例如,使用弹出对话消息框等)。然后对应拥有者是否授权 该更新做出判定(决定740)。如果拥有者没有授权该更新,那么决定740进
另一方面,如果拥有者授权了设备软件更新,那么决定740进入"是"分支
17743,以进行进一步处理。返回决定730,如果拥有者授权不是正在使用的控 制之一,那么决定730进入"否,,分支以绕开拥有者授权步骤。
对应在控制710中是否实现黑名单控制进行判定(决定745 )。黑名单是 计算机系统禁止的设备软件更新的控制。例如,如果特定设备软件更新包括错 误、缺陷、病毒或其他问题,特定设备软件更新的标识符(数字签名、文件标 识符等)可以被写入到黑名单数据存储760中。如果控制710确定正在使用黑 名单检查,那么决定745进入"是"分支748,随之在步骤750,将设备软件 更新与黑名单中包括的条目相比较。对应该设备软件更新是否包括在黑名单 760中进行判定(决定770 )。如果该设备软件更新包括在黑名单760中,那么 决定770进入"是"分支775,其导致设备软件更新被标记为非法更新(不好 的返回780)。另一方面,如果该设备软件更新没有包括在黑名单760中,那 么决定770进入"否"分支785,其导致该设备软件更新被标记为合法的(好 的返回7卯)。同样地,返回决定745,如果没有使用黑名单检查,那么决定 745进入"否"分支以绕开黑名单检查步骤,并且将设备软件更新标记为合法 的(好的返回790)。
本领域的普通技术人员应该理解到也可以实现例如白名单、灰名单等的其 他控制以验证设备软件更新的合法性。这些额外的合法性检查也可以在将不好 的返回(返回780)和好的返回(返回790)返回到调用程序之前执行。
图8是表示由特权操作系统或系统管理程序执行以禁止客户操作系统对 正在被更新的设备的访问的步骤的流程图。处理在800开始,随之在步骤810, 对于与特定客户操作系统相关的特性进行检查。将与特定客户操作系统相关的 特性(例如操作系统名称、操作系统版本等)与可用的拒绝(deny)方法的列 表(数据存储815)相比较,以确定一个或多个拒绝技术,该一个或多个拒绝 技术被用于使得从客户操作系统不可访问该设备,同时该设备软件更新正在被 应用。
对于操作系统和设备是否支持设备的热插拔(hot unplug)做出判定(决 定820)。如果设备的热插拔是恰当的拒绝技术,那么决定820进入"是"分 支822,随之在步骤825,设备的热插拔被启动,并且在830处理返回。返回 至决定820,如果设备的热插拔不是恰当的拒绝技术或者如果原来的热插拔在原来没有被成功进行,那么决定820进入"否,,分支832以进一步处理拒绝技 术。
对于客户操作系统的强制中止是否是客户操作系统使用的恰当拒绝技术 做出判定(决定835 )。如果强制中止是恰当的拒绝技术,那么决定835进入 "是"分支838,随之在步骤840,客户操作系统的强制中止被启动,并且在 845处理返回。返回至决定835,如果客户操作系统的强制中止不是恰当的拒 绝技术或者如果原来的客户操作系统的强制中止在原来没有被成功进行,那么 决定835进入"否"分支848以进一步处理拒绝技术。
对于停止客户操作系统是否是要使用的恰当拒绝技术做出判定(决定 850)。如果停止客户操作系统是恰当的拒绝技术,那么决定850进入"是"分 支852,随之在步骤855,通过拒绝客户操作系统CPU时间来停止客户搡作系 统,并且在860处理返回。返回至决定850,如果停止客户操作系统不是恰当 的拒绝技术,那么决定850进入"否"分支862以进一步处理拒绝技术。
对于从客户操作系统到设备的高速緩存请求是否是要使用的恰当拒绝技 术做出判定(决定865 )。如果高速緩存请求是要使用的恰当的拒绝技术,那 么决定865进入"是"分支868,随之在步骤870,由特权操作系统或系统管 理程序分配緩沖器(緩冲器875 )。在步骤880,特权操作系统或系统管理程序 开始解释从客户操作系统到设备的请求,并且将该请求高速緩存在緩冲器875
中。然后处理在885返回。返回至决定865,如果来自停止客户操作系统的高 速緩存请求不是恰当的拒绝技术,那么决定865进入"否"分支888,随之在 步骤890,通过使用被认为对于客户操作系统和设备是恰当的某些其他技术来 防止客户操作系统使用设备。然后处理在895返回。
图9是由特权操作系统或系统管理程序执行以更新设备的步骤的流程图。 如图所示,由特权操作系统或系统管理程序执行的处理在900开始。在步骤 910,设备软件更新被从客户操作系统存储器330复制到特权操作系统或系统 管理程序存储器320。在步骤920,如果可能,设备(设备370)是脱机的。 在步骤930,设备软件更新被应用至设备(例如已更新的固件、已更新的设备 驱动器等等)。在步骤940,条目被写入到对设备软件更新的结果记录950中。 在步骤960,该设备被重新启动,以及在步骤970,特权操作系统或系统管理程序在恢复设备的客户操作系统使用之前等待设备重新启动。然后处理在995 返回至调用程序。
图10是表示由特权操作系统或系统管理程序执行以在已经更新设备之后 恢复客户操作系统对设备的访问的步骤的流程图。由特权操作系统或系统管理 程序执行的处理在1000开始,随之在步骤1005,对在图8所示的处理的过程 中用于拒绝对设备的访问的拒绝技术进行检查。在存储位置1002中存储被使 用的拒绝方法。对被使用的拒绝方法是否是设备的热插拔进行判定(决定 1010)。如果使用了设备的热插拔,那么决定1010进入"是"分支1012,随 之在步骤1015,现在启动随之已经应用了设备软件更新的设备的热插件(hot plug-in)(例如,固件更新、设备驱动器更新等)。然后处理在1020返回至调 用程序。另一方面,如果设备的热插拔不是用于客户操作系统拒绝方法,那么 决定1010进入"否"分支1022,随之对客户操作系统是否被强制中止做出判 定(决定1025 )。如果客户操作系统被强制中止,那么决定1025进入"是" 分支1028,随之在步骤1030,已停止的客户操作系统被恢复,并且处理在1035 返回至调用程序。
另一方面,如果使用的拒绝技术不是客户操作系统的强制中止,那么决定 1025进入"否"分支1038,随之对使用的拒绝技术是否是通过拒绝客户操作 系统CPU周期来停止客户操作系统做出判定(决定1040)。如果停止客户操 作系统,那么决定1040进入"是"分支1042,随之在步骤1045,通过允许客 户操作系统接收CPU周期来重新激活客户操作系统,并且处理在1050返回至 调用程序。
另 一方面,如果拒绝技术不是停止客户操作系统,那么决定1040进入"否" 分支1052,随之对使用的拒绝技术是否是由客户操作系统向设备进行高速緩 存请求做出判定(决定1055 )。如果由客户操作系统向设备进行的请求已经被 高速緩存,那么决定1055进入"是"分支1058,随之在步骤1060,通过向设 备(设备370)发送高速緩存请求来处理请求,该请求是指向设备的客户操作 系统进行的并且被高速緩存到緩沖器885中。执行高速緩存的请求的处理直到 已经向设备发送了所有高速緩存的请求。在步骤1065,在所有高速緩存的设 备被处理之后,緩沖器885被解除分配,并且处理在1070返回至调用程序。返回到决定1055,如果拒绝技术不是从客户操作系统到设备的高速緩存请求, 那么决定1055进入"否"分支1072,随之在步骤1075,使用对应于用于拒绝 客户操作系统对设备的访问的拒绝技术的若干其他技术来恢复设备的客户操 作系统的使用。此后处理在1080返回至调用程序。
本发明的一个优选实施例是客户应用程序,即,在例如可以驻留在计算机 的随机存取存储器的代码模块中的指令集(程序代码)或其他功能描述材料。 直到计算机请求,该指令集可以被存储在另一个计算机存储器中,例如,在硬 盘驱动器,或者在例如光盘(用于CD ROM中的最终使用)或磁盘(用于磁 盘驱动器中的最终使用)的可移动存储器中,或者可以通过因特网或其他计算 机网络下载。由此,本发明可以被实现为计算机中使用的计算机程序产品。此 外,虽然描述的不同方法通常在由软件选择地激活或重新配置的通用计算机上 实现,但是本领域的普通技术人员还应该认识到这样的方法可以在硬件、固件 或者被构造以执行需要的方法步骤的更特别的装置中执行。功能描述材料是对 机器给予功能性的信息。功能描述材料包括、但不局限于计算机程序、指令、 规则、事实、可计算的功能的定义、对象和数据结构。
尽管已经显示和描述了本发明的特定实施例,对本领域的普通技术人员来 说,基于在此的教义,进行修改和变化而不偏离本发明及其更广阔的方面是显
内,因为这样的修改和改变被包括在本发明的真正精神和范围之内。此外,应 该理解到本发明仅由附带的权利要求定义。本领域的普通技术人员应该理解到 如果预期了特点说明的引入的权利要求要素,这样的意图应该在权利要求中被 明确的描述,并且缺乏这样的描述就没有这样的限制。无限的例如,作为辅助 理解,下面附带的权利要求包含介绍性语句"至少一个,,和"一个或多个,,以 介绍权利要求要素。然而,这样的语句的使用不应该被构造成为暗示由不定冠 词"一"或"一个"介绍的权利要求要素将包含这样的介绍权利要求要素的任 意特定权利要求限制为仅包含一个这样要素的发明,即使该权利要求包括介绍 语句"一个或多个"或"至少一个"以及例如"一"或"一个"的不定冠词。 这也同样适用于定冠词的权利要求。
权利要求
1. 一种机器实施的方法,该方法包括通过在计算机系统上运行的第一客户操作系统使用系统管理程序来识别对应于连接至所述计算机系统的设备的设备软件更新,其中在所述计算机系统上存在虚拟环境以支持多个操作系统,该多个操作系统包括第一客户操作系统和特权操作系统;通过系统管理程序将识别的设备软件更新通知给也在所述计算机系统上运行的所述特权操作系统;响应于上述通知,所述特权操作系统执行以下步骤拒绝一个或多个客户操作系统对上述设备的访问,所述一个或多个客户操作系统包括所述第一客户操作系统;在上述拒绝步骤之后使用所述识别的设备软件更新来更新用于操作所述设备的设备软件;以及在上述更新步骤之后恢复所述一个或多个客户操作系统和所述设备之间的访问。
2. 如权利要求l所述的方法,进一步包括通过所述特权搡作系统验证所述识别的设备软件更新的合法性,其中仅响 应于成功的验证来执行上述更新步骤。
3. 如权利要求2所述的方法,其中上述验证步骤进一步包括对所述设备 软件更新的数字签名与预先建立的数字签名进行比较。
4. 如权利要求l所述的方法,其中上述拒绝步骤进一步包括 识别对应于每个所述客户操作系统的一个或多个客户操作系统拒绝方法; 响应于至少一个识别的拒绝方法来启动上述设备的热插拔; 响应于至少一个拒绝方法来强制中止至少一个所述客户操作系统;响应于至少一个拒绝方法来停止至少一个所述客户操作系统;以及 响应于至少 一个拒绝方法来从至少 一个所述客户操作系统向上述设备发 出高速緩存请求。
5. 如权利要求l所述的方法,进一步包括在所述拒绝步骤之后使得上述设备脱机;以及 在所述恢复步骤之前重新启动上述设备。
6. 如权利要求1所述的方法,其中所述特权操作系统是在所述计算机系统上运行的系统管理程序,并且,从由设备固件和设备驱动器组成的组中选择 设备软件。
7. 如权利要求l所述的方法,进一步包括使用所述第一客户操作系统从第二计算机系统下载所述设备软件更新,所 述第二计算机系统使用计算机网络连接至上述计算机系统,下载的设备软件更 新存储在所述第 一客户操作系统可访问的设备软件存储区域;通过所述第 一客户操作系统执行所述设备软件更新;当正在执行的设备软件更新尝试更新设备软件时将控制转移至所述特权 操作系统,其中所述特权操作系统通过验证连接来做出响应;响应于被成功验证的连接,控制被转移回所述第一客户操作系统,由此所 述第一客户操作系统通过存储前端驱动器来做出响应,然后将控制与驱动器更 新处理一起转移回所述特权操作系统;响应于接收到所述驱动器更新处理,所述特权操作系统执行以下步骤 验证所述驱动器软件更新; 使上述设备不工作;以及执行所述更新步骤,得到对应于已更新的前端驱动器的已更新的后端驱动器。
8. —种信息处理系统,包括 一个或多个处理器;由至少 一个所述处理器可访问的存储器;由至少 一个所述处理器可访问的非易失性存储区域;由至少一个所述处理器可访问的硬件设备,其中该硬件设备包括控制该硬 件设备的操作的设备软件;提供虚拟环境的系统管理程序,该虚拟环境支持一个或多个客户操作系统 和特权操作系统,所述系统管理程序、客户操作系统和特权操作系统每个都存 储在所述存储器和非易失性存储区域中并且由所述处理器执行;一组或多组指令集,由一个或多个所述处理器执行以实现以下动作 识别动作,通过第一客户操作系统识别对应于所述硬件设备的设备软件更新;通知动作,通过所述系统管理程序将识别的设备软件更新通知给所述特 权操作系统;响应于该通知动作,运行特权搡作系统的所述指令执行以下额外动作: 拒绝动作,拒绝一个或多个客户操作系统对所述硬件设备的访问,该一个或多个客户操作系统包括所述第 一客户操作系统;更新动作,在所述拒绝动作之后使用识别的设备软件更新来更新用于操作硬件设备的所述设备软件;以及恢复动作,在所述更新动作之后恢复所述一个或多个客户操作系统和所述硬件设备之间的访问。
9. 如权利要求8所述的信息处理系统,其中至少一组所述指令集使得所 述处理器进一步执行以下动作通过所述特权操作系统验证所述识别的设备软件更新的合法性,其中仅响 应于成功的^S正4丸行上述更新动作。
10. 如权利要求9所述的信息处理系统,其中所述验证的动作进一步包括 比较所述设备软件更新的数字签名和预先建立的数字签名的动作。
11. 如权利要求8所述的信息处理系统,其中所述拒绝动作进一步包括以 下动作识别对应于每个所述客户操作系统的一个或多个客户操作系统拒绝方法; 响应于至少一个识别的拒绝方法来启动上述i殳备的热插拔; 响应于至少一个拒绝方法来强制中止至少一个所述客户操作系统; 响应于至少一个拒绝方法来停止至少一个所述客户操作系统;以及 响应于至少一个拒绝方法来从至少 一个所述客户操作系统向上述设备发 出高速緩存请求。
12. 如权利要求8所述的信息处理系统,其中至少一组所述指令集使得所 述处理器进一 步执行以下动作在所述拒绝动作之后使得上述设备脱机;以及在所述恢复动作之前重新启动上述设备。
13. 如权利要求8所述的信息处理系统,其中所述特权操作系统是在所述 计算机系统上运行的系统管理程序,并且,从由设备固件和设备驱动器组成的组中选裤4殳备软件。
14. 如权利要求8所述的信息处理系统,进一步包括网络适配器,将所述信息处理系统连接至计算机网络,其中至少一组所述 指令集使得处理器进一步执行以下动作.'使用所述第一客户操作系统从第二计算机系统下载所述设备软件更新,所 述第二计算机系统通过计算机网络连接至所述信息处理系统,下载的设备软件 更新存储在所述第 一客户操作系统可访问的设备软件存储区域;通过所述第 一客户操作系统执行所述设备软件更新;当正在执行的设备软件更新尝试更新设备软件时将控制转移至所述特权 操作系统,其中所述特权操作系统通过验证连接来做出响应;响应于被成功验证的连接,控制被转移回所述第一客户操作系统,由此所 述第一客户操作系统通过存储前端驱动器来做出响应,然后将控制与驱动器更 新处理一起转移回所述特权操作系统;响应于接收到所述驱动器更新处理,所述特权操作系统执行以下步骤 验证所述驱动器软件更新; 使上述硬件设备不工作;以及执行上述更新动作,得到对应于已更新的前端驱动器的已更新的后端驱动器。
15. —种计算机程序产品,存储在计算机可读介质内,包括功能描述材料, 当信息处理系统执行该功能描述材料时,使得信息处理系统执行动作,所述动 作包括通过在计算机系统上运行的第一客户操作系统使用系统管理程序来识别 对应于连接至计算机系统的设备的设备软件更新,其中在计算机系统上存在虚 拟环境以支持多个操作系统,包括第 一客户操作系统和特权操作系统;通过系统管理程序将识别的设备软件更新通知给也在计算机系统上运行 的特权操作系统;响应于该通知,特权操作系统执行以下步骤拒绝一个或多个客户操作系统对设备的访问,所述一个或多个客户操作系统包括第 一客户操作系统;在拒绝之后使用识别的设备软件更新来更新用于操作设备的设备软件;以及在更新之后恢复所述一个或多个客户操作系统和设备之间的访问。
16. 如权利要求15所述的计算机程序产品,包括功能描述材料,该功能 描述材料使得数据处理系统执行额外的动作,包括特权操作系统验证识别的设备软件更新的合法性,其中仅响应于成功的验 证来执行该更新,其中验证进一步包括比较设备软件更新的数字签名和预先建 立的数字签名。
17. 如权利要求15所述的计算机程序产品,其中拒绝进一步包括功能描 述材料,该功能描述材料使得数据处理系统执行额外的动作,包括识别对应于每个客户操作系统的一个或多个客户操作系统拒绝方法; 响应于至少一个识别的拒绝方法来启动识别的热插拔; 响应于至少一个拒绝方法来强制中止至少 一个客户操作系统; 响应于至少一个拒绝方法来停止至少一个客户才喿作系统;以及 响应于至少一个拒绝方法来从至少一个客户操作系统向设备发出高速緩 存请求》
18. 如权利要求15所述的计算机程序产品,进一步包括功能描述材料, 该功能描述材料使得数据处理系统执行额外的动作,包括在拒绝步骤之后使得设备脱机;以及. 在恢复步骤之前重新启动设备。
19. 如权利要求15所述的计算机程序产品,其中特权操作系统是在计算 机系统上运行的系统管理程序,并且其中从由设备固件和设备驱动器组成的组 中选择设备软件。
20. 如权利要求15所述的计算机程序产品,进一步包括功能描述材料, 该功能描述材料使得数据处理系统执行额外的动作,包括使用第 一客户操作系统从第二计算机系统下载设备软件更新,所述第二计算机系统使用计算机网络连接至计算机系统,下载的设备软件更新存储在第一 客户操作系统可访问的设备软件存储区域;第 一客户操作系统执行设备软件更新;当正在执行的设备软件更新尝试更新设备软件时将控制转移至特权操作 系统,其中特权操作系统通过验证连接来做出响应;响应于被成功验证的连接,控制被转移回第一客户操作系统,其上第一客 户操作系统通过存储前端驱动器来做出响应,然后控制与驱动器更新处理一起 被转移回特权操作系统;响应于接收驱动器更新处理,特权操作系统执行以下步骤 验证驱动器软件更新; 使设备不工作;以及执行更新步骤,其导致对应于已更新的前端驱动器的已更新的后端驱动器。
全文摘要
提供具有系统管理程序提供的虚拟环境的系统、方法和程序产品。在该虚拟环境中,一个或多个客户操作系统与特权操作系统同时运行。一个客户操作系统识别设备软件更新,例如设备驱动器或固件更新,对应于连接至计算机系统的硬件设备。系统管理程序用于将设备软件更新通知给特权操作系统。当特权操作系统被通知该更新时,特权操作系统使用一个或多个技术来拒绝客户操作系统对设备的访问。然后特权操作系统更新该设备软件更新。在已经应用了设备软件更新之后,特权操作系统恢复客户操作系统和硬件设备之间的访问。
文档编号G06F9/445GK101488092SQ20091000234
公开日2009年7月22日 申请日期2009年1月7日 优先权日2008年1月7日
发明者兰德尔·斯科特·斯普林菲尔德, 戴维·卡罗列·查利纳, 罗德·戴维·沃特曼, 马克·查尔斯·戴维斯 申请人:联想(新加坡)私人有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1