与统一可扩展固件接口系统可执行的脚本有关的阈值的制作方法

文档序号:15072396发布日期:2018-08-01 00:09阅读:221来源:国知局

统一可扩展固件接口(uefi)是定义操作系统与固件层之间接口的规范。当前生产的计算机普遍实施uefi系统,作为数十年来用于管理启动进程的基本输入输出系统(bios)的改进。uefi系统可以在没有操作系统的情况下支持诸如诊断等操作。

附图说明

图1和图2是描绘了用于在预启动阶段执行脚本的示例系统的框图。

图3描绘了其中用于在预启动阶段执行脚本的各种系统可以被实施的示例环境。

图4描绘了被用于实施用于在预启动阶段执行脚本的示例系统的示例操作。

图5和图6是描绘了用于在预启动阶段执行脚本的示例方法的流程图。

具体实施方式

在下面的说明和附图中,用于在预启动阶段执行脚本的装置、系统和/或方法的一些示例实施方式被描述。uefi提供了其中多个功能可以在加载操作系统之前被执行的环境。这些操作可以包括硬件诊断、用户认证、文件和注册表完整性检查、固件升级、防盗程序等。it管理员可以单独地在每台机器上手动地确定uefi预操作系统环境中的动作。

下面所描述的各种示例涉及建立用于以托管方式执行uefi本地脚本的可控uefi环境。通过提供由控制程序监控的执行环境和/或通过将功能限制为预定原语,uefi本地脚本可以被开发并加载在可应用机器上,从而以程序化方式执行预启动操作。例如,这还可以在提供对uefi功能的精细控制和有力管理的同时允许it管理员和其他终端用户使用脚本语言在uefi中编程自定义动作,以及开发预启动阶段中的新特征和自动动作。通过设置指向服务器资源库的统一资源定位符(url)并且然后命令目标系统下载与其模型或其它特定配置信息相关联的脚本(或者多个脚本),网络连接可以被用于远程地且同时地管理多个系统。以这种方式,另一可能的好处可以是多系统的集中、同时管理。

如本文所使用的,术语“包括”、“具有”及其变型与术语“包含”或其适当变型意思相同。而且,如本文所使用的,术语“基于”意味着“至少部分地基于”。

图1和图2是描绘了用于在预启动阶段执行脚本的示例系统的框图。参照图1,图1中的示例系统100大体包括认证引擎102、原语引擎104和环境引擎106。一般来说,原语引擎104可以公开由在环境引擎106所管理的被约束执行环境中执行的脚本(由认证引擎102认证)可执行的一组功能。

认证引擎102表示用于确定脚本的源和该脚本的完整性级别的任何电路或者电路和可执行指令的组合。例如,认证引擎102可以表示电路和可执行指令的组合:一旦由该电路执行该可执行指令,则使该电路将脚本的数字签名与存储在计算设备(例如,目标计算机)上的数字证书的公共密钥比较,并且将对文件的散列函数的结果与校验和散列值进行比较。认证引擎102可以基于确定(例如,使用公共密钥和散列值的比较)生成脚本文件的完整性状态和真实性状态。如本文所使用的,脚本文件表示可在uefi系统上执行的脚本程序指令。完整性状态和真实性状态可以由认证引擎102和/或环境引擎106使用以确定是否执行脚本。例如,认证引擎102可以使用公共密钥来验证脚本文件的完整性状态和脚本文件的真实性状态,并且环境引擎106可以基于该完整性状态和/或真实性状态来确定不执行脚本。

认证引擎102可以包括用于从远程服务器资料库下载脚本的电路或者电路和可执行指令的组合。例如,认证引擎102可以包括电路和可执行指令的组合:一旦执行该指令,则使该电路提供第一接口以指定用于访问服务器资料库的诸如统一资源定位符(url)等统一资源标识符,提供第二接口以指定用于存储脚本文件的非易失性存储器资源,以及执行该脚本文件从服务器资料库到目标计算机上存储器资源的转移(例如,在该脚本文件的源已经被认证时)。认证引擎102可以包括用于基于目标设备配置文件来选择从服务器资料库下载的脚本的电路或者电路和可执行指令的组合,其中该目标设备配置文件表示用于包含该目标设备的与该目标设备的属性相关联的配置标识符的数据结构。示例配置标识符可以表示设备型号、配置状态、资源量、固件版本、设备性能等。

