固件传感器层转让专利

申请号 : CN201480079192.8

文献号 : CN106462548B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : U.R.汉布特姚颉文V.J.齐默

申请人 : 英特尔公司

摘要 :

本文公开了与提供无操作系统(OS)固件传感器层以支持引导过程相关联的计算设备、计算机可读存储介质和方法。在实施例中,计算设备可以包括处理器以及要在处理器上操作的固件。固件可以包括一个或多个模块和传感器层。传感器层可以配置为在无OS环境中接收由多个传感器产生的传感器数据。传感器层可以进一步配置为经由对多个传感器进行抽象的传感器层的接口向一个或多个模块选择性地提供传感器数据。可以描述和/或要求保护其它实施例。

权利要求 :

1.一种计算设备,包括:

处理器;以及

要由处理器操作的固件,其包括一个或多个模块和传感器层,传感器层用于:在无操作系统固件环境中接收由多个传感器产生的传感器数据,其中多个传感器属于计算设备或者与计算设备操作地耦合;以及经由对多个传感器进行抽象的传感器层的接口向一个或多个模块选择性地提供传感器数据,进一步包括要在所述计算设备上实例化的操作系统,其中所述固件独立于所述操作系统,所述无操作系统固件环境是引导过程的部分,用于促使所述计算设备实现无操作系统操作状态。

2.根据权利要求1所述的计算设备,其中一个或多个模块包括环境因素引导模块,用于:通过传感器层的接口从传感器层接收传感器数据的部分;以及

至少部分地基于传感器数据的所述部分来应用一个或多个策略,其中传感器数据的所述部分与由一个或多个策略限定的一个或多个环境因素相关联,其中应用一个或多个策略是在至少部分地基于与一个或多个环境因素相关联的传感器数据的部分而做出违反一个或多个策略的确定时终止计算设备的引导过程,或者是至少部分地基于与环境因素相关联的传感器数据的部分而选择性地实例化一个或多个驱动器。

3.根据权利要求2所述的计算设备,其中环境因素包括温度、湿气、湿度、海拔、声压级、音频频率、振动、速度、加速度或照明中的一个或多个。

4.根据权利要求1所述的计算设备,其中多个传感器中的一个或多个传感器设置在计算设备上,并且经由总线接口与处理器操作地耦合。

5.根据权利要求1所述的计算设备,其中多个传感器中的一个或多个传感器经由人机接口设备HID驱动器与计算设备通信地耦合。

6.根据权利要求1-5中任一项所述的计算设备,其中计算设备是包括多个传感器的物联网边缘设备。

7.根据权利要求1-5中任一项所述的计算设备,其中计算设备为以下各项至少其中之一:膝上型计算机、上网本、笔记本、超级本、智能电话、平板计算机、个人数字助理、超级移动个人计算机、移动电话、台式计算机、服务器或机顶盒。

8.一种由计算设备执行的方法,包括:

通过计算设备的无操作系统固件环境来实例化具有提供对多个传感器的抽象的接口的传感器层,其中所述固件独立于要在所述计算设备上实例化的所述操作系统,所述无操作系统固件环境是引导过程的部分,用于促使所述计算设备实现无操作系统操作状态;

通过无操作系统固件环境中的传感器层来接收由多个传感器产生的传感器数据;以及通过传感器层经由传感器层的接口向一个或多个固件模块选择性地提供传感器数据。

9.根据权利要求8所述的方法,其中一个或多个固件模块包括环境因素引导模块,并且进一步包括:由环境因素引导模块通过传感器层的接口从传感器层接收传感器数据的部分;以及通过环境因素引导模块至少部分地基于传感器数据的所述部分来应用一个或多个策略,其中传感器数据的所述部分与由一个或多个策略限定的一个或多个环境因素相关联,其中应用一个或多个策略是在至少部分地基于与一个或多个环境因素相关联的传感器数据的部分而做出违反一个或多个策略的确定时终止计算设备的引导过程,或者是至少部分地基于与环境因素相关联的传感器数据的部分而选择性地实例化一个或多个驱动器。

10.根据权利要求8所述的方法,其中一个或多个固件模块包括传感器校准模块,并且进一步包括:通过传感器校准模块至少部分地基于由传感器产生的传感器数据来验证多个传感器中的传感器;或者通过传感器校准模块至少部分地基于由传感器产生的传感器数据来校准多个传感器中的传感器。

11.根据权利要求10所述的方法,其中验证多个传感器中的传感器进一步包括:向计算设备的操作系统核验由传感器产生的传感器数据的有效性。

12.根据权利要求10所述的方法,其中校准多个传感器中的传感器进一步包括:与传感器层交互以使由传感器产生的传感器数据与参考值匹配;或者操纵传感器数据以使传感器数据与参考值匹配。

13.根据权利要求8所述的方法,进一步包括,其中无操作系统固件环境是引导过程的统一可扩展固件接口UEFI环境。

14.根据权利要求13所述的方法,其中无操作系统固件环境是UEFI环境的驱动器执行环境DXE。

15.一种计算设备,包括:

用于在无操作系统固件环境中实例化具有提供对多个传感器的抽象的接口的传感器层的构件,其中所述固件独立于要在所述计算设备上实例化的操作系统,所述无操作系统固件环境是引导过程的部分,用于促使所述计算设备实现无操作系统操作状态;

用于在无操作系统固件环境中接收由多个传感器产生的数据的构件,其中多个传感器属于计算设备或者与计算设备操作地耦合;以及用于经由传感器层的接口向一个或多个固件模块选择性地提供传感器数据的构件。

16.根据权利要求15所述的计算设备,其中一个或多个固件模块包括环境因素引导模块,环境因素引导模块包括:用于通过传感器层的接口从传感器层接收传感器数据的部分的构件;以及用于至少部分地基于传感器数据的所述部分来应用一个或多个策略的构件,其中传感器数据的所述部分与由一个或多个策略限定的一个或多个环境因素相关联,其中应用一个或多个策略是在至少部分地基于与一个或多个环境因素相关联的传感器数据的部分而做出违反一个或多个策略的确定时终止计算设备的引导过程,或者是至少部分地基于与环境因素相关联的传感器数据的部分而选择性地实例化一个或多个驱动器。

17.根据权利要求16所述的计算设备,其中用于应用一个或多个策略的构件进一步包括:用于至少部分地基于与一个或多个环境因素相关联的传感器数据的部分来确定是否违反一个或多个策略的构件;以及用于至少部分地基于确定的结果来终止计算设备的引导过程的构件。

18.根据权利要求16所述的计算设备,其中用于应用一个或多个策略的构件进一步包括:用于至少部分地基于与环境因素相关联的传感器数据的部分来选择性地实例化一个或多个驱动器的构件。

19.根据权利要求15所述的计算设备,其中一个或多个固件模块包括传感器校准模块,传感器校准模块包括:用于至少部分地基于由传感器产生的传感器数据的部分来验证多个传感器中的传感器的构件;或者用于至少部分地基于由传感器产生的传感器数据的部分来校准多个传感器中的传感器的构件。

20.根据权利要求15所述的计算设备,其中一个或多个固件模块包括数据安全模块,数据安全模块包括:用于接收要加密的数据的构件;

用于至少部分地基于从传感器层所接收的本地传感器信息来生成加密密钥的构件;

用于利用加密密钥对数据加密的构件;以及

