本公開的實施例涉及計算設(shè)備的領(lǐng)域,并且具體地涉及提供用于操作計算設(shè)備的無系統(tǒng)操作的固件傳感器支持。
背景技術(shù):
本文提供的背景描述是用于一般地呈現(xiàn)本公開的上下文的目的。除非在本文以其它方式指示,否則在該章節(jié)中描述的素材不是本申請中的權(quán)利要求的現(xiàn)有技術(shù)并且不通過包括于該章節(jié)中而被承認為現(xiàn)有技術(shù)。
基本上所有計算設(shè)備在加電或重置期間都經(jīng)歷引導(dǎo)(初始化)過程。典型地,在引導(dǎo)(初始化)過程期間,執(zhí)行加電自測試并且然后定位和初始化外圍設(shè)備,其中以操作系統(tǒng)的加載和開啟而結(jié)束?,F(xiàn)代計算平臺包含可以連續(xù)地收集傳感器信息的大量傳感器。然而,在當前現(xiàn)有技術(shù)之下,傳感器信息僅通過計算設(shè)備的操作系統(tǒng)的傳感器層而可訪問。這樣,傳感器數(shù)據(jù)在計算設(shè)備的引導(dǎo)過程期間或者在沒有操作系統(tǒng)的計算設(shè)備上的使用不可獲得。
附圖說明
圖1描繪了依照本公開的各種實施例的具有固件傳感器層的計算環(huán)境的示意性圖示。
圖2描繪了依照本公開的各種實施例的計算設(shè)備的說明性引導(dǎo)流。
圖3描繪了依照本公開的各種實施例的圖2的引導(dǎo)流的可替換視圖。
圖4描繪了依照本公開的各種實施例的用于通過數(shù)據(jù)安全模塊在引導(dǎo)過程期間密封數(shù)據(jù)的示例使用過程。
圖5描繪了依照本公開的各種實施例的用于在引導(dǎo)過程期間解封數(shù)據(jù)的示例使用過程流。
圖6描繪了依照本公開的各種實施例的適于實現(xiàn)固件傳感器層或者任何傳感器使用模塊的示例計算設(shè)備。
圖7圖示了依照各種實施例的具有配置為使得計算設(shè)備能夠?qū)嵺`本公開的指令的示例存儲介質(zhì)。
具體實施方式
本文公開了用于無操作系統(tǒng)(OS)環(huán)境中的傳感器層和傳感器使用的計算設(shè)備、方法和存儲介質(zhì)。在實施例中,計算設(shè)備可以具有配置為接收由各種傳感器產(chǎn)生的傳感器數(shù)據(jù)的固件傳感器層,包括在無OS操作期間、諸如計算設(shè)備的引導(dǎo)過程期間或者在無OS操作模式中接收傳感器數(shù)據(jù)。固件傳感器層可以選擇性地經(jīng)由對各種傳感器進行抽象的固件傳感器層的接口,來向一個或多個使用模塊提供傳感器數(shù)據(jù)。在實施例中,使用模塊可以配置為以各種方式對傳感器數(shù)據(jù)起作用,包括例如但不限于,在決定是否終止引導(dǎo)過程時利用關(guān)于環(huán)境因素的傳感器數(shù)據(jù),利用傳感器數(shù)據(jù)向計算設(shè)備密封數(shù)據(jù),利用傳感器數(shù)據(jù)在引導(dǎo)過程期間核驗傳感器或校準傳感器。
在以下具體實施方式中,參照形成其一部分的附圖,貫穿附圖中類似標記指明類似部分,并且其中通過說明方式示出可以實踐的實施例。應(yīng)理解,可以利用其他實施例,并且在不偏離本公開的范圍的情況下可以做出結(jié)構(gòu)或邏輯改變。因此,以下具體實施方式不應(yīng)以限制性意義來考慮,并且實施例的范圍由所附權(quán)利要求和它們的等同物來限定。
可以以最有助于理解要求保護的主題的方式把各種操作描述為依次的多個分立動作或操作。然而,描述的順序不應(yīng)當解釋為暗示這些操作一定是順序相關(guān)的。具體來說,可以不按照呈現(xiàn)順序來執(zhí)行這些操作。所描述的操作可以以與所描述的實施例不同的順序執(zhí)行。在附加實施例中可以執(zhí)行各種附加操作和/或所描述的操作可以省略。
出于本公開的目的,短語“A和/或B”意指(A)、(B)或者(A和B)。出于本公開的目的,短語“A、B和/或C”意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或者(A、B和C)。描述可以使用短語“在一實施例中”或“在實施例中”,其各自可以是指相同或不同實施例中的一個或多個。此外,如關(guān)于本公開的實施例使用的,措辭“包括”、“包含”、“具有”等是同義詞。
圖1描繪了依照本公開的各種實施例的具有固件傳感器層118的計算環(huán)境的示意性圖示。在實施例中,計算環(huán)境可以包括硬件100和無操作系統(tǒng)(無OS)固件環(huán)境102。在一些實施例中,無OS固件環(huán)境102可以劃分成兩個區(qū)段:驅(qū)動器棧104以及傳感器層和使用部106。驅(qū)動器棧104在一些實施例中可以配置為提供固件傳感器層(后文簡稱為傳感器層)118和硬件100之間的通信。
硬件100可以包括與主機控制器110耦合的一個或多個傳感器108。傳感器108可以包括任何數(shù)目或類型的傳感器,包括但不限于,圖像傳感器;音頻傳感器;觸摸傳感器;全球定位系統(tǒng)(GPS);加速度計;陀螺儀;高度計;濕氣傳感器;濕度傳感器;光傳感器;壓力傳感器;信號相關(guān)傳感器,諸如紅外、藍牙或Wi-Fi;或其任何組合。主機控制器110可以配置為控制各種低等級數(shù)據(jù)傳送,包括例如去往和來自傳感器108的數(shù)據(jù)分組的傳送。
在實施例中,驅(qū)動器棧104可以包括一個或多個主機控制器驅(qū)動器112、一個或多個總線驅(qū)動器114、以及一個或多個類驅(qū)動器116,所有這些在后文以單數(shù)形式來提及。主機控制器驅(qū)動器112在一些實施例中可以與主機控制器110以及因而驅(qū)動器114通信地耦合。主機控制器驅(qū)動器112可以配置為提供總線驅(qū)動器114和主機控制器110之間的通用接口。主機控制器驅(qū)動器112可以包括任何類型的慣常主機控制器驅(qū)動器,諸如但不限于,增強型主機控制器接口(EHCI)驅(qū)動器、開放式主機控制器接口(OHCI)驅(qū)動器、通用主機控制器接口(UHCI)驅(qū)動器或其任何組合。
總線驅(qū)動器114可以與主機控制器驅(qū)動器112和類驅(qū)動器116通信地耦合,并且可以配置為在類驅(qū)動器116和主機控制器驅(qū)動器112之間對接。總線驅(qū)動器114可以配置為提供服務(wù)陣列,諸如例如應(yīng)對一個或多個硬件片段(例如,(多個)傳感器108)到計算設(shè)備的連接以及從其斷開連接。總線驅(qū)動器114還可以提供一個或多個硬件片段的基本初始化、針對一個或多個硬件片段的驅(qū)動器選擇、和/或與一個或多個硬件片段的通信信道的較高等級管理。通信總線驅(qū)動器114可以例如是通用串行總線(USB)驅(qū)動器、藍牙驅(qū)動器、或者任何其它適當?shù)目偩€或通信驅(qū)動器。
類驅(qū)動器116可以與總線驅(qū)動器114和傳感器層118通信地耦合,并且可以配置為在傳感器層118和通信總線驅(qū)動器114之間對接。類驅(qū)動器116可以配置為利用對于一類硬件設(shè)備共同的標準化協(xié)議的集合來實現(xiàn)功能性的陣列。類驅(qū)動器116在一些實施例中可以提供充足的功能性以用于落入類內(nèi)的硬件設(shè)備的操作。在其它實施例中,可以代替于或者附加于類驅(qū)動器116而利用與給定硬件設(shè)備對應(yīng)的分離驅(qū)動器。類驅(qū)動器116可以是任何類型的慣常類驅(qū)動器,諸如例如任何USB類驅(qū)動器,包括但不限于,人機接口設(shè)備(HID)類驅(qū)動器、物理接口設(shè)備(PID)類驅(qū)動器、內(nèi)容安全類驅(qū)動器、個人健康護理類驅(qū)動器、診斷設(shè)備類驅(qū)動器、無線控制器類驅(qū)動器等。
傳感器層118可以與類驅(qū)動器116和一個或多個固件使用模塊(例如,使用模塊120-126)通信地耦合,并且可以配置為在類驅(qū)動器116和一個或多個固件使用模塊之間對接。在實施例中,傳感器層118可以配置為接收并且聚集由與計算設(shè)備耦合的任何數(shù)目的傳感器(例如,(多個)傳感器108)產(chǎn)生的傳感器數(shù)據(jù),并且可以配置為經(jīng)由針對一個或多個固件使用模塊而對傳感器進行抽象的接口來將數(shù)據(jù)提供給固件使用模塊。該抽象可以使傳感器特定信息模糊,從而允許固件使用模塊訪問由個體傳感器產(chǎn)生的數(shù)據(jù),而不需要知曉傳感器硬件的細節(jié)。在一些實施例中,在使傳感器特定信息模糊的同時,傳感器層118還可以配置為依照請求來提供傳感器特定信息,諸如參照圖4和5的示例過程流所討論的那個。如所描繪到,傳感器層118可以配置成在無OS固件環(huán)境中操作,諸如例如在計算設(shè)備的引導(dǎo)過程期間、在計算設(shè)備的恢復(fù)期間、或者在無OS操作模式中(例如,在統(tǒng)一可擴展固件接口(UEFI)殼(shell)運行時期間,諸如在圖2或3中描繪并且在下文討論的那個)操作。作為結(jié)果,傳感器層118可以與計算設(shè)備上的OS獨立地操作,并且可以在計算設(shè)備的引導(dǎo)過程期間或者在其他無OS上下文中向計算設(shè)備提供傳感器支持,諸如當計算設(shè)備處于低功率狀態(tài)中時(例如,當計算設(shè)備處于睡眠模式中時)或者當計算設(shè)備正在無OS操作模式中操作時。在一些實施例中,傳感器層118可以由多個傳感器子層組成,其中每一個傳感器子層可以與不同類驅(qū)動器、總線驅(qū)動器等通信。例如,一個傳感器子層可以經(jīng)由USB與傳感器通信,而另一個傳感器子層可以經(jīng)由藍牙與傳感器通信。
如上文所討論的,傳感器層118可以配置為向一個或多個使用模塊提供傳感器數(shù)據(jù),使用模塊諸如供應(yīng)模塊120、環(huán)境因素引導(dǎo)模塊122、傳感器校準模塊124和數(shù)據(jù)安全模塊126。使用模塊120-126僅僅意為說明性的并且不應(yīng)當被視為對本公開的限制。在實施例中,使用模塊120-126可以實現(xiàn)為要在無OS上下文中執(zhí)行的固件,諸如在計算設(shè)備的引導(dǎo)過程期間或者在無OS操作模式(例如,在本文其它地方討論的UEFI殼運行時)中執(zhí)行,并且可以配置為對通過傳感器層118所收集并且提供給個體使用模塊的傳感器數(shù)據(jù)起作用。
供應(yīng)模塊120在一些實施例中可以配置為從可以不具有對傳感器層118的直接訪問的一個或多個請求者接收針對傳感器數(shù)據(jù)的請求,并且供應(yīng)模塊120可以配置為將來自傳感器層118的數(shù)據(jù)提供給這些請求者。在一些實施例中,供應(yīng)模塊120可以僅在一個或多個預(yù)限定的條件被請求者和/或傳感器數(shù)據(jù)所滿足的情況下,才提供所請求的數(shù)據(jù)。在其它實施例中,供應(yīng)模塊120可以配置為在一個或多個預(yù)限定的條件得以滿足的情況下啟用或禁用計算設(shè)備的一個或多個特征。這些條件可以在供應(yīng)模塊120內(nèi)限定,或者可以由對于供應(yīng)模塊120而言可以可訪問的另一個固件模塊來限定。條件可以包括基于通過傳感器層118提供給供應(yīng)模塊120的傳感器數(shù)據(jù)的任何條件。作為示例,如果供應(yīng)模塊120從傳感器數(shù)據(jù)檢測到計算設(shè)備正在低光環(huán)境中引導(dǎo),則供應(yīng)模塊120可以供應(yīng)用于附著到計算設(shè)備的鍵盤的背光。
環(huán)境因素引導(dǎo)模塊122在一些實施例中可以配置為從傳感器層118接收傳感器數(shù)據(jù),并且至少部分地基于傳感器數(shù)據(jù)來應(yīng)用一個或多個策略。這些策略可以在環(huán)境因素引導(dǎo)模塊122內(nèi)限定,或者可以由對于環(huán)境因素引導(dǎo)模塊122而言可以是可訪問的另一個固件模塊來限定。在實施例中,傳感器數(shù)據(jù)可以與由一個或多個策略限定的環(huán)境因素相關(guān)聯(lián)。這些環(huán)境因素可以包括但不限于,關(guān)于溫度、濕氣、濕度、海拔、聲壓級、音頻頻率、振動、速度、加速度和/或照明的數(shù)據(jù)。
在一些實施例中,一個或多個策略可以包括引導(dǎo)過程基于一個或多個環(huán)境因素的終止。例如,環(huán)境因素引導(dǎo)模塊122可以配置為,如果一個或多個傳感器108指示計算設(shè)備正在用于計算設(shè)備的不友好環(huán)境中引導(dǎo),則終止引導(dǎo)過程或者使引導(dǎo)過程終止。作為示例,如果計算設(shè)備正在對于計算設(shè)備而言過熱以至于不能恰當運轉(zhuǎn)的環(huán)境中引導(dǎo),則環(huán)境因素引導(dǎo)模塊122可以配置為終止引導(dǎo)過程或者使引導(dǎo)過程終止。
在其它實施例中,環(huán)境因素引導(dǎo)模塊122可以配置為至少部分地基于與傳感器數(shù)據(jù)相關(guān)聯(lián)的一個或多個環(huán)境因素,而選擇性地實例化一個或多個驅(qū)動器或者使一個或多個驅(qū)動器實例化。例如,并且僅僅作為示例,一個驅(qū)動器或者驅(qū)動器集合可以在低光條件下被選擇用于實例化,而另一個驅(qū)動器或驅(qū)動器集合可以在其它較高光條件下被選擇用于實例化。這樣的照明條件可以利用來自計算設(shè)備在其中操作的環(huán)境的光傳感器的傳感器數(shù)據(jù)來確定。
傳感器校準模塊124可以配置為從傳感器層118接收傳感器數(shù)據(jù),并且驗證或校準傳感器數(shù)據(jù)的至少部分。為了驗證傳感器數(shù)據(jù)的該部分,傳感器校準模塊124可以利用已知參考數(shù)據(jù)與從傳感器層118所接收的傳感器數(shù)據(jù)進行比較,并且可以對照參考值來驗證所接收的傳感器數(shù)據(jù)。在一些實施例中,參考值可以是之前存儲的傳感器數(shù)據(jù)。在其它實施例中,參考值可以是由參考傳感器提供的傳感器數(shù)據(jù)。在又其它實施例中,參考值可以是由傳感器通過傳感器層118而提供的參考值。在一些實施例中,傳感器校準模塊124然后可以在操作系統(tǒng)發(fā)起時針對操作系統(tǒng)來核驗該驗證,以證明經(jīng)驗證的傳感器數(shù)據(jù)的準確性。
為了校準傳感器數(shù)據(jù)的該部分,傳感器校準模塊124可以試圖對照參考值驗證所接收的傳感器數(shù)據(jù),如上文所討論的,并且倘若驗證失敗則可以試圖校準傳感器數(shù)據(jù)。在一些實施例中,傳感器校準模塊124可以與傳感器層118交互,以調(diào)節(jié)產(chǎn)生了所接收的傳感器數(shù)據(jù)的傳感器以使由傳感器產(chǎn)生的數(shù)據(jù)與參考值匹配。在其它實施例中,傳感器校準模塊124可以直接地操縱所接收的數(shù)據(jù)以使數(shù)據(jù)與參考值匹配。在這樣的實施例中,操縱后的數(shù)據(jù)然后可以被提供給請求者,或者操縱的度量可以被報告給請求者。例如,傳感器校準模塊124可以將操縱的度量提供給應(yīng)用,所述應(yīng)用可以利用操縱的度量來校準通過傳感器層118提供給應(yīng)用或者直接來自相應(yīng)傳感器的數(shù)據(jù)。
數(shù)據(jù)安全模塊126可以配置為向計算設(shè)備保護或密封數(shù)據(jù)。在實施例中,數(shù)據(jù)安全模塊126可以配置為通過利用本地傳感器信息對數(shù)據(jù)進行加密來向計算設(shè)備密封數(shù)據(jù),這然后可以防止數(shù)據(jù)在沒有本地傳感器信息的情況下被解密。用于此的過程在下文參照圖5和6更加詳細地描述。
圖2描繪了依照本公開的各種實施例的計算設(shè)備的說明性引導(dǎo)流200。引導(dǎo)流的各級沿圖2的右手側(cè)進行描繪。引導(dǎo)流的SEC&PEI級分別與引導(dǎo)流的安全階段和可預(yù)擴展固件環(huán)境(PEI)階段對應(yīng)。DXE階段與引導(dǎo)流的驅(qū)動器執(zhí)行環(huán)境階段對應(yīng)。BDS階段與引導(dǎo)流的引導(dǎo)設(shè)備選擇器階段對應(yīng)。最后,TSL階段和RT階段分別與瞬時系統(tǒng)加載階段和運行時階段對應(yīng)。這些階段中的每一個在下文參照圖3進一步詳細地討論。將領(lǐng)會到,引導(dǎo)流200表示可以在示例引導(dǎo)流內(nèi)發(fā)生的過程的所選群組;沒有呈現(xiàn)或討論不適用于本公開的附加過程,如它們在本領(lǐng)域中將容易理解的那樣。此外,將領(lǐng)會到,盡管勾勒為發(fā)生在引導(dǎo)流的特定階段內(nèi),但是引導(dǎo)流的不同過程可以實際地在必要的情況下擴張到相鄰引導(dǎo)流階段中。引導(dǎo)流200可以在框202處開始,其中計算設(shè)備可以被加電或重置。在計算設(shè)備已經(jīng)加電或重置之后,過程可以進入SEC和PEI階段,并且進行到框204,其中可以初始化基本固件。該基本固件可以包括配置為初始化主板、芯片組、中央處理單元(CPU)、系統(tǒng)存儲器等的固件。
在基本固件的初始化之后,過程可以進行到框206,其中可以發(fā)起UEFI階段。UEFI階段可以發(fā)起驅(qū)動器執(zhí)行環(huán)境(DXE),其中可以執(zhí)行各種過程,包括在框208處的傳感器的發(fā)現(xiàn)。傳感器可以例如是本文討論的任何類型的傳感器。一旦已經(jīng)發(fā)現(xiàn)傳感器,就可以在框210處加載任何使用模塊。這些使用模塊可以包括例如供應(yīng)模塊212、數(shù)據(jù)安全模塊214、校準模塊216和環(huán)境因素引導(dǎo)模塊218。這些使用模塊中的每一個可以配置為執(zhí)行本文其它地方描述的功能性??梢酝ㄟ^將用于實現(xiàn)個體使用模塊的指令集合加載到計算設(shè)備的存儲器中以供其通過與存儲器耦合的處理器的執(zhí)行,來加載使用模塊。
使用模塊還可以在框210處被初始化。這可以包括重置與個體使用模塊相關(guān)聯(lián)的可以不被保持的任何值。例如,如果之前的引導(dǎo)已經(jīng)通過環(huán)境因素引導(dǎo)模塊218或者在環(huán)境因素引導(dǎo)模塊218的請求下觸發(fā)引導(dǎo)過程的終止,則這可以通過存儲在環(huán)境因素引導(dǎo)模塊218內(nèi)或者由環(huán)境因素引導(dǎo)模塊218可訪問的存儲器內(nèi)的引導(dǎo)終止值來實施,引導(dǎo)終止值被設(shè)定成終止值,諸如指示終止值為真的“1”。在這樣的場景中,該終止值可以被重置為默認值,諸如指示終止值為假的“0”。
在使用模塊已經(jīng)被加載和初始化之后,過程可以進行到框220,其中可以確定計算設(shè)備是否處于傳感器輪詢間隔內(nèi)。如果計算設(shè)備處于傳感器輪詢間隔內(nèi),則過程可以進行到框222,其中可以就是否有任何傳感器可用做出確定。如果沒有傳感器可用,則過程可以進行到框224,其中生成本地報告并且過程可以循環(huán)回到框220。如果存在可用的傳感器,則過程可以進行到框226,其中通過傳感器層收集和記錄傳感器數(shù)據(jù),諸如在本文其它地方描述的那個。從框226,過程可以進行到框228,其中使用模塊(例如,使用模塊212-218)可以被執(zhí)行以執(zhí)行本文描述的任何過程或功能性???28可以例如是以上討論的終止值通過環(huán)境因素引導(dǎo)模塊218基于一個或多個環(huán)境因素而從假改變?yōu)檎?,以引起引?dǎo)過程的終止的地方。在框228完成之后,過程可以循環(huán)回到框220,其中該過程可以重復(fù)。
如果在框220處計算設(shè)備沒有處于傳感器輪詢間隔中,則過程可以進入BDS階段并且進行到框230,其中可以就是否是時候加載和開啟操作系統(tǒng)(OS)做出確定。如果不是時候初始化OS,則過程可以進行到框224,其中生成本地報告并且過程然后可以循環(huán)回到框220。如果是時候在框230處初始化OS,則過程可以進行到框232,其中就是否滿足用于初始化的條件做出確定???32是可以評估諸如終止值之類的變量以確定引導(dǎo)過程是應(yīng)當繼續(xù)還是終止的地方。如果框232的決定為否定,則過程可以進行到框234,其中引導(dǎo)過程可以終止。作為示例,如果以上討論的終止值為真,則框232的結(jié)果可以為負并且引導(dǎo)過程可以在框234處終止。如果框232的決定為肯定,則過程可以進行到框236,其中可以將傳感器信息傳遞給OS。在其中校準模塊216核驗一個或多個傳感器的結(jié)果或者校準一個或多個傳感器的實施例中,該核驗或校準信息也可以在框236處傳遞給OS。在框238處,計算設(shè)備可以進入OS運行時環(huán)境并且過程可以結(jié)束。
在諸如例如其中計算設(shè)備可以是物聯(lián)網(wǎng)(IOT)邊緣設(shè)備的可替換實施例中,完整操作系統(tǒng)可能對于計算設(shè)備的恰當運轉(zhuǎn)不是必要的,并且計算設(shè)備可以操作在無OS操作模式中。在另一個實施例中,無OS模式可以包括當主要OS被掛起時,諸如經(jīng)由系統(tǒng)管理中斷(SMI)的調(diào)用,從而引起將主要CPU的控制傳遞到系統(tǒng)管理模式(SMM)中。在這樣的實施例中,在框240內(nèi)描繪的功能性可以利用在框232中描繪的功能性進行替換。在這樣的實施例中,如果傳感器輪詢間隔結(jié)束,則過程可以進行到框244,其中可以就是否是時候初始化統(tǒng)一可擴展固件接口(UEFI)操作環(huán)境(例如,UEFI殼運行時)做出確定。如果不是時候初始化UEFI殼操作環(huán)境,則過程可以進行到框224,其中生成本地報告并且過程然后可以循環(huán)回到框220。如果在框224處是時候初始化UEFI殼操作環(huán)境,則過程可以進行到框246,其中就是否滿足用于UEFI殼操作環(huán)境的初始化的條件做出確定???46是可以評估諸如終止值之類的變量以確定引導(dǎo)過程是應(yīng)當繼續(xù)還是終止的地方。如果框246的決定為否定,則過程可以進行到以上討論的框234,其中引導(dǎo)過程可以終止。作為示例,如果以上討論的終止值為真,則框246的結(jié)果可以為否定并且引導(dǎo)過程可以在框234處終止。如果框246的決定為肯定,則過程可以進行到框248,其中UEFI殼操作環(huán)境可以被初始化。在其中校準模塊216核驗一個或多個傳感器的結(jié)果或者校準一個或多個傳感器的實施例中,該核驗或校準信息也可以在框248處傳遞給UEFI殼操作環(huán)境。在框250處,計算設(shè)備可以進入UEFI殼運行時并且過程可以結(jié)束。
圖3描繪了依照本公開的各種實施例的圖2的引導(dǎo)流的可替換視圖。引導(dǎo)流300可以在安全(SEC)階段302中開始,其中啟動過程可以在314處執(zhí)行。啟動過程可以執(zhí)行數(shù)個初步動作,諸如例如沖刷計算設(shè)備的中央處理單元(CPU)高速緩存、執(zhí)行計算設(shè)備的基本輸入/輸出系統(tǒng)(BIOS)重置向量以發(fā)起計算設(shè)備的BIOS、以及在CPU高速緩存中建立數(shù)據(jù)區(qū)域以使得能夠在系統(tǒng)存儲器的初始化之前使用基于棧的編程語言。
SEC階段302可以移交到可預(yù)擴展固件接口(PEI)階段304。在PEI階段304中,可以在316處通過BIOS來執(zhí)行PEI模塊或引起PEI模塊執(zhí)行。PEI模塊可以在318處初始化計算設(shè)備的CPU或者引起計算設(shè)備的CPU的初始化,在320處初始化計算設(shè)備的芯片組或者引起計算設(shè)備的芯片組的初始化,并且在322處初始化計算設(shè)備的主板或者引起計算設(shè)備的主板的初始化。PEI階段304可以對計算設(shè)備進行準備以用于驅(qū)動器執(zhí)行環(huán)境(DXE)階段306。可以分別在326和324處通過BIOS執(zhí)行引導(dǎo)服務(wù)和運行時服務(wù)連同驅(qū)動器執(zhí)行環(huán)境(DXE)調(diào)度器或者引起其執(zhí)行。PEI階段304可以移交到DXE階段306。
在DXE階段306期間,可以在324處執(zhí)行固件,諸如DXE調(diào)度器,其可以負責(zé)搜索和初始化在引導(dǎo)過程期間提供設(shè)備支持的驅(qū)動器。這樣,DXE調(diào)度器可以在框328中初始化一系列設(shè)備、總線和服務(wù)驅(qū)動器,諸如圖1的驅(qū)動器112-116???28是傳感器層和任何使用模塊也可以被加載和初始化的地方,諸如圖1的固件傳感器層118和固件使用模塊120-126。DXE調(diào)度器可以在330處執(zhí)行引導(dǎo)調(diào)度器或者引起引導(dǎo)調(diào)度器的執(zhí)行的發(fā)起,并且然后DXE階段306可以移交到引導(dǎo)設(shè)備選擇器(BDS)階段308。
引導(dǎo)調(diào)度器可以實現(xiàn)平臺引導(dǎo)策略并且可以在332處執(zhí)行瞬時OS引導(dǎo)加載器或引起瞬時OS引導(dǎo)加載器的執(zhí)行,和/或可以在瞬時系統(tǒng)加載(TSL)階段310期間在338處執(zhí)行最終OS引導(dǎo)加載器或引起最終OS引導(dǎo)加載器的執(zhí)行。在一個實施例中,在TSL階段310期間,332處的瞬時OS引導(dǎo)加載器可以在334處發(fā)起UEFI殼的執(zhí)行,其繼而可以在336處發(fā)起(多個)無OS應(yīng)用的執(zhí)行。最終OS引導(dǎo)加載器可以在342處完成OS環(huán)境342,在該點處,BIOS可以將計算設(shè)備的控制移交給計算設(shè)備的OS。在運行時階段期間,所完成的OS環(huán)境可以在340處執(zhí)行(多個)存在OS應(yīng)用。
在其它實施例中,過程300可以在無OS環(huán)境中獨立于OS而實施。無OS環(huán)境可以例如實現(xiàn)在物聯(lián)網(wǎng)(IOT)邊緣設(shè)備或者不要求由OS提供的完整功能性的任何其它計算設(shè)備上。在這樣的環(huán)境中,TSL階段310和RT階段312可以省略以及替換為在框344中描繪的UEFI殼運行時階段346,其可以使計算設(shè)備實現(xiàn)UEFI操作狀態(tài)。在這樣的實施例中,引導(dǎo)調(diào)度器330可以實現(xiàn)平臺引導(dǎo)策略,并且可以執(zhí)行UEFI殼引導(dǎo)加載器346或引起UEFI殼引導(dǎo)加載器346的執(zhí)行。UEFI殼引導(dǎo)加載器346可以在350處發(fā)起UEFI殼運行時的執(zhí)行,其繼而可以在352處發(fā)起一個或多個UEFI殼應(yīng)用的執(zhí)行。這樣,UEFI殼可以維持計算設(shè)備的控制。以上提到的UEFI殼應(yīng)用可以包括例如以上討論的固件傳感器層和/或傳感器使用部。作為示例,固件,諸如圖1的供應(yīng)模塊120,可以在352處執(zhí)行,并且可以配置為將由固件傳感器層提供的傳感器數(shù)據(jù)報告給遠程服務(wù)器以用于傳感器數(shù)據(jù)與來自其它計算設(shè)備的傳感器數(shù)據(jù)的聚集,所述其它計算設(shè)備可以被類似地配置。
圖4描繪了依照本公開的各種實施例的用于在無OS環(huán)境中(例如,在計算設(shè)備的引導(dǎo)過程期間,或者在無OS操作狀態(tài)中)通過數(shù)據(jù)安全模塊(諸如,圖1的數(shù)據(jù)安全模塊126或圖2的數(shù)據(jù)安全模塊214),來密封數(shù)據(jù)的示例傳感器數(shù)據(jù)使用過程流400。過程可以在框402處開始,其中可以在引導(dǎo)過程期間通過數(shù)據(jù)安全模塊從請求者接收數(shù)據(jù)密封命令連同要密封的數(shù)據(jù)。在一些實施例中,請求可以已經(jīng)通過計算設(shè)備的基本輸入/輸出系統(tǒng)(BIOS)做出或發(fā)起。在框404處,數(shù)據(jù)安全模塊可以經(jīng)由固件傳感器層(例如,圖1的固件傳感器層118)檢索本地傳感器信息。本地傳感器信息可以包括傳感器讀數(shù)、傳感器狀態(tài)信息和/或傳感器校準信息。在框406處,可以通過數(shù)據(jù)安全模塊利用從固件傳感器層所接收的本地傳感器信息來生成加密密鑰,并且在框408處,可以通過數(shù)據(jù)安全模塊利用加密密鑰對數(shù)據(jù)進行加密,使得可以經(jīng)由本地傳感器信息甚至在引導(dǎo)過程期間向計算設(shè)備密封數(shù)據(jù)。在框410處,經(jīng)密封的數(shù)據(jù)可以由數(shù)據(jù)安全模塊輸出給請求者,并且本地傳感器信息可以作為密封或加密信息而保持。
圖5描繪了依照本公開的各種實施例的用于在無OS環(huán)境中(例如,在計算設(shè)備的引導(dǎo)過程期間,或者在無OS操作狀態(tài)中)解密封數(shù)據(jù)的說明性示例使用過程流500。過程可以在框502處開始,其中可以在計算設(shè)備的引導(dǎo)過程期間通過數(shù)據(jù)安全模塊從請求者(諸如,計算設(shè)備的BIOS)接收解密封命令和經(jīng)密封的數(shù)據(jù)。在框504處,在一些實施例中,與經(jīng)密封的數(shù)據(jù)相關(guān)聯(lián)的密封信息可以由數(shù)據(jù)安全模塊檢索。密封信息可以從其中保持密封信息的倉庫被檢索,或者可以從在框502處所接收的請求被檢索。在框506處,可以通過數(shù)據(jù)安全模塊經(jīng)由固件傳感器層(例如,圖1的固件傳感器層118)來檢索與密封信息對應(yīng)的本地傳感器信息。在框508處,數(shù)據(jù)安全模塊可以就密封信息是否與本地傳感器信息匹配做出確定。如果密封信息不與本地傳感器信息匹配,則過程可以進行到框510,其中數(shù)據(jù)安全模塊可以返回安全違反。如果密封信息與本地傳感器信息匹配,則過程可以進行到框512,其中數(shù)據(jù)安全模塊可以利用本地傳感器信息對經(jīng)密封的數(shù)據(jù)解密,使得計算設(shè)備的經(jīng)密封的數(shù)據(jù)可以經(jīng)由本地傳感器信息甚至在引導(dǎo)過程期間被解密封。在框514處,數(shù)據(jù)安全模塊可以將經(jīng)解密的數(shù)據(jù)發(fā)送給請求者。
圖6描繪了依照本公開的各種實施例的適用于具有固件傳感器層(諸如,圖1的固件傳感器層118)或者任何傳感器使用模塊(諸如,本文之前描述的那些)的示例計算設(shè)備。如所示出的,計算設(shè)備600可以包括一個或多個處理器或處理器核心602,以及系統(tǒng)存儲器604。在實施例中,多個處理器核心602可以設(shè)置在一個管芯上。出于包括權(quán)利要求的本申請的目的,術(shù)語“處理器”和“處理器核心”可以被視為同義詞,除非上下文清楚地另有要求。計算設(shè)備600可以包括固件存儲裝置606。固件存儲裝置606可以采取非易失性存儲器的形式,包括但不限于,只讀存儲器(ROM)、可擦可編程只讀存儲器(EPROM)和/或閃速存儲器。附加地,計算設(shè)備600可以包括(多個)大容量存儲設(shè)備608(諸如磁盤、硬驅(qū)動、致密盤只讀存儲器(CD-ROM)等)、(多個)輸入/輸出(I/O)設(shè)備610(諸如顯示器、鍵盤、光標控制部等)、通信接口612(諸如網(wǎng)絡(luò)接口卡、調(diào)制解調(diào)器等)以及(多個)傳感器設(shè)備614,(多個)傳感器設(shè)備614可以包括但不限于本文討論的任何傳感器。元件可以經(jīng)由系統(tǒng)總線616耦合到彼此,系統(tǒng)總線616可以表示一個或多個總線。在多個總線的情況下,它們可以通過一個或多個總線橋(沒有示出)橋接。
這些元件中的每一個可以執(zhí)行其在本領(lǐng)域中已知的常規(guī)功能。具體地,系統(tǒng)存儲器604和固件存儲裝置606可以被采用來存儲實現(xiàn)早前描述的操作的編程指令的工作副本和永久副本,所述操作例如但不限于與固件傳感器層和/或傳感器使用模塊相關(guān)聯(lián)的操作,被總稱為計算邏輯622。各種操作可以通過由(多個)處理器602支持的匯編指令或者可以編譯成這樣的指令的高級語言(諸如例如C)來實現(xiàn)。
編程指令的永久副本可以在工廠中或者在現(xiàn)場通過例如分布介質(zhì)(沒有示出)(諸如致密盤(CD))或者通過通信接口612(從分布服務(wù)器(沒有示出))而放置到固件存儲裝置606中。也就是說,具有固件傳感器層和/或一個或多個傳感器使用模塊的實現(xiàn)的一個或多個分布介質(zhì),可以被采用來將傳感器層和/或一個或多個傳感器使用模塊分布到各種計算設(shè)備。
這些元件610-614的數(shù)目、能力和/或容量可以取決于示例計算設(shè)備600的意圖使用而變化,例如取決于示例計算設(shè)備600是否是膝上型計算機、上網(wǎng)本、筆記本、超級本、智能電話、平板計算機、個人數(shù)字助理、超級移動個人計算機、移動電話、臺式計算機、服務(wù)器、物聯(lián)網(wǎng)設(shè)備或機頂盒。這些元件610-614的構(gòu)成以其它方式已知,并且相應(yīng)地將不進一步描述。
圖7描繪了依照各種實施例的具有指令的說明性非暫時性計算機可讀存儲介質(zhì),所述指令配置為實踐與早前描述的傳感器層和/或一個或多個傳感器使用模塊相關(guān)聯(lián)的操作中的所有操作或者所選操作。如所圖示的,非暫時性計算機可讀存儲介質(zhì)702可以包括數(shù)個編程指令704。編程指令704可以配置為使得設(shè)備(例如,計算設(shè)備600)能夠響應(yīng)于編程指令的執(zhí)行而執(zhí)行參照圖1-5描述的過程的一個或多個操作。在可替換實施例中,編程指令704可以替代地設(shè)置在多個非暫時性計算機可讀存儲介質(zhì)702上。在又其它實施例中,編程指令704可以編碼在暫時性計算機可讀信號中。
返回參照圖6,對于一個實施例,至少一個處理器602可以與計算邏輯622(替代于存儲在存儲器604和/或固件存儲裝置606中)封裝在一起,計算邏輯622配置為執(zhí)行參照圖1-5描述的過程的一個或多個操作。對于一個實施例,至少一個處理器602可以與計算邏輯622封裝在一起以形成封裝系統(tǒng)(SiP),計算邏輯622配置為實踐參照圖1-5描述的方法的各方面。對于一個實施例,至少一個處理器602可以與計算邏輯622集成在相同管芯上,計算邏輯622配置為執(zhí)行參照圖1-5描述的過程的一個或多個操作。對于一個實施例,至少一個處理器602可以與計算邏輯622封裝在一起以形成片上系統(tǒng)(SoC),計算邏輯622配置為執(zhí)行參照圖1-5描述的過程的一個或多個操作。這樣的SoC可以在任何適當?shù)挠嬎阍O(shè)備中被利用。
出于該描述的目的,計算機可使用或者計算機可讀介質(zhì)可以是可以包含、存儲、傳達、傳播或輸運程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與之結(jié)合地使用的任何介質(zhì)。介質(zhì)可以是易失性或非易失性存儲器。介質(zhì)可以是電子、磁性、光學(xué)、電磁、紅外或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或傳播介質(zhì)。計算機可讀存儲介質(zhì)的示例包括半導(dǎo)體或固態(tài)存儲器、磁帶、可移除計算機磁盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、剛性磁盤以及光學(xué)盤。光學(xué)盤的當前示例包括致密盤只讀存儲器(CD-ROM)、致密盤讀/寫(CD-R/W)和DVD。
本公開的實施例可以采取完全硬件實施例、完全軟件實施例、或者包含硬件和軟件元件二者的實施例的形式。在各種實施例中,軟件可以包括但不限于,固件、駐留軟件、微代碼等。此外,本公開可以采取從計算機可使用或計算機可讀介質(zhì)可訪問的計算機程序產(chǎn)品的形式,其提供程序代碼以供計算機或任何指令執(zhí)行系統(tǒng)使用或者與之結(jié)合地使用。
盡管已經(jīng)在本文圖示和描述了具體實施例,但是本領(lǐng)域普通技術(shù)人員將領(lǐng)會到,各種各樣的可替換和/或等同實現(xiàn)可以替換所示出和描述的具體實施例,而不脫離本公開的實施例的范圍。本申請意圖覆蓋本文討論的實施例的任何更改或變型。因此,明顯意圖的是,本公開的實施例僅由權(quán)利要求及其等同物來限制。
示例
根據(jù)各種實施例,本公開描述了數(shù)個示例。示例1是一種用于計算的計算設(shè)備,包括:處理器;以及要由處理器操作的固件,其包括一個或多個模塊和傳感器層,傳感器層用于:在無操作系統(tǒng)(OS)固件環(huán)境中接收由多個傳感器產(chǎn)生的傳感器數(shù)據(jù),其中多個傳感器屬于計算設(shè)備或者與計算設(shè)備操作地耦合;以及經(jīng)由對多個傳感器進行抽象的傳感器層的接口向一個或多個模塊選擇性地提供傳感器數(shù)據(jù)。
示例2可以包括示例1的主題,進一步包括要在計算設(shè)備上實例化的操作系統(tǒng),其中固件獨立于操作系統(tǒng)。
示例3可以包括示例1的主題,其中一個或多個模塊包括環(huán)境因素引導(dǎo)模塊,用于:通過傳感器層的接口從傳感器層接收傳感器數(shù)據(jù)的部分;以及至少部分地基于傳感器數(shù)據(jù)的該部分來應(yīng)用一個或多個策略,其中傳感器數(shù)據(jù)的該部分與由一個或多個策略限定的一個或多個環(huán)境因素相關(guān)聯(lián)。
示例4可以包括示例3的主題,其中應(yīng)用一個或多個策略是在至少部分地基于與一個或多個環(huán)境因素相關(guān)聯(lián)的傳感器數(shù)據(jù)的部分而做出違反一個或多個策略的確定時,終止計算設(shè)備的引導(dǎo)過程。
示例5可以包括示例3的主題,其中應(yīng)用一個或多個策略是至少部分地基于與環(huán)境因素相關(guān)聯(lián)的傳感器數(shù)據(jù)的部分而選擇性地實例化一個或多個驅(qū)動器。
示例6可以包括示例3-5中任一項的主題,其中環(huán)境因素包括溫度、濕氣、濕度、海拔、聲壓級、音頻頻率、振動、速度、加速度或照明中的一個或多個。
示例7可以包括示例1的主題,其中一個或多個固件模塊包括傳感器校準模塊,用于:至少部分地基于由傳感器產(chǎn)生的傳感器數(shù)據(jù)的部分來驗證多個傳感器中的傳感器;或者至少部分地基于由傳感器產(chǎn)生的傳感器數(shù)據(jù)的部分來校準多個傳感器中的傳感器。
示例8可以包括示例7的主題,其中傳感器校準模塊用于驗證多個傳感器中的傳感器,并且進一步向計算設(shè)備的操作系統(tǒng)核驗由傳感器產(chǎn)生的傳感器數(shù)據(jù)的有效性。
示例9可以包括示例7的主題,其中傳感器校準模塊用于通過以下來校準多個傳感器中的傳感器:與傳感器層交互以使由傳感器產(chǎn)生的傳感器數(shù)據(jù)與參考值匹配;或者操縱傳感器數(shù)據(jù)已使傳感器數(shù)據(jù)與參考值匹配。
示例10可以包括示例1的主題,其中一個或多個固件模塊包括數(shù)據(jù)安全模塊,用于:接收要加密的數(shù)據(jù);至少部分地基于從傳感器層接收的本地傳感器信息來生成加密密鑰;利用加密密鑰對數(shù)據(jù)進行加密;以及將本地傳感器信息作為加密信息保持在計算設(shè)備的存儲器中。
示例11可以包括示例10的主題,其中數(shù)據(jù)安全模塊進一步用于:接收對數(shù)據(jù)進行解密的請求;從傳感器層接收附加本地傳感器信息;檢索加密信息;當附加本地傳感器信息與加密信息匹配時,至少部分地基于附加本地傳感器信息而生成解密密鑰;以及利用解密密鑰對信息進行解密。
示例12可以包括示例10或11中任一項的主題,其中本地傳感器信息包括傳感器讀數(shù)、傳感器狀態(tài)或傳感器校準中的一個或多個。
示例13可以包括示例1的主題,其中無OS固件環(huán)境是引導(dǎo)過程的統(tǒng)一可擴展固件接口(UEFI)環(huán)境。
示例14可以包括示例13的主題,其中無OS固件環(huán)境是UEFI環(huán)境的驅(qū)動器執(zhí)行環(huán)境(DXE)。
示例15可以包括示例13的主題,其中計算設(shè)備獨立于操作系統(tǒng),并且引導(dǎo)過程用于實例化可擴展固件接口操作環(huán)境以導(dǎo)致計算設(shè)備實現(xiàn)無OS操作狀態(tài)。
示例16可以包括示例1-15中任一項的主題,其中多個傳感器中的一個或多個傳感器設(shè)置在計算設(shè)備上,并且經(jīng)由總線接口與處理器操作地耦合。
示例17可以包括示例1-15中任一項的主題,其中多個傳感器中的一個或多個傳感器經(jīng)由人機接口設(shè)備HID驅(qū)動器與計算設(shè)備通信地耦合。
示例18可以包括示例1或3-15中任一項的主題,其中計算設(shè)備是包括多個傳感器的物聯(lián)網(wǎng)邊緣設(shè)備。
示例19可以包括示例1-15中任一項的主題,其中計算設(shè)備選擇自由以下各項構(gòu)成的組:膝上型計算機、上網(wǎng)本、筆記本、超級本、智能電話、平板計算機、個人數(shù)字助理、超級移動個人計算機、移動電話、臺式計算機、服務(wù)器、物聯(lián)網(wǎng)設(shè)備或機頂盒。
示例20是一種用于計算的方法,包括:通過計算設(shè)備的無操作系統(tǒng)(OS)固件環(huán)境來實例化具有提供對多個傳感器的抽象的接口的傳感器層;通過無OS固件環(huán)境中的傳感器層來接收由多個傳感器產(chǎn)生的傳感器數(shù)據(jù);以及通過傳感器層經(jīng)由傳感器層的接口向一個或多個固件模塊選擇性地提供傳感器數(shù)據(jù)。
示例21可以包括示例20的主題,其中無操作系統(tǒng)(OS)固件環(huán)境是用于導(dǎo)致操作系統(tǒng)在計算設(shè)備上的實例化的引導(dǎo)過程的部分,并且其中固件環(huán)境獨立于操作系統(tǒng)。
示例22可以包括示例20的主題,其中一個或多個固件模塊包括環(huán)境因素引導(dǎo)模塊,并且進一步包括:由環(huán)境因素引導(dǎo)模塊通過傳感器層的接口從傳感器層接收傳感器數(shù)據(jù)的部分;以及通過環(huán)境因素引導(dǎo)模塊至少部分地基于傳感器數(shù)據(jù)的該部分來應(yīng)用一個或多個策略,其中傳感器數(shù)據(jù)的該部分與由一個或多個策略限定的一個或多個環(huán)境因素相關(guān)聯(lián)。
示例23可以包括示例22的主題,其中應(yīng)用一個或多個策略進一步包括:至少部分地基于與一個或多個環(huán)境因素相關(guān)聯(lián)的傳感器數(shù)據(jù)的部分來確定是否違反一個或多個策略;以及至少部分地基于確定的結(jié)果來終止計算設(shè)備的引導(dǎo)過程。
示例24可以包括示例22的主題,其中應(yīng)用一個或多個策略進一步包括:至少部分地基于與環(huán)境因素相關(guān)聯(lián)的傳感器數(shù)據(jù)的部分來選擇性地實例化一個或多個驅(qū)動器。
示例25可以包括示例22-24中任一項的主題,其中環(huán)境因素包括溫度、濕氣、濕度、海拔、聲壓級、音頻頻率、振動、速度、加速度或照明中的一個或多個。
示例26可以包括示例20的主題,其中一個或多個固件模塊包括傳感器校準模塊,并且進一步包括:通過傳感器校準模塊至少部分地基于由傳感器產(chǎn)生的傳感器數(shù)據(jù)的部分來驗證多個傳感器中的傳感器;或者通過傳感器校準模塊至少部分地基于由傳感器產(chǎn)生的傳感器數(shù)據(jù)的部分來校準多個傳感器中的傳感器。
示例27可以包括示例26的主題,其中驗證多個傳感器中的傳感器進一步包括:向計算設(shè)備的操作系統(tǒng)核驗由傳感器產(chǎn)生的傳感器數(shù)據(jù)的有效性。
示例28可以包括示例26的主題,其中校準多個傳感器中的傳感器進一步包括:與傳感器層交互以使由傳感器產(chǎn)生的傳感器數(shù)據(jù)與參考值匹配;或者操縱傳感器數(shù)據(jù)以使傳感器數(shù)據(jù)與參考值匹配。
示例29可以包括示例20的主題,其中一個或多個固件模塊包括數(shù)據(jù)安全模塊,并且進一步包括:通過數(shù)據(jù)安全模塊來接收要加密的數(shù)據(jù);通過數(shù)據(jù)安全模塊至少部分地基于從傳感器層接收的本地傳感器信息來生成加密密鑰;通過數(shù)據(jù)安全模塊利用加密密鑰對數(shù)據(jù)進行加密;以及通過數(shù)據(jù)安全模塊將本地傳感器信息作為加密信息保持在計算設(shè)備的存儲器中。
示例30可以包括示例29的主題,進一步包括:通過數(shù)據(jù)安全模塊來接收對數(shù)據(jù)進行解密的請求;通過數(shù)據(jù)安全模塊從傳感器層接收附加本地傳感器信息;通過數(shù)據(jù)安全模塊檢索加密信息;當附加本地傳感器信息與加密信息匹配時,通過數(shù)據(jù)安全模塊至少部分地基于附加本地傳感器信息來生成解密密鑰;以及通過數(shù)據(jù)安全模塊利用解密密鑰對數(shù)據(jù)進行解密。
示例31可以包括示例29或30中任一項的主題,其中本地傳感器信息包括傳感器讀數(shù)、傳感器狀態(tài)或傳感器校準中的一個或多個。
示例32可以包括示例20的主題,其中無OS固件環(huán)境是計算設(shè)備的引導(dǎo)過程的統(tǒng)一可擴展固件接口(UEFI)環(huán)境。
示例33可以包括示例32的主題,其中無OS固件環(huán)境是UEFI環(huán)境的驅(qū)動器執(zhí)行環(huán)境(DXE)。
示例34可以包括示例32的主題,其中計算設(shè)備獨立于操作系統(tǒng),并且進一步包括:通過固件環(huán)境來實例化可擴展固件接口操作環(huán)境,從而導(dǎo)致計算設(shè)備實現(xiàn)無OS操作狀態(tài)。
示例35可以包括示例20的主題,其中多個傳感器中的一個或多個傳感器設(shè)置在計算設(shè)備上,并且經(jīng)由總線接口與處理器操作地耦合。
示例36可以包括示例20的主題,其中多個傳感器中的一個或多個傳感器經(jīng)由人機接口設(shè)備HID驅(qū)動器與計算設(shè)備通信地耦合。
示例37可以包括示例20的主題,其中計算設(shè)備是包括多個傳感器的物聯(lián)網(wǎng)邊緣設(shè)備。
示例38可以包括示例20的主題,其中計算設(shè)備選擇自由以下各項構(gòu)成的組:膝上型計算機、上網(wǎng)本、筆記本、超級本、智能電話、平板計算機、個人數(shù)字助理、超級移動個人計算機、移動電話、臺式計算機、服務(wù)器或機頂盒。
示例39是具有存儲在其上的多個指令的一個或多個計算機可讀介質(zhì),所述多個指令在由計算設(shè)備的處理器執(zhí)行時使計算設(shè)備實施示例20-38中任一項的方法。
示例40是具有存儲在其上的多個指令的一個或多個計算機可讀介質(zhì),所述多個指令在由計算設(shè)備的處理器執(zhí)行時為計算設(shè)備提供固件環(huán)境,所述固件環(huán)境包括一個或多個模塊和傳感器層,以使傳感器層用于:在無操作系統(tǒng)(OS)環(huán)境中接收由多個傳感器產(chǎn)生的傳感器數(shù)據(jù),其中多個傳感器屬于計算設(shè)備或者與計算設(shè)備操作地耦合;以及經(jīng)由對多個傳感器進行抽象的傳感器層的接口向一個或多個模塊選擇性地提供傳感器數(shù)據(jù)。
示例41可以包括示例40的主題,其中固件獨立于計算設(shè)備的操作系統(tǒng)。
示例42可以包括示例40的主題,其中一個或多個模塊包括環(huán)境因素引導(dǎo)模塊,用于:通過傳感器層的接口從傳感器層接收傳感器數(shù)據(jù)的部分;以及至少部分地基于傳感器數(shù)據(jù)的該部分來應(yīng)用一個或多個策略,其中傳感器數(shù)據(jù)的該部分與由一個或多個策略限定的一個或多個環(huán)境因素相關(guān)聯(lián)。
示例43可以包括示例42的主題,其中應(yīng)用一個或多個策略是在至少部分地基于與一個或多個環(huán)境因素相關(guān)聯(lián)的傳感器數(shù)據(jù)的部分而做出違反一個或多個策略的確定時,終止計算設(shè)備的引導(dǎo)過程。
示例44可以包括示例42的主題,其中應(yīng)用一個或多個策略是至少部分地基于與環(huán)境因素相關(guān)聯(lián)的傳感器數(shù)據(jù)的部分來選擇性地實例化一個或多個驅(qū)動器。
示例45可以包括示例42-44中任一項的主題,其中環(huán)境因素包括溫度、濕氣、濕度、海拔、聲壓級、音頻頻率、振動、速度、加速度或照明中的一個或多個。
示例46可以包括示例39的主題,其中一個或多個固件模塊包括傳感器校準模塊,用于:至少部分地基于由傳感器產(chǎn)生的傳感器數(shù)據(jù)的部分來驗證多個傳感器中的傳感器;或者至少部分地基于由傳感器產(chǎn)生的傳感器數(shù)據(jù)的部分來校準多個傳感器中的傳感器。
示例47可以包括示例46的主題,其中傳感器校準模塊用于驗證多個傳感器中的傳感器,并且進一步向計算設(shè)備的操作系統(tǒng)核驗由傳感器產(chǎn)生的傳感器數(shù)據(jù)的有效性。
示例48可以包括示例46的主題,其中傳感器校準模塊用于通過以下來校準多個傳感器中的傳感器:與傳感器層交互以使由傳感器產(chǎn)生的傳感器數(shù)據(jù)與參考值匹配;或者操縱傳感器數(shù)據(jù)以使傳感器數(shù)據(jù)與參考值匹配。
示例49可以包括示例40的主題,其中一個或多個固件模塊包括數(shù)據(jù)安全模塊,用于:接收要加密的數(shù)據(jù);至少部分地基于從傳感器層所接收的本地傳感器信息來生成加密密鑰;利用加密密鑰對數(shù)據(jù)進行加密;以及將本地傳感器信息作為加密信息保持在計算設(shè)備的存儲器中。
示例50可以包括示例49的主題,其中數(shù)據(jù)安全模塊進一步用于:接收對數(shù)據(jù)進行解密的請求;從傳感器層接收附加本地傳感器信息;檢索加密信息;當附加本地傳感器信息與加密信息匹配時,至少部分地基于附加本地傳感器信息來生成解密密鑰;以及利用解密密鑰對數(shù)據(jù)進行解密。
示例51可以包括示例49或50中任一項的主題,其中本地傳感器信息包括傳感器讀數(shù)、傳感器狀態(tài)或傳感器校準中的一個或多個。
示例52可以包括示例40的主題,其中無OS固件環(huán)境是引導(dǎo)過程的統(tǒng)一可擴展固件接口(UEFI)環(huán)境。
示例53可以包括示例40的主題,其中無OS固件環(huán)境是UEFI環(huán)境的驅(qū)動器執(zhí)行環(huán)境(DXE)。
示例54可以包括示例52的主題,其中引導(dǎo)過程用于實例化可擴展固件接口操作環(huán)境,這導(dǎo)致計算設(shè)備實現(xiàn)操作狀態(tài)。
示例55可以包括示例40的主題,其中多個傳感器中的一個或多個傳感器設(shè)置在計算設(shè)備上,并且經(jīng)由總線接口與處理器操作地耦合。
示例56可以包括示例40的主題,其中多個傳感器中的一個或多個傳感器經(jīng)由人機接口設(shè)備HID驅(qū)動器與計算設(shè)備通信地耦合,并且其中傳感器層進一步用于利用HID設(shè)備驅(qū)動器與多個傳感器通信。
示例57可以包括示例40的主題,其中計算設(shè)備是包括多個傳感器的物聯(lián)網(wǎng)邊緣設(shè)備。
示例58可以包括示例40的主題,其中計算設(shè)備選擇自由以下各項構(gòu)成的組:膝上型計算機、上網(wǎng)本、筆記本、超級本、智能電話、平板計算機、個人數(shù)字助理、超級移動個人計算機、移動電話、臺式計算機、服務(wù)器或機頂盒。
示例59是一種用于計算的計算設(shè)備,包括:用于在無操作系統(tǒng)(OS)固件環(huán)境中實例化具有提供對多個傳感器的抽象的接口的傳感器層的構(gòu)件;用于在無OS固件環(huán)境中接收由多個傳感器產(chǎn)生的數(shù)據(jù)的構(gòu)件,其中多個傳感器屬于計算設(shè)備或者與計算設(shè)備操作地耦合;以及用于經(jīng)由傳感器層的接口向一個或多個固件模塊選擇性地提供傳感器數(shù)據(jù)的構(gòu)件。
示例60可以包括示例59的主題,其中無OS固件環(huán)境是用于導(dǎo)致操作系統(tǒng)在計算設(shè)備上的實例化的引導(dǎo)過程的部分。
示例61可以包括示例59的主題,其中一個或多個固件模塊包括環(huán)境因素引導(dǎo)模塊,環(huán)境因素引導(dǎo)模塊包括:用于通過傳感器層的接口從傳感器層接收傳感器數(shù)據(jù)的部分的構(gòu)件;以及用于至少部分地基于傳感器數(shù)據(jù)的該部分來應(yīng)用一個或多個策略的構(gòu)件,其中傳感器數(shù)據(jù)的該部分與由一個或多個策略限定的一個或多個環(huán)境因素相關(guān)聯(lián)。
示例62可以包括示例61的主題,其中用于應(yīng)用一個或多個策略的構(gòu)件進一步包括:用于至少部分地基于與一個或多個環(huán)境因素相關(guān)聯(lián)的傳感器數(shù)據(jù)的部分來確定是否違反一個或多個策略的構(gòu)件;以及用于至少部分地基于確定的結(jié)果來終止計算設(shè)備的引導(dǎo)過程的構(gòu)件。
示例63可以包括示例61的主題,其中用于應(yīng)用一個或多個策略的構(gòu)件進一步包括:用于至少部分地基于與環(huán)境因素相關(guān)聯(lián)的傳感器數(shù)據(jù)的部分來選擇性地實例化一個或多個驅(qū)動器的構(gòu)件。
示例64可以包括示例61-63中任一項的主題,其中環(huán)境因素包括溫度、濕氣、濕度、海拔、聲壓級、音頻頻率、振動、速度、加速度或照明中的一個或多個。
示例65可以包括示例59的主題,其中一個或多個固件模塊包括傳感器校準模塊,傳感器校準模塊包括:用于至少部分地基于由傳感器產(chǎn)生的傳感器數(shù)據(jù)的部分來驗證多個傳感器中的傳感器的構(gòu)件;或者用于至少部分地基于由傳感器產(chǎn)生的傳感器數(shù)據(jù)的部分來校準多個傳感器中的傳感器的構(gòu)件。
示例66可以包括示例65的主題,其中用于驗證多個傳感器中的傳感器的構(gòu)件進一步包括:用于向計算設(shè)備的操作系統(tǒng)核驗由傳感器產(chǎn)生的傳感器數(shù)據(jù)的有效性的構(gòu)件。
示例67可以包括示例65的主題,其中用于校準多個傳感器中的傳感器的構(gòu)件進一步包括:用于與傳感器層交互以使由傳感器產(chǎn)生的傳感器數(shù)據(jù)與參考值匹配的構(gòu)件;或者用于操縱傳感器數(shù)據(jù)以使傳感器數(shù)據(jù)與參考值匹配的構(gòu)件。
示例68可以包括示例59的主題,其中一個或多個固件模塊包括數(shù)據(jù)安全模塊,數(shù)據(jù)安全模塊包括:用于接收要加密的數(shù)據(jù)的構(gòu)件;用于至少部分地基于從傳感器層所接收的本地傳感器信息來生成加密密鑰的構(gòu)件;用于利用加密密鑰對數(shù)據(jù)加密的構(gòu)件;以及用于將本地傳感器信息作為加密信息保持在計算設(shè)備的存儲器中的構(gòu)件。
示例69可以包括示例68的主題,其中數(shù)據(jù)安全模塊進一步包括:用于接收對數(shù)據(jù)進行解密的請求的構(gòu)件;用于從傳感器層接收附加本地傳感器信息的構(gòu)件;用于檢索加密信息的構(gòu)件;用于在附加本地傳感器信息與加密信息匹配時,至少部分地基于附加本地傳感器信息來生成解密密鑰的構(gòu)件;以及用于利用解密密鑰對數(shù)據(jù)進行解密的構(gòu)件。
示例70可以包括示例68或69中任一項的主題,其中本地傳感器信息包括傳感器讀數(shù)、傳感器狀態(tài)或傳感器校準中的一個或多個。
示例71可以包括示例59的主題,其中無OS固件環(huán)境是引導(dǎo)過程的統(tǒng)一可擴展固件接口(UEFI)環(huán)境。
示例72可以包括示例71的主題,其中無OS固件環(huán)境是UEFI環(huán)境的驅(qū)動器執(zhí)行環(huán)境(DXE)。
示例73可以包括示例71的主題,其中計算設(shè)備獨立于操作系統(tǒng),并且進一步包括用于實例化可擴展固件接口操作環(huán)境從而導(dǎo)致計算設(shè)備實現(xiàn)操作狀態(tài)的構(gòu)件。
示例74可以包括示例59的主題,其中多個傳感器中的一個或多個傳感器設(shè)置在計算設(shè)備上。
示例75可以包括示例59的主題,其中多個傳感器中的一個或多個傳感器經(jīng)由人機接口設(shè)備HID驅(qū)動器與計算設(shè)備通信地耦合。
示例76可以包括示例59的主題,其中計算設(shè)備是包括多個傳感器的物聯(lián)網(wǎng)邊緣設(shè)備。
示例77可以包括示例59的主題,其中計算設(shè)備選擇自由以下各項構(gòu)成的組:膝上型計算機、上網(wǎng)本、筆記本、超級本、智能電話、平板計算機、個人數(shù)字助理、超級移動個人計算機、移動電話、臺式計算機、服務(wù)器或機頂盒。