原语引擎104表示用于启用与脚本一起使用的多个原语的任何电路或者电路和可执行指令的组合,其中该多个原语定义经由uefi系统可获得的功能。例如,原语引擎104可以包括电路和可执行指令的组合:一旦执行该指令,则使该电路通过将uefi的操作的子集指定为可在脚本中使用的用于执行函数调用的多个原语来允许使用该子集。如本文所使用的,原语是表示可由计算设备执行的操作或者表示执行操作的条件的处理单元,例如离散语句或离散数据类型。由原语表示的操作或条件可以是触发诸如机器指令等多个低级操作的高级操作。例如,脚本原语可以是可由解释器处理以使一组指令由用于执行该解释器的电路执行的解释型语言语句,执行解释器可能涉及执行多个目标机器特定原语。该多个原语可以由环境引擎106使用。例如,在脚本文件的操作不被包括在uefi所允许的被许可原语的列表内时,环境引擎106可以响应于该操作与该列表的比较来拒绝执行该操作。如本文所使用的,原语表示操作类型的标识符,并且被许可原语表示用于被允许在执行环境内由uefi执行的操作类型的标识符。

环境引擎106表示用于管理uefi系统的脚本执行环境的任何电路或者电路和可执行指令的组合。例如,环境引擎106可以包括电路和可执行指令的组合:一旦执行该指令,则使该电路执行与由脚本执行的功能相关联的控制程序,以确保在基于一组阈值(例如资源阈值)的一组执行参数的限制之外不会执行该功能。环境引擎106可以响应于对脚本被认证(例如,基于源和完整性级别)的确定,在目标设备的初始化期间(例如,在起动操作系统之前的预启动阶段)启用该脚本的执行。环境引擎106可以基于由多个控制程序定义的阈值来通过uefi系统建立该脚本的执行参数。例如,环境引擎106可以建立关于固件层访问的资源限制,例如由脚本使用的存储器量或者由脚本使用的处理器时间量。通过建立uefi系统的执行参数,可以以受控方式执行脚本以保持在操作限制内,这例如可以增加初始化阶段中目标系统的安全性和操作完整性,尤其是在选择要启动的操作系统之前设备的操作状态。设备然后可以进入用于启动选定操作系统的启动阶段以及其中该操作系统可操作的后启动阶段。

脚本执行环境的管理可以通过限制可执行功能的类型和/或通过监控对环境的资源的访问来进行。例如,环境引擎106可以将脚本的执行限制于多个原语的功能。又例如,环境引擎106可以在运行时期间执行脚本的检查操作以位于资源使用参数(例如,由诸如资源的最大利用量或最小利用量等阈值表示的执行参数)内。如本文所使用的,检查操作可以表示任何决定性操作(例如,审阅操作、解析操作和/或比较操作),例如审阅使用历史、解析函数调用、将函数调用与先前函数调用比较等。脚本的函数可以响应于事件来执行,和/或控制程序可以响应于事件来执行。例如,环境引擎106可以包括用于识别脚本的响应于特定uefi事件要被执行的函数调用以及用于响应于该uefi事件来执行该函数的电路或者电路和可执行指令的组合。又例如,事件可以是资源请求,并且控制程序可以响应于该请求由环境引擎106启动,从而监控资源并中断任何未经认证的请求、过度使用、或其他资源滥用。

通过提供受控环境,脚本可以由uefi系统执行以在目标设备的特定限制内与固件层交互。特定控制程序可以保护该目标设备的特定资源,以允许成功执行该脚本而不会例如带来可能妨碍目标设备的诸如启动等进一步操作的不期望结果。可以以受控方式被允许的示例脚本程序功能可以包括:升级uefi、修改uefi配置界面中的画面或项、执行内部应用程序编程接口(api)命令、操作用于加载或卸载驱动器的驱动器机制、执行诊断检查、检查操作系统完整性、访问uefi函数或数据(例如内部uefi函数、uefi环境变量、硬件清单、系统日志文件、注册表值、uefi应用等)。