用于将本地传感器信息作为加密信息保持在计算设备的存储器中的构件。

21.根据权利要求20所述的计算设备,其中数据安全模块进一步包括:用于接收对数据进行解密的请求的构件;

用于从传感器层接收附加本地传感器信息的构件;

用于检索加密信息的构件;

用于在附加本地传感器信息与加密信息匹配时,至少部分地基于附加本地传感器信息来生成解密密钥的构件;以及用于利用解密密钥对数据进行解密的构件。

22.一种其上存储有指令的计算机可读介质,所述指令当被执行时使得计算设备执行根据权利要求8至14中任一项所述的方法。

23.一种要与计算设备一起使用的装置,包括:

用于通过计算设备的无操作系统固件环境来实例化具有提供对多个传感器的抽象的接口的传感器层的构件,其中所述固件独立于要在所述计算设备上实例化的操作系统,所述无操作系统固件环境是引导过程的部分,用于促使所述计算设备实现无操作系统操作状态;

用于通过无操作系统固件环境中的传感器层来接收由多个传感器产生的传感器数据的构件;以及用于通过传感器层经由传感器层的接口向一个或多个固件模块选择性地提供传感器数据的构件。

24.根据权利要求23所述的装置,其中一个或多个固件模块包括环境因素引导模块,并且进一步包括:用于由环境因素引导模块通过传感器层的接口从传感器层接收传感器数据的部分的构件;以及用于通过环境因素引导模块至少部分地基于传感器数据的所述部分来应用一个或多个策略的构件,其中传感器数据的所述部分与由一个或多个策略限定的一个或多个环境因素相关联,其中应用一个或多个策略是在至少部分地基于与一个或多个环境因素相关联的传感器数据的部分而做出违反一个或多个策略的确定时终止计算设备的引导过程,或者是至少部分地基于与环境因素相关联的传感器数据的部分而选择性地实例化一个或多个驱动器。

25.根据权利要求23所述的装置,其中一个或多个固件模块包括传感器校准模块,并且进一步包括:用于通过传感器校准模块至少部分地基于由传感器产生的传感器数据来验证多个传感器中的传感器的构件;或者用于通过传感器校准模块至少部分地基于由传感器产生的传感器数据来校准多个传感器中的传感器的构件。

26.根据权利要求25所述的装置,其中用于验证多个传感器中的传感器的构件进一步包括:用于向计算设备的操作系统核验由传感器产生的传感器数据的有效性的构件。

27.根据权利要求25所述的装置,其中用于校准多个传感器中的传感器的构件进一步包括:用于与传感器层交互以使由传感器产生的传感器数据与参考值匹配的构件;或者用于操纵传感器数据以使传感器数据与参考值匹配的构件。

28.根据权利要求23所述的装置,进一步包括,其中无操作系统固件环境是引导过程的统一可扩展固件接口UEFI环境。

29.根据权利要求28所述的装置,其中无操作系统固件环境是UEFI环境的驱动器执行环境DXE。

说明书 :

固件传感器层

技术领域

[0001] 本公开的实施例涉及计算设备的领域,并且具体地涉及提供用于操作计算设备的无系统操作的固件传感器支持。

背景技术

[0002] 本文提供的背景描述是用于一般地呈现本公开的上下文的目的。除非在本文以其它方式指示,否则在该章节中描述的素材不是本申请中的权利要求的现有技术并且不通过
包括于该章节中而被承认为现有技术。
[0003] 基本上所有计算设备在加电或重置期间都经历引导(初始化)过程。典型地,在引导(初始化)过程期间,执行加电自测试并且然后定位和初始化外围设备,其中以操作系统的加载和开启而结束。现代计算平台包含可以连续地收集传感器信息的大量传感器。然而,在当前现有技术之下,传感器信息仅通过计算设备的操作系统的传感器层而可访问。这样,传感器数据在计算设备的引导过程期间或者在没有操作系统的计算设备上的使用不可获得。

附图说明

[0004] 图1描绘了依照本公开的各种实施例的具有固件传感器层的计算环境的示意性图示。
[0005] 图2描绘了依照本公开的各种实施例的计算设备的说明性引导流。
[0006] 图3描绘了依照本公开的各种实施例的图2的引导流的可替换视图。
[0007] 图4描绘了依照本公开的各种实施例的用于通过数据安全模块在引导过程期间密封数据的示例使用过程。
[0008] 图5描绘了依照本公开的各种实施例的用于在引导过程期间解封数据的示例使用过程流。
[0009] 图6描绘了依照本公开的各种实施例的适于实现固件传感器层或者任何传感器使用模块的示例计算设备。
[0010] 图7图示了依照各种实施例的具有配置为使得计算设备能够实践本公开的指令的示例存储介质。

具体实施方式