在一些示例中,本文关于图1至图3中任一附图描述的功能可以以与本文关于图4至图6中任一附图描述的功能组合来提供。

图2描绘了可以包括可操作地被连接到处理器资源222的存储器资源220的示例系统200。参照图2,存储器资源220可以包含可由处理器资源222执行的一组指令。在该组指令由处理器资源222执行时,该组指令是可操作的以使该处理器资源222执行系统200的操作。存储在存储器资源220上的一组指令可以被表示为认证模块202、原语模块204和环境模块206。认证模块202、原语模块204和环境模块206表示在被执行时分别起到图1的认证引擎102、原语引擎104和环境引擎106的功能的程序指令。处理器资源222可以实施一组指令以执行模块202、204、206,和/或系统200的模块之中和/或与系统200的模块相关联的任何其他适当操作。例如,处理器资源222可以实施一组指令以:凭借数字证书来认证脚本源,解释脚本以在表示经由uefi系统可获得的功能的一组原语上运行,响应于对脚本达到完整性级别的确定根据与该组原语相关联的多个阈值经由该uefi系统执行该脚本,以及检查由执行该脚本产生的事件以识别该脚本正在由该多个阈值定义的限制内执行。又例如,处理器资源222可以实施一组指令以:从预定标识符(例如,静态定义的标识符)或用户提供的标识符确定url,基于目标设备配置文件来选择从服务器资料库下载的脚本,经由url从该服务器资料库下载该脚本,以及通过使用公共密钥凭借数字证书来检查脚本源。再例如,处理器资源222可以实施一组指令以:响应于对脚本源未被认证的确定来取消脚本的下载操作,或者响应于确定指示所请求的功能在阈值之外执行的事件发生来终止该脚本的执行。再例如,处理器资源222可以实施一组指令以使uefi系统:使用公共密钥验证脚本文件的完整性状态和脚本文件的真实性状态,响应于对该脚本文件是真实的确定、经由语言解释器分析该脚本文件的内容,基于该内容的分析来建立关于该脚本文件的执行的阈值,以及执行该脚本的同时执行控制程序,该控制程序用于实施该阈值。

尽管这些特定模块已经关于图2和其他示例实施方式被示出并被讨论,但是模块的其他组合或子组合可以被包括在其他实施方式中,并且本文示例中讨论的特定功能和其他功能可以在不同模块或模块的组合中被完成、实施或实现。例如,图4描绘了如何将功能组织到模块中的又一示例。

如本文所使用的,处理器资源表示能够处理(例如,计算)指令的任何适当电路,例如能够从存储器资源取回指令并且执行这些指令的一个或多个处理元件。例如,处理器资源222可以是能够通过获取、解码并执行模块202、204和206在预启动阶段执行脚本的中央处理单元(cpu)。处理器资源的示例包括cpu、基于半导体的微处理器、可编程逻辑器件(pld)等。pld的示例包括专用集成电路(asic)、现场可编程门阵列(fpga)、可编程阵列逻辑(pal)、复杂可编程逻辑器件(cpld)、可擦除可编程逻辑器件(epld)等。处理器资源可以包括被集成在单个设备中或者被分布在多个设备上的多个处理元件。处理器资源可以连续地、同时地或者部分同时地处理指令。

如本文所使用的,存储器资源表示能够包含(即,存储)机器可读格式(例如,机器可读介质)的数据(例如系统200中的模块)的非暂时性介质(或非暂时性介质的组合)。这种介质可以是电的、磁的、光的或作为区别于暂时性传输介质(例如信号)的存储介质的其他物理存储设备。存储器资源220可以是诸如只读存储器(rom)等非易失性存储器资源、诸如随机存取存储器(ram)等易失性存储器资源、其它存储设备或者它们的组合。存储器资源220的示例形式包括硬盘驱动器(hd)、固态驱动器(ssd)、光盘驱动器、静态ram(sram)模块、动态ram(dram)模块、电可擦除可编程rom(eeprom)、闪存等。

在本文的讨论中,图1的引擎102、104和106以及图2的模块202、204和206已经被描述为电路或者电路和可执行指令的组合。这些组件可以以多种方式来实施。参照图2,可执行指令可以是被存储在存储器资源220上的诸如程序指令等处理器可执行指令,存储器资源220是有形的非暂时性计算机可读存储介质,并且电路可以是用于执行这些指令的诸如处理器资源222等电子电路。存储器资源220可以被集成在与处理器资源222相同的设备中,或者可以是单独的、但可以由该设备以及该处理器资源222访问。

驻留在存储器资源220上的指令可以包括由处理器资源222直接地执行(例如机器代码)或间接地执行(例如脚本)的任何一组指令。在一些示例中,系统200可以包括作为安装包的一部分的可执行指令,在安装该安装包时,处理器资源222可以执行该安装包以实施系统200的功能,例如参照图4至图6描述的方法。在该示例中,存储器资源220可以是诸如光盘、数字视频盘、闪存驱动器或者由诸如图3的服务设备334等计算机设备维护的存储器等便携式介质,安装包可以从该便携式介质下载并安装。在另一个示例中,可执行指令可以是已安装的一个或多个应用程序的一部分。

图3描绘了其中用于在预启动阶段执行脚本的各种示例系统300可以被实施的示例环境。该示例环境390被示出为包括示例系统300(本文参照图1和2所描述的),该示例系统300大体表示用于在预启动阶段执行脚本的任何电路或者电路和可执行指令的组合。系统300可以包括分别与图1中的认证引擎102、原语引擎104和环境引擎106相类似的认证引擎302、原语引擎304和环境引擎306,除了环境引擎306被描绘为包括解释器引擎308和执行引擎310。如图3所示,引擎302、304、306、308和310可以被集成到诸如目标设备336等计算设备中。引擎302、304、306、308和310可以经由电路或者作为安装指令被集成到计算设备的存储器资源中。

如图3中所描绘的,环境引擎306可以包括解释器引擎308和执行引擎310。解释器引擎308表示用于分析脚本内容的任何电路或者电路和可执行指令的组合。例如,解释器引擎308可以是电路和可执行指令的组合:一旦执行该指令,则使该电路(例如,响应于对该脚本文件是真实的确定)执行语言解释器以分析脚本文件的内容并且识别脚本中的不是被允许原语列表中的功能的函数调用。解释器引擎308可以特定于特定脚本语言或者可能能够解释多种脚本语言。解释器引擎308可以针对函数调用的特定分类、函数调用的特定结果、利用特定资源的函数调用和/或激活特定事件的函数调用来分析该脚本文件。例如,解释器引擎308可以将脚本的操作与uefi允许的原语列表比较,并且响应于该操作与原语列表的比较来拒绝脚本文件的操作的执行。又例如,解释器引擎308可以识别脚本的响应于特定uefi事件要被执行的函数调用,并且启动控制程序以监控该uefi事件。解释器引擎308可以执行语言解释器,启用该语言解释器以访问uefi应用程序接口,以及使该语言解释器识别该脚本文件的一组动作是否与装置的设备配置文件相匹配。解释器引擎308和/或执行引擎310可以响应于对该脚本包含特定函数调用的确定来禁止该脚本的执行。

执行引擎310表示用于在托管运行时环境中执行脚本的任何电路或者电路和可执行指令的组合。例如,执行引擎310可以是电路和可执行指令的组合:一旦执行该指令,则使该电路执行多个控制程序以在运行时期间检查脚本的操作位于由该控制程序监控的阈值所表示的资源使用参数内,其中控制程序实施与脚本的执行同时执行的并监控阈值条件状态(例如资源使用量或时间限制)的执行参数。执行引擎310使得经由控制程序修改脚本的执行。例如,执行引擎310可以响应于确定指示所请求的功能在阈值之外执行的事件发生来终止脚本的执行,或者可以使运行脚本的解释器阻止脚本继续。执行引擎310可以直接运行该脚本或者可以经由uefi系统300管理运行该脚本。例如,执行引擎310可以响应于对在解释阶段和/或运行时阶段脚本文件的操作要在阈值的参数之外执行的确定来拒绝该操作的执行。