[0011] 本文公开了用于无操作系统(OS)环境中的传感器层和传感器使用的计算设备、方法和存储介质。在实施例中,计算设备可以具有配置为接收由各种传感器产生的传感器数据的固件传感器层,包括在无OS操作期间、诸如计算设备的引导过程期间或者在无OS操作
模式中接收传感器数据。固件传感器层可以选择性地经由对各种传感器进行抽象的固件传
感器层的接口,来向一个或多个使用模块提供传感器数据。在实施例中,使用模块可以配置为以各种方式对传感器数据起作用,包括例如但不限于,在决定是否终止引导过程时利用
关于环境因素的传感器数据,利用传感器数据向计算设备密封数据,利用传感器数据在引
导过程期间核验传感器或校准传感器。
[0012] 在以下具体实施方式中,参照形成其一部分的附图,贯穿附图中类似标记指明类似部分,并且其中通过说明方式示出可以实践的实施例。应理解,可以利用其他实施例,并且在不偏离本公开的范围的情况下可以做出结构或逻辑改变。因此,以下具体实施方式不
应以限制性意义来考虑,并且实施例的范围由所附权利要求和它们的等同物来限定。
[0013] 可以以最有助于理解要求保护的主题的方式把各种操作描述为依次的多个分立动作或操作。然而,描述的顺序不应当解释为暗示这些操作一定是顺序相关的。具体来说,可以不按照呈现顺序来执行这些操作。所描述的操作可以以与所描述的实施例不同的顺序
执行。在附加实施例中可以执行各种附加操作和/或所描述的操作可以省略。
[0014] 出于本公开的目的,短语“A和/或B”意指(A)、(B)或者(A和B)。出于本公开的目的,短语“A、B和/或C”意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或者(A、B和C)。描述可以使用短语“在一实施例中”或“在实施例中”,其各自可以是指相同或不同实施例中的一个或多个。此外,如关于本公开的实施例使用的,措辞“包括”、“包含”、“具有”等是同义词。
[0015] 图1描绘了依照本公开的各种实施例的具有固件传感器层118的计算环境的示意性图示。在实施例中,计算环境可以包括硬件100和无操作系统(无OS)固件环境102。在一些实施例中,无OS固件环境102可以划分成两个区段:驱动器栈104以及传感器层和使用部
106。驱动器栈104在一些实施例中可以配置为提供固件传感器层(后文简称为传感器层)
118和硬件100之间的通信。
[0016] 硬件100可以包括与主机控制器110耦合的一个或多个传感器108。传感器108可以包括任何数目或类型的传感器,包括但不限于,图像传感器;音频传感器;触摸传感器;全球定位系统(GPS);加速度计;陀螺仪;高度计;湿气传感器;湿度传感器;光传感器;压力传感器;信号相关传感器,诸如红外、蓝牙或Wi-Fi;或其任何组合。主机控制器110可以配置为控制各种低等级数据传送,包括例如去往和来自传感器108的数据分组的传送。
[0017] 在实施例中,驱动器栈104可以包括一个或多个主机控制器驱动器112、一个或多个总线驱动器114、以及一个或多个类驱动器116,所有这些在后文以单数形式来提及。主机控制器驱动器112在一些实施例中可以与主机控制器110以及因而驱动器114通信地耦合。
主机控制器驱动器112可以配置为提供总线驱动器114和主机控制器110之间的通用接口。
主机控制器驱动器112可以包括任何类型的惯常主机控制器驱动器,诸如但不限于,增强型主机控制器接口(EHCI)驱动器、开放式主机控制器接口(OHCI)驱动器、通用主机控制器接口(UHCI)驱动器或其任何组合。
[0018] 总线驱动器114可以与主机控制器驱动器112和类驱动器116通信地耦合,并且可以配置为在类驱动器116和主机控制器驱动器112之间对接。总线驱动器114可以配置为提
供服务阵列,诸如例如应对一个或多个硬件片段(例如,(多个)传感器108)到计算设备的连接以及从其断开连接。总线驱动器114还可以提供一个或多个硬件片段的基本初始化、针对一个或多个硬件片段的驱动器选择、和/或与一个或多个硬件片段的通信信道的较高等级
管理。通信总线驱动器114可以例如是通用串行总线(USB)驱动器、蓝牙驱动器、或者任何其它适当的总线或通信驱动器。
[0019] 类驱动器116可以与总线驱动器114和传感器层118通信地耦合,并且可以配置为在传感器层118和通信总线驱动器114之间对接。类驱动器116可以配置为利用对于一类硬
件设备共同的标准化协议的集合来实现功能性的阵列。类驱动器116在一些实施例中可以
提供充足的功能性以用于落入类内的硬件设备的操作。在其它实施例中,可以代替于或者
附加于类驱动器116而利用与给定硬件设备对应的分离驱动器。类驱动器116可以是任何类
型的惯常类驱动器,诸如例如任何USB类驱动器,包括但不限于,人机接口设备(HID)类驱动器、物理接口设备(PID)类驱动器、内容安全类驱动器、个人健康护理类驱动器、诊断设备类驱动器、无线控制器类驱动器等。
[0020] 传感器层118可以与类驱动器116和一个或多个固件使用模块(例如,使用模块120-126)通信地耦合,并且可以配置为在类驱动器116和一个或多个固件使用模块之间对
接。在实施例中,传感器层118可以配置为接收并且聚集由与计算设备耦合的任何数目的传感器(例如,(多个)传感器108)产生的传感器数据,并且可以配置为经由针对一个或多个固件使用模块而对传感器进行抽象的接口来将数据提供给固件使用模块。该抽象可以使传感
器特定信息模糊,从而允许固件使用模块访问由个体传感器产生的数据,而不需要知晓传
感器硬件的细节。在一些实施例中,在使传感器特定信息模糊的同时,传感器层118还可以配置为依照请求来提供传感器特定信息,诸如参照图4和5的示例过程流所讨论的那个。如
所描绘到,传感器层118可以配置成在无OS固件环境中操作,诸如例如在计算设备的引导过程期间、在计算设备的恢复期间、或者在无OS操作模式中(例如,在统一可扩展固件接口
(UEFI)壳(shell)运行时期间,诸如在图2或3中描绘并且在下文讨论的那个)操作。作为结果,传感器层118可以与计算设备上的OS独立地操作,并且可以在计算设备的引导过程期间或者在其他无OS上下文中向计算设备提供传感器支持,诸如当计算设备处于低功率状态中
时(例如,当计算设备处于睡眠模式中时)或者当计算设备正在无OS操作模式中操作时。在一些实施例中,传感器层118可以由多个传感器子层组成,其中每一个传感器子层可以与不同类驱动器、总线驱动器等通信。例如,一个传感器子层可以经由USB与传感器通信,而另一个传感器子层可以经由蓝牙与传感器通信。
[0021] 如上文所讨论的,传感器层118可以配置为向一个或多个使用模块提供传感器数据,使用模块诸如供应模块120、环境因素引导模块122、传感器校准模块124和数据安全模块126。使用模块120-126仅仅意为说明性的并且不应当被视为对本公开的限制。在实施例
中,使用模块120-126可以实现为要在无OS上下文中执行的固件,诸如在计算设备的引导过程期间或者在无OS操作模式(例如,在本文其它地方讨论的UEFI壳运行时)中执行,并且可以配置为对通过传感器层118所收集并且提供给个体使用模块的传感器数据起作用。
[0022] 供应模块120在一些实施例中可以配置为从可以不具有对传感器层118的直接访问的一个或多个请求者接收针对传感器数据的请求,并且供应模块120可以配置为将来自
传感器层118的数据提供给这些请求者。在一些实施例中,供应模块120可以仅在一个或多
个预限定的条件被请求者和/或传感器数据所满足的情况下,才提供所请求的数据。在其它实施例中,供应模块120可以配置为在一个或多个预限定的条件得以满足的情况下启用或
禁用计算设备的一个或多个特征。这些条件可以在供应模块120内限定,或者可以由对于供应模块120而言可以可访问的另一个固件模块来限定。条件可以包括基于通过传感器层118
提供给供应模块120的传感器数据的任何条件。作为示例,如果供应模块120从传感器数据
检测到计算设备正在低光环境中引导,则供应模块120可以供应用于附着到计算设备的键
盘的背光。
[0023] 环境因素引导模块122在一些实施例中可以配置为从传感器层118接收传感器数据,并且至少部分地基于传感器数据来应用一个或多个策略。这些策略可以在环境因素引
导模块122内限定,或者可以由对于环境因素引导模块122而言可以是可访问的另一个固件
模块来限定。在实施例中,传感器数据可以与由一个或多个策略限定的环境因素相关联。这些环境因素可以包括但不限于,关于温度、湿气、湿度、海拔、声压级、音频频率、振动、速度、加速度和/或照明的数据。
[0024] 在一些实施例中,一个或多个策略可以包括引导过程基于一个或多个环境因素的终止。例如,环境因素引导模块122可以配置为,如果一个或多个传感器108指示计算设备正在用于计算设备的不友好环境中引导,则终止引导过程或者使引导过程终止。作为示例,如果计算设备正在对于计算设备而言过热以至于不能恰当运转的环境中引导,则环境因素引
导模块122可以配置为终止引导过程或者使引导过程终止。
[0025] 在其它实施例中,环境因素引导模块122可以配置为至少部分地基于与传感器数据相关联的一个或多个环境因素,而选择性地实例化一个或多个驱动器或者使一个或多个
驱动器实例化。例如,并且仅仅作为示例,一个驱动器或者驱动器集合可以在低光条件下被选择用于实例化,而另一个驱动器或驱动器集合可以在其它较高光条件下被选择用于实例
化。这样的照明条件可以利用来自计算设备在其中操作的环境的光传感器的传感器数据来
确定。
[0026] 传感器校准模块124可以配置为从传感器层118接收传感器数据,并且验证或校准传感器数据的至少部分。为了验证传感器数据的该部分,传感器校准模块124可以利用已知参考数据与从传感器层118所接收的传感器数据进行比较,并且可以对照参考值来验证所
接收的传感器数据。在一些实施例中,参考值可以是之前存储的传感器数据。在其它实施例中,参考值可以是由参考传感器提供的传感器数据。在又其它实施例中,参考值可以是由传感器通过传感器层118而提供的参考值。在一些实施例中,传感器校准模块124然后可以在
操作系统发起时针对操作系统来核验该验证,以证明经验证的传感器数据的准确性。
[0027] 为了校准传感器数据的该部分,传感器校准模块124可以试图对照参考值验证所接收的传感器数据,如上文所讨论的,并且倘若验证失败则可以试图校准传感器数据。在一些实施例中,传感器校准模块124可以与传感器层118交互,以调节产生了所接收的传感器
数据的传感器以使由传感器产生的数据与参考值匹配。在其它实施例中,传感器校准模块
124可以直接地操纵所接收的数据以使数据与参考值匹配。在这样的实施例中,操纵后的数据然后可以被提供给请求者,或者操纵的度量可以被报告给请求者。例如,传感器校准模块
124可以将操纵的度量提供给应用,所述应用可以利用操纵的度量来校准通过传感器层118
提供给应用或者直接来自相应传感器的数据。
[0028] 数据安全模块126可以配置为向计算设备保护或密封数据。在实施例中,数据安全模块126可以配置为通过利用本地传感器信息对数据进行加密来向计算设备密封数据,这
然后可以防止数据在没有本地传感器信息的情况下被解密。用于此的过程在下文参照图5
和6更加详细地描述。
[0029] 图2描绘了依照本公开的各种实施例的计算设备的说明性引导流200。引导流的各级沿图2的右手侧进行描绘。引导流的SEC&PEI级分别与引导流的安全阶段和可预扩展固件
环境(PEI)阶段对应。DXE阶段与引导流的驱动器执行环境阶段对应。BDS阶段与引导流的引导设备选择器阶段对应。最后,TSL阶段和RT阶段分别与瞬时系统加载阶段和运行时阶段对应。这些阶段中的每一个在下文参照图3进一步详细地讨论。将领会到,引导流200表示可以在示例引导流内发生的过程的所选群组;没有呈现或讨论不适用于本公开的附加过程,如
它们在本领域中将容易理解的那样。此外,将领会到,尽管勾勒为发生在引导流的特定阶段内,但是引导流的不同过程可以实际地在必要的情况下扩张到相邻引导流阶段中。引导流
200可以在框202处开始,其中计算设备可以被加电或重置。在计算设备已经加电或重置之
后,过程可以进入SEC和PEI阶段,并且进行到框204,其中可以初始化基本固件。该基本固件可以包括配置为初始化主板、芯片组、中央处理单元(CPU)、系统存储器等的固件。
[0030] 在基本固件的初始化之后,过程可以进行到框206,其中可以发起UEFI阶段。UEFI阶段可以发起驱动器执行环境(DXE),其中可以执行各种过程,包括在框208处的传感器的发现。传感器可以例如是本文讨论的任何类型的传感器。一旦已经发现传感器,就可以在框
210处加载任何使用模块。这些使用模块可以包括例如供应模块212、数据安全模块214、校准模块216和环境因素引导模块218。这些使用模块中的每一个可以配置为执行本文其它地
方描述的功能性。可以通过将用于实现个体使用模块的指令集合加载到计算设备的存储器
中以供其通过与存储器耦合的处理器的执行,来加载使用模块。
[0031] 使用模块还可以在框210处被初始化。这可以包括重置与个体使用模块相关联的可以不被保持的任何值。例如,如果之前的引导已经通过环境因素引导模块218或者在环境因素引导模块218的请求下触发引导过程的终止,则这可以通过存储在环境因素引导模块
218内或者由环境因素引导模块218可访问的存储器内的引导终止值来实施,引导终止值被
设定成终止值,诸如指示终止值为真的“1”。在这样的场景中,该终止值可以被重置为默认值,诸如指示终止值为假的“0”。
[0032] 在使用模块已经被加载和初始化之后,过程可以进行到框220,其中可以确定计算设备是否处于传感器轮询间隔内。如果计算设备处于传感器轮询间隔内,则过程可以进行
到框222,其中可以就是否有任何传感器可用做出确定。如果没有传感器可用,则过程可以进行到框224,其中生成本地报告并且过程可以循环回到框220。如果存在可用的传感器,则过程可以进行到框226,其中通过传感器层收集和记录传感器数据,诸如在本文其它地方描述的那个。从框226,过程可以进行到框228,其中使用模块(例如,使用模块212-218)可以被执行以执行本文描述的任何过程或功能性。框228可以例如是以上讨论的终止值通过环境
因素引导模块218基于一个或多个环境因素而从假改变为真,以引起引导过程的终止的地
方。在框228完成之后,过程可以循环回到框220,其中该过程可以重复。
[0033] 如果在框220处计算设备没有处于传感器轮询间隔中,则过程可以进入BDS阶段并且进行到框230,其中可以就是否是时候加载和开启操作系统(OS)做出确定。如果不是时候初始化OS,则过程可以进行到框224,其中生成本地报告并且过程然后可以循环回到框220。
如果是时候在框230处初始化OS,则过程可以进行到框232,其中就是否满足用于初始化的
条件做出确定。框232是可以评估诸如终止值之类的变量以确定引导过程是应当继续还是
终止的地方。如果框232的决定为否定,则过程可以进行到框234,其中引导过程可以终止。
作为示例,如果以上讨论的终止值为真,则框232的结果可以为负并且引导过程可以在框
234处终止。如果框232的决定为肯定,则过程可以进行到框236,其中可以将传感器信息传递给OS。在其中校准模块216核验一个或多个传感器的结果或者校准一个或多个传感器的
实施例中,该核验或校准信息也可以在框236处传递给OS。在框238处,计算设备可以进入OS运行时环境并且过程可以结束。
[0034] 在诸如例如其中计算设备可以是物联网(IOT)边缘设备的可替换实施例中,完整操作系统可能对于计算设备的恰当运转不是必要的,并且计算设备可以操作在无OS操作模
式中。在另一个实施例中,无OS模式可以包括当主要OS被挂起时,诸如经由系统管理中断
(SMI)的调用,从而引起将主要CPU的控制传递到系统管理模式(SMM)中。在这样的实施例中,在框240内描绘的功能性可以利用在框232中描绘的功能性进行替换。在这样的实施例
中,如果传感器轮询间隔结束,则过程可以进行到框244,其中可以就是否是时候初始化统一可扩展固件接口(UEFI)操作环境(例如,UEFI壳运行时)做出确定。如果不是时候初始化UEFI壳操作环境,则过程可以进行到框224,其中生成本地报告并且过程然后可以循环回到框220。如果在框224处是时候初始化UEFI壳操作环境,则过程可以进行到框246,其中就是否满足用于UEFI壳操作环境的初始化的条件做出确定。框246是可以评估诸如终止值之类
的变量以确定引导过程是应当继续还是终止的地方。如果框246的决定为否定,则过程可以进行到以上讨论的框234,其中引导过程可以终止。作为示例,如果以上讨论的终止值为真,则框246的结果可以为否定并且引导过程可以在框234处终止。如果框246的决定为肯定,则过程可以进行到框248,其中UEFI壳操作环境可以被初始化。在其中校准模块216核验一个
或多个传感器的结果或者校准一个或多个传感器的实施例中,该核验或校准信息也可以在
框248处传递给UEFI壳操作环境。在框250处,计算设备可以进入UEFI壳运行时并且过程可
以结束。
[0035] 图3描绘了依照本公开的各种实施例的图2的引导流的可替换视图。引导流300可以在安全(SEC)阶段302中开始,其中启动过程可以在314处执行。启动过程可以执行数个初步动作,诸如例如冲刷计算设备的中央处理单元(CPU)高速缓存、执行计算设备的基本输入/输出系统(BIOS)重置向量以发起计算设备的BIOS、以及在CPU高速缓存中建立数据区域以使得能够在系统存储器的初始化之前使用基于栈的编程语言。
[0036] SEC阶段302可以移交到可预扩展固件接口(PEI)阶段304。在PEI阶段304中,可以在316处通过BIOS来执行PEI模块或引起PEI模块执行。PEI模块可以在318处初始化计算设备的CPU或者引起计算设备的CPU的初始化,在320处初始化计算设备的芯片组或者引起计
算设备的芯片组的初始化,并且在322处初始化计算设备的主板或者引起计算设备的主板
的初始化。PEI阶段304可以对计算设备进行准备以用于驱动器执行环境(DXE)阶段306。可以分别在326和324处通过BIOS执行引导服务和运行时服务连同驱动器执行环境(DXE)调度器或者引起其执行。PEI阶段304可以移交到DXE阶段306。
[0037] 在DXE阶段306期间,可以在324处执行固件,诸如DXE调度器,其可以负责搜索和初始化在引导过程期间提供设备支持的驱动器。这样,DXE调度器可以在框328中初始化一系列设备、总线和服务驱动器,诸如图1的驱动器112-116。框328是传感器层和任何使用模块也可以被加载和初始化的地方,诸如图1的固件传感器层118和固件使用模块120-126。DXE
调度器可以在330处执行引导调度器或者引起引导调度器的执行的发起,并且然后DXE阶段
306可以移交到引导设备选择器(BDS)阶段308。
[0038] 引导调度器可以实现平台引导策略并且可以在332处执行瞬时OS引导加载器或引起瞬时OS引导加载器的执行,和/或可以在瞬时系统加载(TSL)阶段310期间在338处执行最终OS引导加载器或引起最终OS引导加载器的执行。在一个实施例中,在TSL阶段310期间,
332处的瞬时OS引导加载器可以在334处发起UEFI壳的执行,其继而可以在336处发起(多
个)无OS应用的执行。最终OS引导加载器可以在342处完成OS环境342,在该点处,BIOS可以将计算设备的控制移交给计算设备的OS。在运行时阶段期间,所完成的OS环境可以在340处执行(多个)存在OS应用。
[0039] 在其它实施例中,过程300可以在无OS环境中独立于OS而实施。无OS环境可以例如实现在物联网(IOT)边缘设备或者不要求由OS提供的完整功能性的任何其它计算设备上。
在这样的环境中,TSL阶段310和RT阶段312可以省略以及替换为在框344中描绘的UEFI壳运
行时阶段346,其可以使计算设备实现UEFI操作状态。在这样的实施例中,引导调度器330可以实现平台引导策略,并且可以执行UEFI壳引导加载器346或引起UEFI壳引导加载器346的
执行。UEFI壳引导加载器346可以在350处发起UEFI壳运行时的执行,其继而可以在352处发起一个或多个UEFI壳应用的执行。这样,UEFI壳可以维持计算设备的控制。以上提到的UEFI壳应用可以包括例如以上讨论的固件传感器层和/或传感器使用部。作为示例,固件,诸如图1的供应模块120,可以在352处执行,并且可以配置为将由固件传感器层提供的传感器数据报告给远程服务器以用于传感器数据与来自其它计算设备的传感器数据的聚集,所述其
它计算设备可以被类似地配置。
[0040] 图4描绘了依照本公开的各种实施例的用于在无OS环境中(例如,在计算设备的引导过程期间,或者在无OS操作状态中)通过数据安全模块(诸如,图1的数据安全模块126或图2的数据安全模块214),来密封数据的示例传感器数据使用过程流400。过程可以在框402处开始,其中可以在引导过程期间通过数据安全模块从请求者接收数据密封命令连同要密
封的数据。在一些实施例中,请求可以已经通过计算设备的基本输入/输出系统(BIOS)做出或发起。在框404处,数据安全模块可以经由固件传感器层(例如,图1的固件传感器层118)检索本地传感器信息。本地传感器信息可以包括传感器读数、传感器状态信息和/或传感器校准信息。在框406处,可以通过数据安全模块利用从固件传感器层所接收的本地传感器信息来生成加密密钥,并且在框408处,可以通过数据安全模块利用加密密钥对数据进行加
密,使得可以经由本地传感器信息甚至在引导过程期间向计算设备密封数据。在框410处,经密封的数据可以由数据安全模块输出给请求者,并且本地传感器信息可以作为密封或加
密信息而保持。
[0041] 图5描绘了依照本公开的各种实施例的用于在无OS环境中(例如,在计算设备的引导过程期间,或者在无OS操作状态中)解密封数据的说明性示例使用过程流500。过程可以在框502处开始,其中可以在计算设备的引导过程期间通过数据安全模块从请求者(诸如,计算设备的BIOS)接收解密封命令和经密封的数据。在框504处,在一些实施例中,与经密封的数据相关联的密封信息可以由数据安全模块检索。密封信息可以从其中保持密封信息的
仓库被检索,或者可以从在框502处所接收的请求被检索。在框506处,可以通过数据安全模块经由固件传感器层(例如,图1的固件传感器层118)来检索与密封信息对应的本地传感器信息。在框508处,数据安全模块可以就密封信息是否与本地传感器信息匹配做出确定。如果密封信息不与本地传感器信息匹配,则过程可以进行到框510,其中数据安全模块可以返回安全违反。如果密封信息与本地传感器信息匹配,则过程可以进行到框512,其中数据安全模块可以利用本地传感器信息对经密封的数据解密,使得计算设备的经密封的数据可以
经由本地传感器信息甚至在引导过程期间被解密封。在框514处,数据安全模块可以将经解密的数据发送给请求者。
[0042] 图6描绘了依照本公开的各种实施例的适用于具有固件传感器层(诸如,图1的固件传感器层118)或者任何传感器使用模块(诸如,本文之前描述的那些)的示例计算设备。
如所示出的,计算设备600可以包括一个或多个处理器或处理器核心602,以及系统存储器
604。在实施例中,多个处理器核心602可以设置在一个管芯上。出于包括权利要求的本申请的目的,术语“处理器”和“处理器核心”可以被视为同义词,除非上下文清楚地另有要求。计算设备600可以包括固件存储装置606。固件存储装置606可以采取非易失性存储器的形式,包括但不限于,只读存储器(ROM)、可擦可编程只读存储器(EPROM)和/或闪速存储器。附加地,计算设备600可以包括(多个)大容量存储设备608(诸如磁盘、硬驱动、致密盘只读存储器(CD-ROM)等)、(多个)输入/输出(I/O)设备610(诸如显示器、键盘、光标控制部等)、通信接口612(诸如网络接口卡、调制解调器等)以及(多个)传感器设备614,(多个)传感器设备
614可以包括但不限于本文讨论的任何传感器。元件可以经由系统总线616耦合到彼此,系
统总线616可以表示一个或多个总线。在多个总线的情况下,它们可以通过一个或多个总线桥(没有示出)桥接。
[0043] 这些元件中的每一个可以执行其在本领域中已知的常规功能。具体地,系统存储器604和固件存储装置606可以被采用来存储实现早前描述的操作的编程指令的工作副本
和永久副本,所述操作例如但不限于与固件传感器层和/或传感器使用模块相关联的操作,被总称为计算逻辑622。各种操作可以通过由(多个)处理器602支持的汇编指令或者可以编译成这样的指令的高级语言(诸如例如C)来实现。
[0044] 编程指令的永久副本可以在工厂中或者在现场通过例如分布介质(没有示出)(诸如致密盘(CD))或者通过通信接口612(从分布服务器(没有示出))而放置到固件存储装置606中。也就是说,具有固件传感器层和/或一个或多个传感器使用模块的实现的一个或多
个分布介质,可以被采用来将传感器层和/或一个或多个传感器使用模块分布到各种计算
设备。
[0045] 这些元件610-614的数目、能力和/或容量可以取决于示例计算设备600的意图使用而变化,例如取决于示例计算设备600是否是膝上型计算机、上网本、笔记本、超级本、智能电话、平板计算机、个人数字助理、超级移动个人计算机、移动电话、台式计算机、服务器、物联网设备或机顶盒。这些元件610-614的构成以其它方式已知,并且相应地将不进一步描述。
[0046] 图7描绘了依照各种实施例的具有指令的说明性非暂时性计算机可读存储介质,所述指令配置为实践与早前描述的传感器层和/或一个或多个传感器使用模块相关联的操
作中的所有操作或者所选操作。如所图示的,非暂时性计算机可读存储介质702可以包括数个编程指令704。编程指令704可以配置为使得设备(例如,计算设备600)能够响应于编程指令的执行而执行参照图1-5描述的过程的一个或多个操作。在可替换实施例中,编程指令
704可以替代地设置在多个非暂时性计算机可读存储介质702上。在又其它实施例中,编程
指令704可以编码在暂时性计算机可读信号中。
[0047] 返回参照图6,对于一个实施例,至少一个处理器602可以与计算逻辑622(替代于存储在存储器604和/或固件存储装置606中)封装在一起,计算逻辑622配置为执行参照图
1-5描述的过程的一个或多个操作。对于一个实施例,至少一个处理器602可以与计算逻辑
622封装在一起以形成封装系统(SiP),计算逻辑622配置为实践参照图1-5描述的方法的各方面。对于一个实施例,至少一个处理器602可以与计算逻辑622集成在相同管芯上,计算逻辑622配置为执行参照图1-5描述的过程的一个或多个操作。对于一个实施例,至少一个处
理器602可以与计算逻辑622封装在一起以形成片上系统(SoC),计算逻辑622配置为执行参照图1-5描述的过程的一个或多个操作。这样的SoC可以在任何适当的计算设备中被利用。
[0048] 出于该描述的目的,计算机可使用或者计算机可读介质可以是可以包含、存储、传达、传播或输运程序以供指令执行系统、装置或设备使用或与之结合地使用的任何介质。介质可以是易失性或非易失性存储器。介质可以是电子、磁性、光学、电磁、红外或半导体系统(或装置或设备)或传播介质。计算机可读存储介质的示例包括半导体或固态存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘以及光学盘。光学盘的当前示例包括致密盘只读存储器(CD-ROM)、致密盘读/写(CD-R/W)和DVD。
[0049] 本公开的实施例可以采取完全硬件实施例、完全软件实施例、或者包含硬件和软件元件二者的实施例的形式。在各种实施例中,软件可以包括但不限于,固件、驻留软件、微代码等。此外,本公开可以采取从计算机可使用或计算机可读介质可访问的计算机程序产
品的形式,其提供程序代码以供计算机或任何指令执行系统使用或者与之结合地使用。
[0050] 尽管已经在本文图示和描述了具体实施例,但是本领域普通技术人员将领会到,各种各样的可替换和/或等同实现可以替换所示出和描述的具体实施例,而不脱离本公开
的实施例的范围。本申请意图覆盖本文讨论的实施例的任何更改或变型。因此,明显意图的是,本公开的实施例仅由权利要求及其等同物来限制。
[0051] 示例
[0052] 根据各种实施例,本公开描述了数个示例。示例1是一种用于计算的计算设备,包括:处理器;以及要由处理器操作的固件,其包括一个或多个模块和传感器层,传感器层用于:在无操作系统(OS)固件环境中接收由多个传感器产生的传感器数据,其中多个传感器属于计算设备或者与计算设备操作地耦合;以及经由对多个传感器进行抽象的传感器层的
接口向一个或多个模块选择性地提供传感器数据。
[0053] 示例2可以包括示例1的主题,进一步包括要在计算设备上实例化的操作系统,其中固件独立于操作系统。
[0054] 示例3可以包括示例1的主题,其中一个或多个模块包括环境因素引导模块,用于:通过传感器层的接口从传感器层接收传感器数据的部分;以及至少部分地基于传感器数据
的该部分来应用一个或多个策略,其中传感器数据的该部分与由一个或多个策略限定的一
个或多个环境因素相关联。
[0055] 示例4可以包括示例3的主题,其中应用一个或多个策略是在至少部分地基于与一个或多个环境因素相关联的传感器数据的部分而做出违反一个或多个策略的确定时,终止
计算设备的引导过程。
[0056] 示例5可以包括示例3的主题,其中应用一个或多个策略是至少部分地基于与环境因素相关联的传感器数据的部分而选择性地实例化一个或多个驱动器。
[0057] 示例6可以包括示例3-5中任一项的主题,其中环境因素包括温度、湿气、湿度、海拔、声压级、音频频率、振动、速度、加速度或照明中的一个或多个。
[0058] 示例7可以包括示例1的主题,其中一个或多个固件模块包括传感器校准模块,用于:至少部分地基于由传感器产生的传感器数据的部分来验证多个传感器中的传感器;或
者至少部分地基于由传感器产生的传感器数据的部分来校准多个传感器中的传感器。
[0059] 示例8可以包括示例7的主题,其中传感器校准模块用于验证多个传感器中的传感器,并且进一步向计算设备的操作系统核验由传感器产生的传感器数据的有效性。
[0060] 示例9可以包括示例7的主题,其中传感器校准模块用于通过以下来校准多个传感器中的传感器:与传感器层交互以使由传感器产生的传感器数据与参考值匹配;或者操纵
传感器数据已使传感器数据与参考值匹配。
[0061] 示例10可以包括示例1的主题,其中一个或多个固件模块包括数据安全模块,用于:接收要加密的数据;至少部分地基于从传感器层接收的本地传感器信息来生成加密密
钥;利用加密密钥对数据进行加密;以及将本地传感器信息作为加密信息保持在计算设备
的存储器中。
[0062] 示例11可以包括示例10的主题,其中数据安全模块进一步用于:接收对数据进行解密的请求;从传感器层接收附加本地传感器信息;检索加密信息;当附加本地传感器信息与加密信息匹配时,至少部分地基于附加本地传感器信息而生成解密密钥;以及利用解密
密钥对信息进行解密。
[0063] 示例12可以包括示例10或11中任一项的主题,其中本地传感器信息包括传感器读数、传感器状态或传感器校准中的一个或多个。
[0064] 示例13可以包括示例1的主题,其中无OS固件环境是引导过程的统一可扩展固件接口(UEFI)环境。
[0065] 示例14可以包括示例13的主题,其中无OS固件环境是UEFI环境的驱动器执行环境(DXE)。
[0066] 示例15可以包括示例13的主题,其中计算设备独立于操作系统,并且引导过程用于实例化可扩展固件接口操作环境以导致计算设备实现无OS操作状态。
[0067] 示例16可以包括示例1-15中任一项的主题,其中多个传感器中的一个或多个传感器设置在计算设备上,并且经由总线接口与处理器操作地耦合。
[0068] 示例17可以包括示例1-15中任一项的主题,其中多个传感器中的一个或多个传感器经由人机接口设备HID驱动器与计算设备通信地耦合。
[0069] 示例18可以包括示例1或3-15中任一项的主题,其中计算设备是包括多个传感器的物联网边缘设备。
[0070] 示例19可以包括示例1-15中任一项的主题,其中计算设备选择自由以下各项构成的组:膝上型计算机、上网本、笔记本、超级本、智能电话、平板计算机、个人数字助理、超级移动个人计算机、移动电话、台式计算机、服务器、物联网设备或机顶盒。
[0071] 示例20是一种用于计算的方法,包括:通过计算设备的无操作系统(OS)固件环境来实例化具有提供对多个传感器的抽象的接口的传感器层;通过无OS固件环境中的传感器层来接收由多个传感器产生的传感器数据;以及通过传感器层经由传感器层的接口向一个
或多个固件模块选择性地提供传感器数据。
[0072] 示例21可以包括示例20的主题,其中无操作系统(OS)固件环境是用于导致操作系统在计算设备上的实例化的引导过程的部分,并且其中固件环境独立于操作系统。
[0073] 示例22可以包括示例20的主题,其中一个或多个固件模块包括环境因素引导模块,并且进一步包括:由环境因素引导模块通过传感器层的接口从传感器层接收传感器数
据的部分;以及通过环境因素引导模块至少部分地基于传感器数据的该部分来应用一个或
多个策略,其中传感器数据的该部分与由一个或多个策略限定的一个或多个环境因素相关
联。
[0074] 示例23可以包括示例22的主题,其中应用一个或多个策略进一步包括:至少部分地基于与一个或多个环境因素相关联的传感器数据的部分来确定是否违反一个或多个策
略;以及至少部分地基于确定的结果来终止计算设备的引导过程。
[0075] 示例24可以包括示例22的主题,其中应用一个或多个策略进一步包括:至少部分地基于与环境因素相关联的传感器数据的部分来选择性地实例化一个或多个驱动器。
[0076] 示例25可以包括示例22-24中任一项的主题,其中环境因素包括温度、湿气、湿度、海拔、声压级、音频频率、振动、速度、加速度或照明中的一个或多个。
[0077] 示例26可以包括示例20的主题,其中一个或多个固件模块包括传感器校准模块,并且进一步包括:通过传感器校准模块至少部分地基于由传感器产生的传感器数据的部分
来验证多个传感器中的传感器;或者通过传感器校准模块至少部分地基于由传感器产生的
传感器数据的部分来校准多个传感器中的传感器。
[0078] 示例27可以包括示例26的主题,其中验证多个传感器中的传感器进一步包括:向计算设备的操作系统核验由传感器产生的传感器数据的有效性。
[0079] 示例28可以包括示例26的主题,其中校准多个传感器中的传感器进一步包括:与传感器层交互以使由传感器产生的传感器数据与参考值匹配;或者操纵传感器数据以使传
感器数据与参考值匹配。
[0080] 示例29可以包括示例20的主题,其中一个或多个固件模块包括数据安全模块,并且进一步包括:通过数据安全模块来接收要加密的数据;通过数据安全模块至少部分地基
于从传感器层接收的本地传感器信息来生成加密密钥;通过数据安全模块利用加密密钥对
数据进行加密;以及通过数据安全模块将本地传感器信息作为加密信息保持在计算设备的
存储器中。
[0081] 示例30可以包括示例29的主题,进一步包括:通过数据安全模块来接收对数据进行解密的请求;通过数据安全模块从传感器层接收附加本地传感器信息;通过数据安全模
块检索加密信息;当附加本地传感器信息与加密信息匹配时,通过数据安全模块至少部分
地基于附加本地传感器信息来生成解密密钥;以及通过数据安全模块利用解密密钥对数据
进行解密。
[0082] 示例31可以包括示例29或30中任一项的主题,其中本地传感器信息包括传感器读数、传感器状态或传感器校准中的一个或多个。
[0083] 示例32可以包括示例20的主题,其中无OS固件环境是计算设备的引导过程的统一可扩展固件接口(UEFI)环境。
[0084] 示例33可以包括示例32的主题,其中无OS固件环境是UEFI环境的驱动器执行环境(DXE)。
[0085] 示例34可以包括示例32的主题,其中计算设备独立于操作系统,并且进一步包括:通过固件环境来实例化可扩展固件接口操作环境,从而导致计算设备实现无OS操作状态。
[0086] 示例35可以包括示例20的主题,其中多个传感器中的一个或多个传感器设置在计算设备上,并且经由总线接口与处理器操作地耦合。
[0087] 示例36可以包括示例20的主题,其中多个传感器中的一个或多个传感器经由人机接口设备HID驱动器与计算设备通信地耦合。
[0088] 示例37可以包括示例20的主题,其中计算设备是包括多个传感器的物联网边缘设备。
[0089] 示例38可以包括示例20的主题,其中计算设备选择自由以下各项构成的组:膝上型计算机、上网本、笔记本、超级本、智能电话、平板计算机、个人数字助理、超级移动个人计算机、移动电话、台式计算机、服务器或机顶盒。
[0090] 示例39是具有存储在其上的多个指令的一个或多个计算机可读介质,所述多个指令在由计算设备的处理器执行时使计算设备实施示例20-38中任一项的方法。
[0091] 示例40是具有存储在其上的多个指令的一个或多个计算机可读介质,所述多个指令在由计算设备的处理器执行时为计算设备提供固件环境,所述固件环境包括一个或多个
模块和传感器层,以使传感器层用于:在无操作系统(OS)环境中接收由多个传感器产生的传感器数据,其中多个传感器属于计算设备或者与计算设备操作地耦合;以及经由对多个
传感器进行抽象的传感器层的接口向一个或多个模块选择性地提供传感器数据。
[0092] 示例41可以包括示例40的主题,其中固件独立于计算设备的操作系统。
[0093] 示例42可以包括示例40的主题,其中一个或多个模块包括环境因素引导模块,用于:通过传感器层的接口从传感器层接收传感器数据的部分;以及至少部分地基于传感器
数据的该部分来应用一个或多个策略,其中传感器数据的该部分与由一个或多个策略限定
的一个或多个环境因素相关联。
[0094] 示例43可以包括示例42的主题,其中应用一个或多个策略是在至少部分地基于与一个或多个环境因素相关联的传感器数据的部分而做出违反一个或多个策略的确定时,终
止计算设备的引导过程。
[0095] 示例44可以包括示例42的主题,其中应用一个或多个策略是至少部分地基于与环境因素相关联的传感器数据的部分来选择性地实例化一个或多个驱动器。
[0096] 示例45可以包括示例42-44中任一项的主题,其中环境因素包括温度、湿气、湿度、海拔、声压级、音频频率、振动、速度、加速度或照明中的一个或多个。
[0097] 示例46可以包括示例39的主题,其中一个或多个固件模块包括传感器校准模块,用于:至少部分地基于由传感器产生的传感器数据的部分来验证多个传感器中的传感器;
或者至少部分地基于由传感器产生的传感器数据的部分来校准多个传感器中的传感器。
[0098] 示例47可以包括示例46的主题,其中传感器校准模块用于验证多个传感器中的传感器,并且进一步向计算设备的操作系统核验由传感器产生的传感器数据的有效性。
[0099] 示例48可以包括示例46的主题,其中传感器校准模块用于通过以下来校准多个传感器中的传感器:与传感器层交互以使由传感器产生的传感器数据与参考值匹配;或者操
纵传感器数据以使传感器数据与参考值匹配。
[0100] 示例49可以包括示例40的主题,其中一个或多个固件模块包括数据安全模块,用于:接收要加密的数据;至少部分地基于从传感器层所接收的本地传感器信息来生成加密
密钥;利用加密密钥对数据进行加密;以及将本地传感器信息作为加密信息保持在计算设
备的存储器中。
[0101] 示例50可以包括示例49的主题,其中数据安全模块进一步用于:接收对数据进行解密的请求;从传感器层接收附加本地传感器信息;检索加密信息;当附加本地传感器信息与加密信息匹配时,至少部分地基于附加本地传感器信息来生成解密密钥;以及利用解密
密钥对数据进行解密。
[0102] 示例51可以包括示例49或50中任一项的主题,其中本地传感器信息包括传感器读数、传感器状态或传感器校准中的一个或多个。
[0103] 示例52可以包括示例40的主题,其中无OS固件环境是引导过程的统一可扩展固件接口(UEFI)环境。
[0104] 示例53可以包括示例40的主题,其中无OS固件环境是UEFI环境的驱动器执行环境(DXE)。
[0105] 示例54可以包括示例52的主题,其中引导过程用于实例化可扩展固件接口操作环境,这导致计算设备实现操作状态。
[0106] 示例55可以包括示例40的主题,其中多个传感器中的一个或多个传感器设置在计算设备上,并且经由总线接口与处理器操作地耦合。
[0107] 示例56可以包括示例40的主题,其中多个传感器中的一个或多个传感器经由人机接口设备HID驱动器与计算设备通信地耦合,并且其中传感器层进一步用于利用HID设备驱
动器与多个传感器通信。
[0108] 示例57可以包括示例40的主题,其中计算设备是包括多个传感器的物联网边缘设备。
[0109] 示例58可以包括示例40的主题,其中计算设备选择自由以下各项构成的组:膝上型计算机、上网本、笔记本、超级本、智能电话、平板计算机、个人数字助理、超级移动个人计算机、移动电话、台式计算机、服务器或机顶盒。
[0110] 示例59是一种用于计算的计算设备,包括:用于在无操作系统(OS)固件环境中实例化具有提供对多个传感器的抽象的接口的传感器层的构件;用于在无OS固件环境中接收由多个传感器产生的数据的构件,其中多个传感器属于计算设备或者与计算设备操作地耦
合;以及用于经由传感器层的接口向一个或多个固件模块选择性地提供传感器数据的构
件。
[0111] 示例60可以包括示例59的主题,其中无OS固件环境是用于导致操作系统在计算设备上的实例化的引导过程的部分。
[0112] 示例61可以包括示例59的主题,其中一个或多个固件模块包括环境因素引导模块,环境因素引导模块包括:用于通过传感器层的接口从传感器层接收传感器数据的部分
的构件;以及用于至少部分地基于传感器数据的该部分来应用一个或多个策略的构件,其
中传感器数据的该部分与由一个或多个策略限定的一个或多个环境因素相关联。
[0113] 示例62可以包括示例61的主题,其中用于应用一个或多个策略的构件进一步包括:用于至少部分地基于与一个或多个环境因素相关联的传感器数据的部分来确定是否违
反一个或多个策略的构件;以及用于至少部分地基于确定的结果来终止计算设备的引导过
程的构件。
[0114] 示例63可以包括示例61的主题,其中用于应用一个或多个策略的构件进一步包括:用于至少部分地基于与环境因素相关联的传感器数据的部分来选择性地实例化一个或
多个驱动器的构件。
[0115] 示例64可以包括示例61-63中任一项的主题,其中环境因素包括温度、湿气、湿度、海拔、声压级、音频频率、振动、速度、加速度或照明中的一个或多个。
[0116] 示例65可以包括示例59的主题,其中一个或多个固件模块包括传感器校准模块,传感器校准模块包括:用于至少部分地基于由传感器产生的传感器数据的部分来验证多个
传感器中的传感器的构件;或者用于至少部分地基于由传感器产生的传感器数据的部分来
校准多个传感器中的传感器的构件。
[0117] 示例66可以包括示例65的主题,其中用于验证多个传感器中的传感器的构件进一步包括:用于向计算设备的操作系统核验由传感器产生的传感器数据的有效性的构件。
[0118] 示例67可以包括示例65的主题,其中用于校准多个传感器中的传感器的构件进一步包括:用于与传感器层交互以使由传感器产生的传感器数据与参考值匹配的构件;或者
用于操纵传感器数据以使传感器数据与参考值匹配的构件。
[0119] 示例68可以包括示例59的主题,其中一个或多个固件模块包括数据安全模块,数据安全模块包括:用于接收要加密的数据的构件;用于至少部分地基于从传感器层所接收
的本地传感器信息来生成加密密钥的构件;用于利用加密密钥对数据加密的构件;以及用
于将本地传感器信息作为加密信息保持在计算设备的存储器中的构件。
[0120] 示例69可以包括示例68的主题,其中数据安全模块进一步包括:用于接收对数据进行解密的请求的构件;用于从传感器层接收附加本地传感器信息的构件;用于检索加密
信息的构件;用于在附加本地传感器信息与加密信息匹配时,至少部分地基于附加本地传
感器信息来生成解密密钥的构件;以及用于利用解密密钥对数据进行解密的构件。
[0121] 示例70可以包括示例68或69中任一项的主题,其中本地传感器信息包括传感器读数、传感器状态或传感器校准中的一个或多个。
[0122] 示例71可以包括示例59的主题,其中无OS固件环境是引导过程的统一可扩展固件接口(UEFI)环境。
[0123] 示例72可以包括示例71的主题,其中无OS固件环境是UEFI环境的驱动器执行环境(DXE)。
[0124] 示例73可以包括示例71的主题,其中计算设备独立于操作系统,并且进一步包括用于实例化可扩展固件接口操作环境从而导致计算设备实现操作状态的构件。
[0125] 示例74可以包括示例59的主题,其中多个传感器中的一个或多个传感器设置在计算设备上。
[0126] 示例75可以包括示例59的主题,其中多个传感器中的一个或多个传感器经由人机接口设备HID驱动器与计算设备通信地耦合。
[0127] 示例76可以包括示例59的主题,其中计算设备是包括多个传感器的物联网边缘设备。
[0128] 示例77可以包括示例59的主题,其中计算设备选择自由以下各项构成的组:膝上型计算机、上网本、笔记本、超级本、智能电话、平板计算机、个人数字助理、超级移动个人计算机、移动电话、台式计算机、服务器或机顶盒。