可以建立与本文的示例描述兼容的环境390。例如,脚本程序342可以使用适当的语言并使用uefi系统300中的期望动作来设计。脚本程序342的数字签名346可以使用私有密钥348来生成。服务器资料库(例如,数据存储器340)可以被加载有脚本程序342和对应的数字签名346。目标设备346可以被加载有具有公共密钥318的数字证书316,该公共密钥318与数字签名346的私有密钥348相对应。例如,目标设备336可以配置有用于uefi脚本的服务器资料库的url312以及脚本文件名称314。使用被存储在适当位置的那些项,目标设备336可以通过更新或者以其他方式修改远程存储的脚本342来管理。

如本文所描述的,目标设备336与适于控制uefi函数的脚本的uefi系统300兼容。例如,存储在非暂时性计算机可读存储介质上的一组指令可以由目标设备336的处理器资源执行以使uefi系统:使用公共密钥验证脚本文件的真实性状态和完整性状态,在脚本文件是真实的并且符合完整性检查时执行脚本语言解释器以分析脚本文件的内容,以及基于内容的分析在执行脚本的同时执行控制程序以建立关于该脚本文件的执行的阈值。又例如,该组指令在执行时可以使uefi系统:检查目标设备336上是否存在适当的url,从url处的资料库取回脚本文件,从url处的资料库取回数字签名,确定脚本的文件散列是否是真实的,以及响应于对文件散列不是真实的确定来防止uefi系统执行该脚本或者响应于对文件散列是真实的确定来允许该脚本的执行。又例如,该组指令可以使uefi系统:从远程资料库下载脚本,启用脚本语言解释器以访问uefi应用程序接口(api),执行语言解释器以识别脚本文件的一组动作是否与该装置的设备配置文件相匹配,响应于对脚本文件的任何操作要在如由执行参数设定的阈值之外执行的确定来拒绝该操作的执行,和/或响应于脚本文件的操作与uefi系统允许的原语列表的比较来拒绝该操作的执行。

示例环境390可以包括计算设备,例如开发设备332、服务设备334和客户端设备336。第一组指令可以在开发设备332上被开发和/或修改。例如,脚本342可以在开发设备332上被开发和/或修改,并且被存储到由服务设备334维护的数据存储器340中。服务设备334大体表示用于响应从诸如目标设备336等客户端设备(无论是虚拟的还是真实的)接收到的网络请求的任何计算设备。例如,响应于用于访问存储位置的请求,服务设备334可以操作电路和可执行指令的组合以提供网络数据包。客户端设备大体表示用于传送网络请求并且接收和/或处理对应的响应的任何计算设备。例如,浏览器应用可以被安装在客户端设备上以从服务设备334接收网络数据包,并且利用数据包的有效载荷经由浏览器应用显示页面元素。

计算设备可以位于相同网络330上或者单独网络330上。示例环境390可以包括任何适当数量的网络330,并且任何数量的网络330可以包括云计算环境,该云计算环境包括计算资源的虚拟共享池。系统300与计算设备的任何适当组合可以是虚拟共享资源池中资源的虚拟实例。本文中,系统300的引擎和/或模块可以驻留或执行“在云端”(例如,驻留和/或执行在虚拟共享资源池上)。

链路338大体表示经由电信链路、红外链路、射频链路或提供电子通信的系统的任何其他连接器的电缆、无线连接、光纤连接或远程连接中的一种或者它们的组合。链路338可以至少部分地包括内联网、因特网或者二者的组合。链路338还可以包括中间代理服务器、路由器、交换器、负载平衡器等。

数据存储器340可以包含由引擎302、304、306、308和310利用的信息。例如,数据存储器340可以存储脚本342、原语列表344、数字证书346、公共密钥348等。

参照图1至图3,图1的引擎102、104、106和/或图2的模块202、204、206可以被分布在设备332、334、336上或者它们的组合上。引擎和/或模块可以完成或辅助完成在描述其他引擎和/或模块中执行的操作。例如,图3的环境引擎306可以请求、完成或执行通过图1的环境引擎106以及图1的认证引擎102和原语引擎104描述的方法或操作。因此,虽然不同引擎和模块在图1和图2中被示出为单独的引擎,但是在其他实施方式中,多个引擎和/或模块的功能可以被实施为单个引擎和/或模块,或者被划分到各种引擎和/或模块中。在一些示例中,系统300的引擎可以执行结合图4至图6描述的示例方法。

图4描绘了用于实施用于在预启动阶段执行脚本的示例系统的示例操作。参照图4,图4的示例组件大体包括原语引擎404、认证引擎402和环境引擎406。图4的示例组件可以被实施在诸如图3的目标设备336等计算设备上。

原语引擎404公开了在脚本中使用的用于操作uefi系统的原语列表440。例如,原语引擎404可以使可由uefi系统执行的功能的列表可用。环境引擎406可以将脚本中基于被启用的函数而被允许的可执行动作限定为由原语引擎404管理。开发者可以使用所公开的原语生成脚本454。脚本可以被加载到系统上并被认证,或者可以在例如从远程资料库下载该脚本等取回过程中被认证。可以使用任何脚本语言,只要对应的解释器和特定uefi系统中的可用uefirom模块空间相称。

在预启动阶段期间,脚本请求450可以被生成以检查是否存在任何要执行的脚本。响应于接收到该脚本请求450,认证引擎402验证是否加载了url并且然后从该url452下载脚本454(例如,使用脚本文件名称)和对应的证书456。认证引擎402可以包括诸如接口模块422和下载模块444等程序指令,以有助于访问资料库以及取回脚本454。接口模块442表示在由处理器资源执行时使uefi系统使用url452并使用诸如超文本传送协议(http)或文件传送协议(ftp)等协议建立与资料库的网络连接的程序指令。例如,接口模块442可以被执行以使设备检查url是否在内部存储器资源的适当地址中被加载,并且可以或不可以执行与资料库的连接,这取决于是否存在url和/或是否已下载了具有适当文件名称的脚本。下载模块444表示在由处理器资源执行时使uefi系统从url452处的资料库下载脚本文件454的程序指令。认证引擎402使uefi系统检查脚本文件的完整性和真实性。例如,认证引擎402可以使uefi系统使用加载的公共密钥和与脚本文件454相关联的数字签名比较。如果脚本经检查是有效的和真实的,则该脚本可以被认证以由uefi系统执行。

执行引擎406可以包括使脚本454在受控执行环境460中执行的程序指令(例如,解释模块408、执行模块410和监控模块446)。解释模块408表示在由处理器资源执行时使uefi系统的语言解释器分析脚本454的内容的程序指令。环境引擎406可以基于脚本文件454的内容的分析来建立要执行的一个或多个控制程序458。执行模块410表示在由处理器资源执行时使语言解释器执行该一个或多个控制程序458以生成执行环境460的程序指令,其中脚本执行462可以以由该控制程序458管理的方式来执行。监控模块446表示控制程序的在由处理器资源执行时使控制程序监控执行环境460的状态并且将该执行环境的参数与诸如资源阈值等阈值比较的程序指令。由脚本文件454定义的程序可以依次被完整地执行,或者语言解释器可以定义稍后可执行的部分,例如由uefi特定事件触发的功能。在脚本完成执行462(要么通过完成该脚本,要么基于因超出阈值而终止)之后,uefi系统然后利用操作系统使设备启动464。

图5和图6是描绘了用于在预启动阶段执行脚本的示例方法的流程图。参照图5,用于在预启动阶段执行脚本的示例方法大体可以包括:凭借数字证书来认证脚本源,解释脚本以在一组原语上运行,以及根据与原语相关联的多个阈值、经由uefi系统执行该脚本。例如,用于在预启动阶段执行脚本的方法可以由系统100的引擎102、104和106执行。

在框502处,凭借数字证书来认证脚本源。例如,经由诸如图1的认证引擎102等认证引擎,在执行脚本之前,使用公钥和私钥的公私加密方案可以被用于认证该脚本的源。在框504处,脚本被解释以在一组原语上运行。例如,uefi系统的功能的子集可以被许可以被执行,并且脚本语言解释器可以验证:该脚本调用经由诸如图1的原语引擎104等原语引擎可获得的准许函数(例如,仅调用准许函数,移除未准许函数,在识别到未准许函数时终止解释等)。在框506处,根据与该组原语相关联的多个阈值,经由uefi系统执行该脚本。例如,原语可以被允许经由诸如图1的环境引擎106等环境引擎来运行,并且在功能保持在诸如执行参数等阈值内的情况下执行该功能,该执行参数定义被允许由脚本执行使用的计算资源的量。

图6包括与图5的框相类似的框并且提供了附加框和细节。具体地,图6描绘了大体与从服务器资料库下载脚本、识别脚本的函数调用、执行控制程序以及终止脚本有关的附加框和细节。框606、608和614与图5的框502、504和506相同,并且为了简洁,它们各自的描述不再完整地重复。

在框602处,在url处访问服务器资料库。url可以被预加载,或者uefi可以提供接口以允许用户进入指向服务器上脚本资料库的url。在框604处,无论该url是静态定义的资源定位符还是经由接口由用户提供的,资料库被访问并且脚本从服务器资料库被选择并被下载到目标设备。该脚本可以从多个脚本中选择,该多个脚本中可能存在与特定设备配置文件相关联的脚本。在该示例中,脚本可以基于目标设备的设备配置文件由诸如图1的认证引擎102等认证引擎选择。

在框610处,脚本的函数调用被识别为与控制程序相关联。例如,uefi系统可以包括语言解释器,该语言解释器使用查找表、字典或其他映射机制将控制程序链接到特定函数调用。在框612处,可以在执行脚本的同时执行对应的控制程序。例如,环境引擎(例如,图1的环境引擎102)可以使控制程序执行以在脚本的执行期间中监控该脚本,例如监控该脚本的函数调用的资源使用。

在框616处,响应于确定指示所请求的功能在阈值之外执行的事件发生,该脚本被终止。例如,在控制程序监控执行环境时,该控制程序能够在达到资源使用阈值时通过终止脚本的函数来限制访问或者终止所有脚本。以这种方式,脚本可以由uefi系统执行而不会例如滥用资源(例如通过恶意代码)。

例如,脚本程序可以允许:访问许多内部uefi功能和数据(例如用户界面(ui)、uefi驱动器加载/卸载机制),执行内部api命令,读取和写入uefi环境变量等,这使得辅助人员和/或终端用户有可能在系统中对强大的控制动作进行编程,例如起动用于系统诊断的uefi应用、执行硬件查询、下载系统日志文件、检查操作系统完整性、读取或改变注册表值、在uefi配置界面中添加画面和项、更新自己的uefi等。例如,信息技术(it)公司可以发布在加载主操作系统之前执行uefi功能(例如系统识别、诊断和故障排查)并将结果发送回it公司以进行分析的脚本。例如,脚本的远程加载可以允许同时管理多个系统以执行动态编程逻辑,从而选择每个系统将通过该uefi系统执行哪些动作。

虽然图4至图6的流程图示出了特定执行顺序,但是执行顺序可以不同于所示出的顺序。例如,框的执行顺序可以相对于所示顺序来被打乱。而且,所示的连续框可以同时被执行或者部分同时被执行。所有这些变型都落入本说明的范围内。

本说明书(包括任何所附权利要求、摘要和附图)中公开的所有特征和/或由此公开的任何方法或过程的所有元素可以以任何组合来被组合,除非其中这些特征和/或元素中的至少一些互相排斥的组合。

已经参照前述示例示出并且描述了本说明。然而,应理解的是,在不脱离所附权利要求的实质和范围的情况下,可以做出其他形式、细节和示例。权利要求中使用的词“第一”、“第二”或相关术语并不被用于限定权利要求元素的顺序或位置,而仅被用于区分单独的权利要求元素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1