本公開涉及電子裝置,并且更具體地涉及一種用于對多個操作系統的并發操作和/或切換行為進行管理的裝置。
背景技術:
裝置可以包括用于促進裝置中的設備操作的操作系統(OS)。例如,OS可以包括設備的各種驅動程序;文件處置和處理工具;可以促進用戶與裝置進行交互的用戶接口軟件等。裝置傳統上僅已經包括一個OS,因為這是裝置發揮作用所需的全部。然而,從各種各樣的來源引入各種各樣不同類型的操作系統已經產生了對多操作系統裝置的興趣。例如,移動計算裝置用戶可能期望當正在以靜止方式(例如,用外接電源和有線網絡)使用裝置時采用更穩健的OS,并且可以在裝置移動時切換至更精簡、更節能等的OS。可替代地,對“云”計算解決方案(例如,能夠提供諸如遠程處理、遠程存儲等服務的至少一個裝置)的興趣的增加已經創建了能夠將裝置劃分為更小的計算單元以用于可伸縮處理解決方案的需要。在任一種情況下,用于單獨地或并發地運行多個操作系統的能力是所期望的能力。
雖然在裝置中采用多于一個OS表面上可能是有益的,但是這種系統的實際實現方式目前是有問題的。現有的解決方案并不允許以便利方式從一個OS轉換至另一個,或者不允許并發地運行多個操作系統。相反,裝置一次只能運行一個OS、可能需要重啟以便改變OS配置等。所產生的延遲和/或不期望的操作限制可能使得多于一個OS的使用變得累贅。一個操作系統的實例也可能在另一個OS內虛擬運行,從而允許多于一個OS在裝置中并發活動。雖然這種解決方案可以提供同時運行多于一個OS或在不同的操作系統之間快速移動的靈活性,但是實現這種解決方案從而使得每一個OS采用可接受的方式進行所需的處理和/或能力資源使得對于某些實現方式并不合適,其中,例如,處理能力和/或電池壽命是一個關心的問題(例如,移動通信和/或計算裝置),其中期望的是對裝置中的設備再進行細分以便為多個并發運行地操作系統提供充足的資源、安全性和/或穩定性等。
附圖說明
所要求保護的主題的各個實施例的特征和優點將隨著以下具體實施方式進行并且通過參照附圖變得明顯,其中,相同的數字指代相同的部件,并且在附圖中:
圖1展示了根據本公開的至少一個實施例的被配置成用于多操作系統的訪問隔離的示例裝置;
圖2展示了根據本公開的至少一個實施例可用的裝置的示例配置;
圖3展示了根據本公開的至少一個實施例的用于多操作系統裝置的訪問隔離的示例操作;
圖4展示了根據本公開的至少一個實施例經由選擇性設備上報進行設備隔離的示例;
圖5展示了根據本公開的至少一個實施例經由選擇性設備上報進行設備隔離的示例操作;
圖6展示了根據本公開的至少一個實施例經由存儲器鎖定進行設備隔離的示例;
圖7展示了根據本公開的至少一個實施例經由存儲器鎖定進行設備隔離的示例操作;
圖8展示了根據本公開的至少一個實施例經由存儲器加密進行設備隔離的示例;以及
圖9展示了根據本公開的至少一個實施例經由存儲器加密進行設備隔離的示例操作。
雖然以下具體實施方式將參考說明性實施例進行,但是許多替代方案、修改及其變化將對本領域的技術人員而言是明顯的。
具體實施方式
本申請涉及多操作系統裝置的訪問隔離。通常,可以使用固件(例如,永久性存儲器中的程序代碼)將裝置配置成用于對在所述裝置上并發地進行操作的多于一個操作系統(OS)進行容置或者用于從一個OS轉換至另一個。在一個實施例中,所述固件中的訪問隔離模塊(AIM)可以在裝置激活之后確定裝置設備配置,并且然后可以對所述設備進行分割以供多個操作系統使用。所述AIM則可以禁用設備感測服務,并且可以使用自定義表格為每一個OS分配所述設備的至少一部分。當在操作系統之間轉換時,所述AIM可以有助于確保對應于一個OS的信息不可由其他操作系統訪問。例如,所述AIM可以檢測前臺OS何時由后臺OS替代,并且可以在所述后臺OS變得活動之前保護所述前臺OS的文件。保護的示例可以包括:鎖定由后臺OS使用的存儲器從而使得所述存儲器對于后臺OS而言不可訪問、在后臺OS變得活動之前對由前臺OS使用的存儲器進行加密等。加密可以涉及將密鑰存儲在安全存儲器中以便保護密鑰不被OS中活動的有害程序(例如,惡意軟件)訪問。
在一個實施例中,多操作系統裝置可以包括例如設備、至少兩個操作系統以及固件。所述設備可以用于支持所述裝置中的操作。所述至少兩個操作系統可以用于與所述設備的至少一部分進行交互。所述固件可以至少包括AIM,所述AIM用于確定所述裝置中所述設備的可由所述至少兩個操作系統中的每一個操作系統訪問的部分。
例如,所述AIM用于確定所述設備的部分可以包括:所述AIM用于在激活所述裝置之后將所述設備分割成可由所述至少兩個操作系統訪問的多個部分。所述AIM用于確定所述設備的部分可以包括:所述AIM用于對所述固件中允許所述至少兩個操作系統發現所述設備的功能進行解除激活。此外,所述AIM用于確定所述設備的所述部分可以包括:所述AIM用于生成對應于所述至少兩個操作系統中的每一個操作系統的表格,所述表格至少包括在激活所述裝置之后所述設備的可由所述至少兩個操作系統中的每一個操作系統訪問的一部分的標識。然后,所述至少兩個操作系統可以用于加載至所述裝置中并且利用所述設備的由所述表格標識的部分并發地進行操作。
在一個實施例中,所述設備可以至少包括存儲器模塊,所述存儲器模塊包括其中存儲對應于所述至少兩個操作系統的數據的存儲器。所述至少兩個操作系統可以包括前臺操作系統和后臺操作系統,所述訪問隔離模塊進一步用于檢測用于從所述前臺操作系統轉換至所述后臺操作系統的觸發。所述AIM可以進一步用于在檢測到所述觸發時確定由所述前臺操作系統利用的存儲器部分,并且用于使得所確定的由所述前臺操作系統利用的所述存儲器部分對于所述后臺操作系統而言不可訪問。所述AIM用于使得所確定的由所述前臺操作系統利用的所述存儲器部分對于所述后臺操作系統而言不可訪問可以包括:所述AIM用于對存儲器控制器寄存器設置進行調節或鎖定中的至少一項以便防止對所述存儲器部分的任何訪問。所述AIM用于使得所確定的由所述前臺操作系統利用的所述存儲器部分對于所述后臺操作系統而言不可訪問可以包括:所述AIM用于生成加密密鑰、使用所述密鑰對由所述前臺操作系統利用的所述存儲器部分進行加密并且將所述密鑰存儲在所述設備中的安全存儲器中。而且,所述AIM可以進一步用于從所述安全存儲器中獲得第二加密密鑰、使用所述第二密鑰對由所述后臺操作系統利用的存儲器部分進行解密并且使所述前臺操作系統由所述后臺操作系統替代。
與本公開一致的一種用于在裝置上容納多個操作系統的方法可以包括例如:檢測在裝置中需要固件干預的事件;確定存在于所述裝置中的設備;確定存在于所述裝置中的所述設備與至少兩個操作系統之間的關系;以及至少隔離所述設備的一部分以供所述至少兩個操作系統中的每一個操作系統使用。
檢測所述事件可以包括例如以下各項中的至少一項:檢測所述裝置的激活或者用于從所述裝置中的前臺操作系統轉換至后臺操作系統的觸發。確定所述裝置中的所述設備可以包括將所述設備分割成可由所述至少兩個操作系統訪問的多個部分。在一個實施例中,確定所述設備與至少兩個操作系統之間的關系可以包括:對所述固件中允許所述至少兩個操作系統發現所述設備的功能進行解除激活;以及生成對應于所述至少兩個操作系統中的每一個操作系統的表格,所述表格至少包括在激活所述裝置之后所述設備的可由所述至少兩個操作系統中的每一個操作系統訪問的一部分的標識。至少隔離所述設備的一部分以供所述至少兩個操作系統中的每一個操作系統使用可以包括允許所述至少兩個操作系統加載至所述裝置中,并且利用所述設備的由所述表格標識的多個部分并發地進行操作。在另一個實施例中,確定所述設備與至少兩個操作系統之間的關系可以包括確定由至少所述前臺操作系統利用的所述存儲器的一部分。至少隔離所述設備的一部分以供所述至少兩個操作系統中的每一個操作系統使用可以包括:在所述轉換之前,通過對存儲器控制器寄存器設置進行調節或鎖定中的至少一項、或者通過對由所述前臺操作系統利用的所述存儲器部分進行加密使得由至少所述前臺操作系統利用的所述存儲器部分對于所述后臺操作系統而言不可訪問。在相同或不同的實施例中,至少一種機器可讀存儲介質在其上單獨地或組合地存儲有多個指令,當這些指令由一個或多個處理器來執行時引起用于在裝置上容納多個操作系統的以下操作,這些操作可以包括:檢測在裝置中需要固件干預的事件;確定存在于所述裝置中的設備;確定存在于所述裝置中的所述設備與至少兩個操作系統之間的關系;以及至少隔離所述設備的一部分以供所述至少兩個操作系統中的每一個操作系統使用。介質實施例可以進一步包括類似于方法實施例的示例特征。
圖1展示了根據本公開的至少一個實施例的被配置成用于多操作系統的訪問隔離的示例裝置。設備100的示例可以包括但不限于:移動通信裝置(諸如蜂窩手機或基于安卓OS、OS、Mac OS、泰澤(Tizen)OS、火狐(Firefox)OS、黑莓OS、掌上OS、塞班OS等的智能電話)、移動計算裝置(諸如像(奢飛思)銀河平板(Galaxy)、金讀之光(Kindle)等的平板計算機)、超極本(包括由英特爾公司制造的低功率芯片組、上網本、筆記本計算機、膝上計算機、掌上計算機等)、典型的靜止計算裝置(諸如臺式計算機、服務器、智能電視、像來自英特爾公司的超小型新一代電腦主機(NUC)平臺的小形狀因數計算解決方案(例如,針對空間有限的應用、TV機頂盒等)。裝置100可以包括例如至少固件102、設備104以及多個操作系統(諸如OS 106A、OS 106B……OS 106n(統稱“OS 106A……n”))。雖然在裝置100中僅對三個(3)OS 106A……n進行了展示,但是與本公開一致的實施例并不僅限于三個操作系統,并且可以取決于例如裝置100的能力包括更少或更多操作系統。
固件102可以包括例如存儲在裝置100中的非易失性(NV)存儲器中的軟件代碼、程序、數據等。例如,當裝置100被激活(例如,從未加電狀態進行上電、從加電狀態進行重啟等)時,可以用加載至存儲器中的信息對只讀存儲器(ROM)進行編碼。加載至裝置100的存儲器中的信息可以包括例如:用于提供OS 106A……n與設備104之間的接口的至少一個內核、用于管理裝置100內的至少一個虛擬機(VM)操作的管理程序(諸如虛擬機管理器(VMM)或“管理程序”)、驅動程序、工具、安全程序等。由固件102加載的程序可以經受安全驗證,并且因此可以高于裝置100(例如,OS 106A……n)中其他軟件的特權級別進行操作。由固件102加載的至少一個程序可以是AIM 108。通常,AIM 108可以促進OS 106A……n的操作與交互。AIM 108可以例如控制設備104的部分可以如何由每一個OS 106A……n訪問。關于圖3至圖9,將對可以由AIM 108執行的示例活動進行討論。
設備104可以包括裝置100內、或至少耦合至裝置100的硬件,所述設備可以支持和/或促進各種操作。設備104可以包括更接近裝置100(例如,處理器、存儲器、總線接口、輸入/輸出(I/O)等)的操作的系統以及外圍系統(諸如用戶接口硬件、用于外部通信的有線和/或無線硬件等)。在一個實施例中,AIM 108可以隔離設備104的至少一部分,諸如例如,OS 106A可訪問的設備104A、OS 106B可訪問的設備104B……OS 106n可訪問的設備104n(統稱“設備104A……n”)。如在此所參考的,隔離表明可以建立允許僅由相應OS106A……n成功訪問設備104A……n(例如,讀取和/或寫入數據、執行命令等)的可編程控制。由另一OS 106A……n進行的接入嘗試可能引起嘗試中的至少一個嘗試被阻止、錯誤產生或不兼容數據的回傳(例如,由于數據加密)。
OS 106A……n可以包括可以被配置成用于對裝置100中的設備104的操作進行管理的軟件集合。OS 106A……n可以由公司制造以用于出售、可以由用戶社區(例如,“開源”)編寫的以供自由使用、或者可以是專用/公用模型的混合。OS 106A……n的示例可以包括但不限于:磁盤操作系統(DOS)、Windows、IOs、安卓(Android)、Unix、Linux(例如,包括各種各樣公共和盈利兩種分布)、Jolicloud等。OS 106A……n可以與至少一個內核相關聯。內核可以包括可以充當OS 106A……n與設備104之間的接口的軟件資源。例如,內核可以包括至少一個驅動程序,所述驅動程序可以被采用以便操作設備104。在操作過程中,OS 106A……n可以使系統調用訪問設備104中的各種硬件資源。內核可以管理這些調用,并且將這些調用分配給設備104內的適當硬件。OS 106A……n可以在裝置100中單獨地(例如,一次一個)或并發地進行操作。關于圖3至圖9,將對兩個操作場景的示例進行討論。
圖2展示了根據本公開的至少一個實施例的可用裝置100’的示例配置。具體地,裝置100’可以能夠執行諸如在圖1中所公開的示例功能。然而,裝置100’僅意指作為在與本公開一致的實施例中可用的設備的示例,并且并不意在將這些各個實施例限制在任何特定方式的實現方式。
裝置100’可以包括例如被配置成用于管理裝置操作的系統模塊200。系統模塊200可以包括例如處理模塊202、存儲器模塊204、電源模塊206、用戶接口模塊208以及通信接口模塊210。裝置100’還可以包括通信模塊212。雖然通信模塊212已經被展示為與系統模塊200分離,但是為了解釋的目的,僅僅提供了圖2中所示的示例實施方式。將與通信模塊212相關聯的功能的部分或全部并入系統模塊200也是可能的。
在裝置100’中,處理模塊202可以包括位于分離部件中的一個或多個處理器、或者可替代地,在單個部件中(例如,在片上系統(SoC)配置中)具體化的一個或多個處理核以及任何與處理器相關的支持電路(例如,橋接接口等)。示例處理器可以包括但不限于:可從英特爾公司獲得的各種基于x86的微處理器,包括在奔騰(Pentium)、至強(Xeon)、安騰(Itanium)、賽揚(Celeron)、阿童木(Atom)、核i系列產品家族、高級RISC(例如,精簡指令集計算)機器或“ARM”處理器等中的那些。支持電路的示例可以包括被配置成用于提供接口的芯片組(例如,可從英特爾公司獲得的北橋、南橋等),通過所述接口,處理模塊202可以與裝置100’中可以不同速度、不同總線等正在進行操作的其他系統部件進行交互。通常與支持電路相關聯的功能的部分或全部還可以包括在與處理器一樣的物理封裝體中(例如,諸如在可從英特爾公司獲得的處理器的沙橋(Sandy Bridge)族中)。
處理模塊202可以被配置成用于執行裝置100’中的各個指令。指令可以包括程序代碼,所述程序代碼被配置成用于使處理模塊202執行與讀數據、寫數據、處理數據、制定數據、轉換數據、變換數據等相關的活動。信息(例如,指令、數據等)可以存儲在存儲器模塊204中。存儲器模塊204可以包括固定或可移除格式的隨機存取存儲器(RAM)或ROM。RAM可以包括被配置成用于在裝置100’的操作過程中保持信息的易失性存儲器,諸如例如靜態RAM(SRAM)或動態RAM(DRAM)。ROM可以包括使用基本輸入/輸出系統(BIOS)、統一可擴展固件接口(UEFI)等來配置的NV存儲器模塊,以便在裝置100’被激活時提供指令、可編程存儲器(諸如,電子可編程ROM(EPROMS))、閃存等。其他固定/可移除存儲器可以包括但不限于:磁存儲器(諸如例如,軟盤、硬盤驅動器等)、電子存儲器(諸如固態閃存(例如,嵌入式多媒體卡(eMMC))等)、可移除存儲卡或可移除存儲棒(例如,微型存儲卡(uSD)、USB等)、光存儲器(諸如基于致密盤的ROM(CD-ROM))、數字視頻盤(DVD)、藍光碟等。
電源模塊206可以包括內部電源(例如,電池、燃料電池等)和/或外部電源(例如,機電或太陽能發電機、電網、燃料電池等)、以及相關電路(被配置成用于為裝置100’供應操作所需的電源)。用戶接口模塊208可以包括硬件和/或軟件以便允許用戶與裝置100’(諸如例如,各種輸入機構(例如,麥克風,開關,按鈕,旋鈕,鍵盤,揚聲器,觸敏表面,被配置成用于捕獲圖像和/或感測接近度、距離、運動、姿勢的一個或多個傳感器等)以及各種輸出機構(例如,揚聲器,顯示器,發光/閃爍指示器,針對震動、運動的機電部件等)進行交互。用戶接口模塊208中的硬件可以并入裝置100’內和/或可以經由有線或無線通信介質耦合至裝置100’。
通信接口模塊210可以被配置成用于對分組路由以及通信模塊212的其他控制功能進行管理,所述通信模塊可以包括被配置成用于支持有線和/或無線通信的資源。在某些實例中,裝置100’可以包括全部由集中通信接口模塊210管理的多于一個的通信模塊212(例如,包括針對有線協議和/或無線電臺的分離物理接口模塊)。有線通信可以包括串聯和并聯的有線介質,諸如例如:以太網、通用串行總線(USB)、火線、數字視頻接口(DVI)、高清多媒體接口(HDMI)等。無線通信可以包括例如:極近無線介質(例如,諸如基于近場通信(NFC)標準的射頻(RF)、紅外(IR)等)、短距無線介質(例如,藍牙、WLAN、Wi-Fi等)、長距無線介質(例如,蜂窩廣域無線電通信技術、基于衛星的通信等)或經由聲波的電子通信。在一個實施例中,通信接口模塊210可以被配置成用于防止在通信模塊212中活動的無線通信互相干擾。在執行此功能時,通信接口模塊210可以基于例如消息等待傳輸的相對優先級為通信模塊212安排活動。雖然圖2中所公開的實施例展示了通信接口模塊210與通信模塊212分離,但是將通信接口模塊210和通信模塊212的功能并入同一模塊內還可以是可能的。
在圖2中所公開的示例中,存儲器模塊204可以包括固件102’(例如,存儲在存儲器模塊204內的NV存儲器中),所述固件可以包括AIM 108’。在操作的示例中,固件102’可以包括在激活裝置100’時可以加載至RAM存儲器中的信息。此信息的加載可以包括驗證(例如,測量)以確保未正在加載惡意軟件。AIM 108’可以是被加載至RAM的信息的一部分,并且可以監測裝置100’中針對與OS106A……n相關的事件的操作。示例事件可以包括裝置100’的激活、OS 106A……n至裝置100中的加載、從前臺OS 106A……n轉換至后臺OS 106A……n的觸發等。在感測到事件時,AIM 108’可以執行與設備104的至少一部分(包括例如:與如圖2中公開的模塊200至212相關聯的設備)的隔離相關的操作。
圖3展示了根據本公開的至少一個實施例的用于多操作系統的訪問隔離的示例操作。在圖3中公開的示例操作可以用作與本公開一致的各個實施例可基于的基本框架。在操作300中,可以檢測裝置100中需要由固件102(例如,由AIM 108)干預的事件。事件的示例可以包括裝置100的激活、從前臺OS 106A……n轉換至后臺OS 106A……n的觸發等。然后可以在操作302中確定裝置100中的設備104。確定設備104可以包括例如:發現結合在裝置100內和/或耦合至該裝置的硬件。在操作302中已經對設備104進行確定之后,然后可以在操作304中確定設備104與OS 106A……n的關系。例如,在操作304中,設備104的至少一部分可以與每一個OS 106A……n相關聯。可以在預期基礎上(例如,在裝置100的初始化過程中,但在加載OS 106A……n之前)或反思基礎上(例如,基于裝置100中由OS 106A……n實際所使用的資源)做出此關聯。在操作306中,所述關聯允許設備104的至少一部分被隔離。例如,可以隔離設備104的部分,從而使得每一個操作系統可以訪問一組設備104,而無需擔心來自另一OS 106A……n的干擾。
圖4展示了根據本公開的至少一個實施例經由選擇性設備上報進行設備隔離的示例。在像云計算這樣的操作場景下,裝置100可以是靜止計算裝置,諸如包括大量資源的服務器。例如,單個裝置100可以包括多個處理器(每一個處理器包括多個核、多個大容量數據存儲部件、多個大容量RAM存儲器等),導致比可以由單個OS 106A…n高效利用的更高的計算能力。結果,期望能夠靈活地將裝置100分區為更小的計算單元。給定云計算場景,可以在裝置100上并發地進行操作的、靈活地將裝置104分攤至不同的OS 106A……n的能力將允許資源提供者開辟云用戶所需的處理、存儲等資源,而沒有基于軟件的OS中OS(OS-in-OS)或虛擬化解決方案的附加開銷。此類型的靈活性可以提供所需的模塊性以便實現整機柜架構(RSA)計算,其中個體服務器的全部支架可以共享資源(諸如電源、冷卻、處理、存儲器等)以便增加效率、減少發熱等。
在一個示例實現方式中,可以采用在基于UEFI的固件102中可用的高級配置和電源接口(ACPI)硬件枚舉以便實現硬件隔離,其中,可以對將設備104A……n分配給OS 106A……n的方式進行控制。這是因為ACPI聲明了軟件不可發現的系統拓撲的元件。此功能性與UEFI GetMemoryMap操作一起可以允許將裝置選擇性地指派并傳送給每一個OS 106A……n。在一個實施例中,允許OS 106A……n執行插入PCI槽的設備自動配置的外設組件互連(PCI)配置空間必須被禁用,從而使得不能超馳設備104向設備104A……n的部分分離。
在圖4中的400處公開了經由選擇性設備上報的設備隔離的示例。設備104’公開了裝置100的示例硬件配置。例如,處理模塊202’可以包括多個處理器CPU 1、CPU 2、CPU 3、CPU 4和CPU 5(統稱“CPU 1……5”)。存儲器模塊204’可以包括可以被分割成10GB區段的30GB物理RAM存儲器。通信模塊212’可以包括多個有線或無線接口,包括接口1、接口2和接口3(統稱“接口1……5”)。重要的是要注意,設備104’可以包括其他可分硬件,諸如每一個CPU 1……5包括多個可分處理核。僅為了在此解釋,已經呈現了設備104’的配置。
設備104A’和104B’表示設備104’可以如何被分區以便形成單個物理裝置100內的多個邏輯器件。例如,設備104A’可以被上報給OS 106A,并且可以僅包括CPU 1和CPU 4、10GB RAM存儲器以及通信接口1。因而,OS 106A可以在邏輯器件界限內的裝置100上進行操作,該邏輯器件由在設備104A’中所標識的資源限定。類似地,設備104B’可以上報給OS 106B。結果,OS 106B可以在邏輯器件界限內進行操作,包括CPU 3和CPU 5、第二10GB RAM存儲器以及通信接口3。設備104A……n的一部分可以同樣針對每一個后續OS 106A……n來限定。以此方式,多于一個OS 106A……n可以在裝置100上并發地進行操作而無干擾,因為沒有OS 106A……n正在利用設備104內的同一硬件(例如,每一個OS 106A……n利用不同的設備104A……n)。以此方式進行操作允許訪問所有設備104,尤其是在單個OS 106A……n不具有訪問大裝置100(例如,云服務器)中的所有設備104的能力的情況下。
圖5展示了根據本公開的至少一個實施例經由選擇性設備上報進行設備隔離的示例操作。在圖5中公開的示例進一步根據在圖4中所展現的示例通過展現操作的更具體示例對在圖3中所展現的操作進行修改。在操作300’中,可以被檢測到的事件是裝置100(操作500)的初始化(或重新初始化)。在操作302’中確定設備103可以包括例如:讀取裝置100中的資源分區上的設置選項(操作502)。設置選項可以指定裝置100的通用設備配置標準,該標準可以在操作504中采用以便在固定ACPI描述表(FADT)中對CPU資源(例如,處理器和/或核)進行分區。例如,FADT中的每一個條目可以用唯一高級可編程中斷控制器標識(APIC ID)來限定邏輯CPU資源。在操作506中,可以在存儲器映射中對設備104中的存儲器資源進行分區。使用UEFI作為示例,可以采用EFI_MEMORY_MAP以便將存儲器配置信息傳遞給OS 106A……n。在操作508中,可以在EFI裝置枚舉以及將I/O和存儲器-映射I/O(MMIO)指派給至少一個PCI基地址寄存器(BAR)之后進行存儲器分區。
在操作302’中對設備104的確定之后,可以在操作304’中確定設備104與OS 106A……n的關系。例如,在操作510中,可以在差異化系統描述表(DSDT)中將PCI裝置作為ACPI裝置進行指派。例如,除上報處理和存儲器資源之外,還可以使用DSDT名稱空間(例如,ACPI定時器、ACPI電源按鈕等)將設備104作為ACPI裝置上報給OS 106A……n。與本公開已一致,也可以采用DSDT資源上報機制將PCI裝置作為ACPI裝置進行上報(例如,以便防止PCI裝置由OS 106A……n自動配置),并且可以使用_CRS方法(例如,ACPI宏將連接資源添加至其資源的方法)對IO/MMIO BAR資源進行上報。ACPI表中用于枚舉PCI裝置的示例代碼可以包括:
OperationRegion(BAR0,SystemMemory,0xC8000000,0x20000)
OperationRegion(BAR1,SystemIo,0x8000,0x20)
Device(B1D2)
{
Name(_HID,"80860003")//PCI-assigned device identifier
Method(_CRS,0x0,NotSerialized)
{
…………………
Return BAR0;
……………………
Return BAR1;
…………………………
}
在操作510中將PCI裝置作為ACPI裝置進行上報之后,可以在操作512中禁用PCI配置空間以防止OS 106A……n能夠自動發現設備104中的PCI裝置。然后在操作306’中可以將設備104隔離至設備104A……n的部分,其中,例如,可以在操作514中為每一個OS 106A生成自定義ACPI表。可以下列各種各樣的方式確定在每一個ACPI表中所標識的資源,包括例如:由系統操作員進行的手動配置(例如,經由固件102中或OS 106A……n中的用戶接口)、由裝置100中的AIM 108或另一系統自動確定、由存在于裝置100之外的控制系統在固件102中自動確定等。然后可以在操作516中允許OS 106A……n進行引導。每一個OS 106A……n可以使用在操作514中生成的相應自定義ACPI表,該自定義ACPI表描述了在操作過程中允許每一個OS 106A……n進行訪問的設備104A……n的一部分。以此方式,多于一個OS 106A……n可以在裝置100中并發地進行操作而不會彼此干擾,因為可由每一個OS 106A……n進行訪問的設備104A……n的部分可以被隔離(例如,可以不重疊)。
在其他實施例中,可以修改中斷傳遞以便將多個OS 106A……n的并發操作容置在由ACPI表限定的多個邏輯器件中。針對現有系統中的中斷傳遞,可以具有多個中斷源和中斷控制器。與本公開一致,中斷控制器可以被指派給設備104A……n的不同部分以確保每一個邏輯器件正確使用中斷機制。由于每一個CPU可以包括本地ACPI定時器,因此確保每一個邏輯器件具有用于OS任務安排的定時器中斷可以是可能的。在一個示例實現方式中,一個邏輯器件可以訪問用戶接口模塊208(例如,顯示器、用戶輸入等),同時其他邏輯器件可以是無外設(例如,在裝置100上不具有用戶接口能力)。然而,如果設備104包括兩個圖形控制器,則給予多于一個邏輯器件用戶接口能力可以是可能的,這應該提高用戶體驗。
圖6展示了根據本公開的至少一個實施例經由存儲器鎖定進行設備隔離的示例。雖然圖5的示例公開了裝置100上OS 106A……n的并發操作,但是在圖6和圖8中公開的實施例解決了裝置100中不同OS 106A……n之間的轉換。例如,裝置100可以至少包括前臺OS(例如,OS 106A)和后臺OS(例如,OS 106B)。現有的多OS解決方案采用配置固件102以用于雙引導或執行在彼此中的OS 106A……n的實例。這兩種選項均是有問題的。雙引導需要重啟裝置100以便進行OS 106A和106B之間的轉換。重引導的需要是費時的并且負面地影響用戶體驗。在彼此中的OS 106A……n的運行實例是更響應的解決方案,但產生了大量可降低總體系統性能的存儲器和處理開銷。與本公開一致,在圖6至圖8中展現了可以促進OS 106A……n之間的快速切換而不會對裝置100的資源施加大量負擔的實施例。
ACPI標準限定了四個總體(Gx)狀態和六個睡眠(Sx)狀態。睡眠狀態S0至S5限定了裝置100中不同水平的活動。例如,S0狀態可以在裝置100完全活動時進行描述,同時S5狀態是當裝置100處于“軟關閉”狀態時進行描述,其中,裝置100除仍在被供電之外完全是不活動的。在所有這些各個睡眠狀態中,S3或“待機”狀態感興趣之處在于可以暫停裝置100中的活動,同時保留RAM存儲器。在條目進入S4或“休眠”狀態時,RAM的當前狀態被保存至盤。可能有利的是,當從一個OS切換至另一OS時將裝置100設置成S3狀態,在其中,RAM狀態是為前臺OS 106A和后臺OS 106B兩者保留的,從而允許從一個到另一個的快速轉換,而不必從盤中加載RAM狀態(例如,當在S4休眠狀態中發生時)。這種功能性可以添加至基于UEFI的固件102以便允許裝置100在觸發事件發生時使裝置進入S3睡眠狀態、并且使裝置在從S3睡眠狀態恢復時從前臺OS 106A轉換至后臺OS 106B。對于用戶而言,該轉換可能看起來幾乎是立即發生的,極大地提升了用戶滿意度。
然而,以此方式在OS 106A……n之間進行轉換的益處也可能是不利因素。S3睡眠狀態中的轉換可以快速發生,因為前臺OS 106A和后臺OS 106B兩者均可以維持在RAM在存儲器中。然而,這也意味著存儲在存儲器中來自前臺OS 106A的信息很容易被后臺OS 106B訪問,并且反之亦然。例如,在前臺OS 106A中的惡意軟件可以能夠訪問對后臺OS 106B的操作至關重要的數據、關于裝置100、關于裝置100用戶等的機密信息。為了解決其弱點,利用存儲器配置(例如,地址映射)機制(諸如,例如,在一些微處理器構架(例如,英特爾至強微處理器)中可用的源地址解碼器(SAD)和目標地址解碼(TAD)機制)作為OS交換機存儲器映射寄存器。例如,SAD和TAD寄存器可以控制存儲器中地址范圍內的開始和結束。其中例如結束地址小于開始地址的情況可以指示無效條目。創建自定義寄存器(例如,自定義OS交換機存儲器映射寄存器)以具體用于在OS切換過程中對存儲器可訪問性進行控制也可以是可能的。這些存儲器配置特征可以用于修改系統存儲器可尋址空間以便基于前臺OS 106A或后臺OS 106B是否活動對存儲器訪問進行自定義。結果,前臺OS106A對應于后臺OS 106B將不能訪問包含信息的存儲器區域,并且反之亦然。
在圖6中的600處展示了經由存儲器鎖定進行設備隔離的示例。示例總體系統地址映射602公開了裝置100包括5GB可用存儲器,一個0至3GB是低系統存儲器、3至4GB是低MIMO存儲器以及4至5GB是高系統存儲器。示例602A演示了可用存儲器可以如何出現在前臺OS 106A,而示例602B演示了當活動時后臺OS 106B可以訪問的存儲器。在示例602A中,在示出了存儲器高達1GB并且在2GB可訪問之后,可以修改系統可尋址存儲器空間。1GB和2GB之間的存儲器空間可以為例如后臺OS 106B預留。另一方面,示例602公開了后臺OS 106B僅可以訪問1GB和2GB之間的存儲器以及3GB和4GB之間的存儲器。在一個實施例中,在3GB至4GB地址范圍內的存儲器可以映射至裝置100中的設備102(例如,硬件裝置)。因而,在3GB至4GB地址范圍內的存儲器可以由前臺OS 106A和后臺OS 106B兩者使用以便控制設備102。
如在示例602A中所示,1GB和2GB之間的存儲器范圍將對前臺OS 106A不可見,并且因而,將沒有理由因為在前臺OS 106A中運行的程序而嘗試訪問存儲器中的這個區。然而,基于假定依據保護方案存儲器仍可以存在于裝置100中,使得在前臺OS 106A中進行操作的惡意軟件仍然嘗試訪問存儲器的封閉區域(Blocked Out Area)是有可能的。在一個實施例中,任何訪問封閉存儲器區域的嘗試可以通過至少停止該訪問來捕獲壞惡意行動者。而且,可以生成錯誤以向系統通知所嘗試的訪問和/或可以停止OS 106A中的部分或全部活動以便防止進一步的訪問嘗試。
圖7展示了根據本公開的至少一個實施例經由存儲器鎖定進行設備隔離的示例操作。在操作300”中檢測需要固件干預的事件可以包括檢測OS交換機觸發(操作700)。示例OS交換機觸發可以包括手動發起的事件(例如,用戶接口交互)或自動事件(例如,來自在當前活動的OS 106A……n中執行的應用,裝置100進入S3睡眠狀態等)。用戶接口交互可以包括例如:基于硬件的控制(例如,硬件按鈕)或基于軟件的控制(例如,在圖形接口顯示的按鈕)啟動。不考慮OS交換機觸發,裝置100可以進入S3睡眠狀態,并且在恢復時可以參與確定設備302”。例如,在操作702中,可以初始化硬件(例如,設備104)。硬件初始化可以在操作704中的存儲器訓練之后。存儲器訓練可以包括例如:固件102(例如,AIM 108)在裝置初始化過程中為裝置100確定整個存儲器地址映射(例如,包括SAD/TAD寄存器設置和其他有關寄存器)。AIM 108則可以使存儲器映射存儲在NV存儲器(例如,作為UEFI變量)中,并且還可以記錄存儲器分區配置(諸如,前臺OS 106A使用0GB-1GB、2GB-3GB和4GB-5GB,而后臺OS 106B僅使用1GB-2GB存儲器)。保存在NV存儲器中的存儲器映射信息則可以被用于當例如從前臺OS 106A轉換至后臺OS 106B時的參考。
在操作304”中確定設備與OS的關系可以包括例如:在操作706中確定移至前臺(例如,后臺OS 106B)的OS 106A……n,并且然后在操作708中計算存儲器映射。在操作706中確定移至前臺的OS 106A……n在例如裝置100可以包括多于兩個操作系統的場景中可能是重要的。計算存儲器映射可以包括例如:至少基于轉換至后臺的前臺OS 106A和轉換至前臺的后臺OS 106B確定寄存器設置。因而,新的存儲器映射可以使得對應于OS 106B的存儲器中的區域可訪問,同時使得對應于OS 106A的存儲器中的區域不可訪問。在操作306”中基于OS轉換對設備進行隔離則可以包括基于在操作708中所計算的存儲器映射更改存儲器配置。例如,在操作710中,訪問可以向與新的前臺OS(例如,OS 106B)相對應的存儲器區域開放,而可以阻止向與將在操作712中轉換至后臺的OS 106A相對應的存儲器區域的訪問。在裝置100中操作從S3睡眠狀態的恢復則可以在操作714中完成,其中,OS 106B變成新的前臺OS。
圖8展示了根據本公開的至少一個實施例經由存儲器加密進行設備隔離的示例。類似于在圖6和圖7中公開的實施例,圖8和圖9也涉及保護存儲器的與OS 106A……n相關聯的多個區不被另一OS 106A……n訪問。然而,此實施例展現了與對例如硬件存儲器解碼機制進行控制的基于硬件的鎖定解決方案相反的基于軟件的加密解決方案。雖然兩種解決方案均提供了相同類型的功能性,但是基于硬件的鎖定解決方案可以采用目前僅在服務器類微處理器中可用的某些硬件配置特征。例如,在個人計算機(PC)、平板計算機、移動通信裝置等中使用的微處理器可能尚未包括這些配置特征,并且因而,圖8和圖9展現了可以應用于更多種類的裝置100的加密解決方案。
在800處展現了經由存儲器加密進行設備隔離的示例。基本存儲器配置被示出在802處,并且可以包括例如:由OS 106A使用的存儲器區域、由OS 106B采用的存儲器區域以及系統管理RAM(SMRAM)804。SMRAM 804可以包括例如:僅固件102(例如,AIM 108)可訪問的安全存儲器。在804處示出了從前臺OS 106A至后臺OS 106B的轉換的示例。由前臺OS 106A使用的存儲器區域的初始狀態可以是可讀的(例如,在明文中),而由后臺OS 106B使用的存儲器區域的初始狀態可以被加密。SMRAM 804可以被隱藏(例如,因為其可以僅由AIM 108訪問)。在806處示出了轉換中的初始操作,其中,AIM 108可以在裝置從S3睡眠狀態恢復后使由前臺OS 106A使用的存儲器區域變為加密。例如,可以將高級加密標準(AES)加密算法與伽羅瓦計數器模式(GCM)密文一起用于對由OS 106A和OS 106B使用的存儲器區域進行加密和認證。AES-CGM的性能可以由某些包括AES新指令集(AES-NI)的微處理器(例如,由英特爾公司提供的至少一些微處理器)以及無進位乘法指令(PCLMULQDQ)(該無進位乘法指令可以引導AES-GCM算法的整體性能)來引導。
在對由前臺OS 106A使用的存儲器區域進行加密之后,用于執行加密的密鑰處于安全保護可以存儲在SMRAM 804中(例如,因為僅AIM 108可訪問SMRAM 804)。在圖8中的808處示出的操作可以跟隨在806處發生的那些操作之后以便對由移至前臺(例如,OS 106B)的OS使用存儲器區域進行解密。例如,AIM 108可以檢索之前被用于對由后臺OS 106B使用的存儲器區域進行加密的密鑰,并且可以然后在OS 106B轉換至前臺時對此存儲器區域進行解密。解密可以包括認證操作以便確保由OS 106B使用的存儲器區域尚未被破壞。例如,在前臺OS 106A中的程序(例如,惡意軟件)仍可以寫入由后臺OS 106B使用的存儲器區域中,并且此寫入活動可以將數據插入已加密的能夠破壞操作的存儲器區域。認證有助于確保已解密的存儲器區域與最初被加密的那個區域相匹配。如果認證失敗,則可以停止轉換并且可以在前臺中恢復后臺OS 106B。假如認證成功,則存儲器現在可以處于OS 106B、新的前臺OS可以自由訪問包括其文件的區域的狀態,而包括針對OS 106A的數據的區域現在在后臺中被加密。雖然加密無法防止與OS 106A相對應的存儲器區域被訪問,但是從讀訪問嘗試返回的任何數據將是不可理解的。
圖9展示了根據本公開的至少一個實施例經由存儲器加密進行備隔離的示例操作。在操作300”’中檢測需要固件干預的事件可以包括例如:在操作900中檢測OS交換機觸發。在圖7中關于操作700所討論的開關觸發的示例在此也是可應用的。在操作302”’中確定設備可以包括例如:在存儲器訓練之后,在操作902中對從S3睡眠狀態中恢復之后的硬件(例如,設備104)進行初始化以便在操作904中確定當前存儲器映射。分別關于操作702和704,之前已經在圖7中討論過操作903和904的示例。類似地,在操作304”’中確定設備與OS的關系可以包括例如:在操作906中至少確定移至前臺的OS,并且在操作908中計算存儲器映射,分別相對于操作706和708,之前在圖7中討論了其中的示例。
操作304”’可以進一步包括操作910,其中,固件102(例如,AIM 108)可以生成新的密鑰以用于對由前臺OS 106A使用的存儲器區域進行加密。在操作306”’中基于轉換至前臺的OS對設備進行隔離則可以包括例如:在操作912中使用在操作910中生成的密鑰對由前臺OS 106A使用的存儲器區域進行加密,并且然后將密鑰存儲在安全存儲裝置中(例如,在SMRAM 804)。在操作914中,之前用于對由后臺OS 106B使用的存儲器區域進行加密的密鑰可以從安全存儲裝置中檢索,并且可以用于在操作916中對由后臺OS 106B使用的存儲器區域進行解密。在一個實施例中,操作916可以包括對由后臺OS 106B使用的存儲器區域進行認證以確保其尚未被破壞。如果在操作916中,由后臺OS 106B使用的存儲器區域的內容不能通過驗證,則轉換可能失敗并且OS 106A可能仍處于前臺中。如果認證成功,則在操作918中,后臺OS 106B可以轉換至前臺并且前臺OS 106A可以移至后臺。
雖然圖3、圖5、圖7和圖9展示了根據不同實施例的操作,但是將理解的是,對于其他實施例來說,并非圖3、圖5、圖7和圖9中所描繪的所有操作都是必需的。確實,在此完全可以設想,在本公開的其他實施例中,可以采用任何附圖中未具體地示出、但仍然完全符合本公開的方式將圖3、圖5、圖7和圖9中所描繪的操作以及本文中所描述的和/或其他操作進行組合。因而,對未在一幅圖中準確示出的特征和/或操作有所涉及的權利要求被視為落入本公開的范圍和內容內。
如在本申請和權利要求書中所使用的,由術語“和/或”接合的一系列項目可意指所列項目的任何組合。例如,短語“A、B和/或C”可意指A;B;C;A和B;A和C;B和C;或A、B和C。如在本申請和權利要求書中所使用的,由術語“中的至少一項”接合的一系列項目可意指所列術語的任何組合。例如,短語“A、B或C中的至少一項”可意指A;B;C;A和B;A和C;B和C;或A、B和C。
如本文中任何實施例所使用的,術語“模塊”可以指被配置成用于執行前述操作中任一操作的軟件、固件和/或電路。軟件可以具體化為非瞬態計算機可讀存儲介質上所記錄的軟件包、代碼、指令、指令集和/或數據。固件可以具體化為存儲器裝置中硬編碼(例如,非易失性的)的代碼、指令或指令集和/或數據。如本文中任何實施例所使用的,“電路”可以例如單一地或以任何組合形式包括硬接線電路、可編程電路(諸如包括一個或多個個體指令處理核的計算機處理器)、狀態機電路、和/或存儲有可由可編程電路執行的指令的固件。這些模塊可以統一地或單獨地具體化為形成例如,集成電路(IC)、片上系統(SoC)、臺式計算機、膝上計算機、平板計算機、服務器、智能電話等的較大系統的一部分的電路。
在此描述的任何操作可以在系統中實現,所述系統包括具有單獨地或組合地存儲在其上的多條指令的一個或多個存儲介質(諸如,非瞬態存儲介質),當這些指令由一個或多個處理器執行時執行這些方法。此處,處理器可以包括例如:服務器CPU、移動裝置CPU、和/或其他可編程電路。而且,旨在使得在此描述的操作可以跨多個物理裝置(諸如在多于一個的不同物理位置處的處理結構)分布。存儲介質可以包括任何類型的有形介質,例如包括以下各項的任何類型的磁盤:硬盤、軟盤、光盤、壓縮盤-只讀存儲器(CD-ROM)、可復寫致密盤(CD-RW)、和磁光盤、如只讀存儲器(ROM)的半導體器件、如動態和靜態RAM的隨機存取存儲器(RAM)、可擦可編程只讀存儲器(EPROM)、電可擦可編程只讀存儲器(EEPROM)、閃存、固態盤(SSD)、嵌入式多媒體卡(eMMC)、安全數字輸入/輸出(SDIO)卡、磁卡或光卡、或者適合于存儲電子指令的任何類型的介質。其他實施例可以實現為由可編程控制裝置執行的軟件模塊。
因而,本申請涉及多操作系統裝置的訪問隔離。通常,可以使用固件將裝置配置成用于對在所述裝置上并發地進行操作的多于一個操作系統(OS)進行容置或者用于從一個OS轉換至另一個。所述固件中的訪問隔離模塊(AIM)可以確定裝置設備配置,并且可以對所述設備進行分割以供多個操作系統使用。所述AIM可以禁用基于OS的設備感測,并且可以使用自定義表格為每一個OS分配所述設備的一至少部分。當在操作系統之間轉換時,所述AIM可以有助于確保來自一個OS的信息不可由其他操作系統訪問。例如,所述AIM可以檢測前臺OS何時由后臺OS替代,并且可以在所述后臺OS變得活動之前保護(例如,鎖定或加密)所述前臺OS的文件。
下面的示例涉及進一步的實施例。如以下所提供的,本公開的以下示例可以包括主題,諸如裝置、方法、用于存儲指令(當被執行時使機器基于所述方法執行動作)的至少一個機器可讀介質、用于基于所述方法執行動作的裝置和/或用于多操作系統裝置的訪問隔離的系統。
根據示例1,提供了一種多操作系統裝置。所述裝置可以包括:用于支持所述裝置中的操作的設備;至少兩個操作系統,所述至少兩個操作系統用于與所述設備的至少一部分進行交互;以及固件,所述固件至少包括訪問隔離模塊以用于確定所述裝置中所述設備的可由所述至少兩個操作系統中的每一個操作系統訪問的部分。
示例2可以包括示例1的元素,其中,所述訪問隔離模塊用于確定所述設備的所述部分包括:所述訪問隔離模塊用于在激活所述裝置之后將所述設備分割成可由所述至少兩個操作系統訪問的多個部分。
示例3可以包括示例2的元素,其中,所述訪問隔離模塊用于確定所述設備的所述部分包括:所述訪問隔離模塊用于對所述固件中允許所述至少兩個操作系統發現所述設備的功能進行解除激活。
示例4可以包括示例3的元素,其中,所述訪問隔離模塊用于確定所述設備的所述部分包括:所述訪問隔離模塊用于生成對應于所述至少兩個操作系統中的每一個操作系統的表格,所述表格至少包括在激活所述裝置之后所述設備的可由所述至少兩個操作系統中的每一個操作系統訪問的一部分的標識。
示例5可以包括示例3的元素,其中,所述至少兩個操作系統用于加載至所述裝置中并且利用由所述表格標識的所述設備的部分并發地進行操作。
示例6可以包括示例1至示例5中任一示例的元素,其中,所述設備至少包括存儲器模塊,所述存儲器模塊包括在其中存儲對應于所述至少兩個操作系統的數據的存儲器。
示例7可以包括示例6的元素,其中,所述至少兩個操作系統包括前臺操作系統和后臺操作系統,所述訪問隔離模塊進一步用于檢測用于從所述前臺操作系統轉換至所述后臺操作系統的觸發。
示例8可以包括示例7的元素,其中,所述訪問隔離模塊進一步用于在檢測到所述觸發時確定所述存儲器的由所述前臺操作系統利用的一部分,并且用于使得所確定的由所述前臺操作系統利用的所述存儲器部分對于所述后臺操作系統而言不可訪問。
示例9可以包括示例8的元素,其中,所述訪問隔離模塊用于使得所確定的由所述前臺操作系統利用的所述存儲器部分對于所述后臺操作系統而言不可訪問包括:所述訪問隔離模塊用于對存儲器控制器寄存器設置進行調節或鎖定中的至少一項以便防止對所述存儲器部分的訪問。
示例10可以包括示例8的元素,其中,所述訪問隔離模塊用于使得所確定的由所述前臺操作系統利用的所述存儲器部分對于所述后臺操作系統而言不可訪問包括:所述訪問隔離模塊用于生成加密密鑰、使用所述密鑰對由所述前臺操作系統利用的所述存儲器部分進行加密并且將所述密鑰存儲在所述設備中的安全存儲器中。
示例11可以包括示例10的元素,其中,所述訪問隔離模塊進一步用于從所述安全存儲器中獲得第二加密密鑰、使用所述第二密鑰對由所述后臺操作系統利用的存儲器部分進行解密并且使所述前臺操作系統由所述后臺操作系統替代。
示例12可以包括示例1至示例5中任一示例的元素,其中,所述訪問隔離模塊用于確定所述裝置的所述部分包括:所述訪問隔離模塊用于在激活所述裝置之后將所述裝置分割成可由所述至少兩個操作系統訪問的多個部分;對所述固件中允許所述至少兩個操作系統發現所述裝置的功能進行解除激活;以及生成對應于所述至少兩個操作系統中的每一個操作系統的表格,所述表格至少包括在激活所述裝置之后所述設備的可由所述至少兩個操作系統中的每一個操作系統訪問的一部分的標識。
示例13可以包括示例12的元素,其中,所述至少兩個操作系統用于加載至所述裝置中并且利用由所述表格標識的所述設備的部分并發地進行操作。
示例14可以包括示例1的元素,其中,所述設備至少包括存儲器模塊,所述存儲器模塊包括其中存儲對應于所述至少兩個操作系統的數據的存儲器。
示例15可以包括示例14的元素,其中,所述至少兩個操作系統包括前臺操作系統和后臺操作系統,所述訪問隔離模塊進一步用于檢測用于從所述前臺操作系統轉換至所述后臺操作系統的觸發。
示例16可以包括示例15的元素,其中,所述訪問隔離模塊進一步用于在檢測到所述觸發時確定所述存儲器的由所述前臺操作系統利用的一部分,并且用于通過以下各項中的至少一項來使得所確定的由所述前臺操作系統利用的所述存儲器部分對于所述后臺操作系統而言不可訪問:對存儲器控制器寄存器設置進行調節或鎖定中的至少一項以便防止對所述存儲器部分的訪問;或者生成加密密鑰、使用所述密鑰對由所述前臺操作系統利用的所述存儲器部分進行加密并且將所述密鑰存儲在所述設備中的安全存儲器中。
根據示例17,提供了一種用于在裝置上容納多個操作系統的方法。所述方法可以包括:檢測在裝置中需要固件干預的事件;確定存在于所述裝置中的設備;確定存在于所述裝置中的所述設備與至少兩個操作系統之間的關系;以及至少隔離所述設備的一部分以供所述至少兩個操作系統中的每一個操作系統使用。
示例18可以包括示例17的元素,其中,檢測所述事件包括以下各項中的至少一項:檢測所述裝置的激活或用于從所述裝置中的前臺操作系統轉換至后臺操作系統的觸發。
示例19可以包括示例18的元素,其中,確定所述裝置中的所述設備包括:將所述設備分割成可由所述至少兩個操作系統訪問的多個部分。
示例20可以包括示例19的元素,其中,確定所述設備與至少兩個操作系統之間的關系包括:對所述固件中允許所述至少兩個操作系統發現所述設備的功能進行解除激活;以及生成對應于所述至少兩個操作系統中的每一個操作系統的表格,所述表格至少包括在激活所述裝置之后所述設備的可由所述至少兩個操作系統中的每一個操作系統訪問的一部分的標識。
示例21可以包括示例20的元素,其中,至少隔離所述設備的一部分以供所述至少兩個操作系統中的每一個操作系統使用包括:允許所述至少兩個操作系統加載至所述裝置中并且利用所述設備的由所述表格標識的多個部分并發地進行操作。
示例22可以包括示例18至示例21中任一示例的元素,其中,確定所述設備與至少兩個操作系統之間的關系包括:確定所述存儲器的由至少所述前臺操作系統利用的一部分。
示例23可以包括示例22的元素,其中,至少隔離所述設備的一部分以供所述至少兩個操作系統中的每一個操作系統使用包括:在所述轉換之前,通過對存儲器控制器寄存器設置進行調節或鎖定中的至少一項、或者通過對由所述前臺操作系統利用的所述存儲器部分進行加密使得所述存儲器的由至少所述前臺操作系統利用的所述部分對于所述后臺操作系統而言不可訪問。
根據示例24,提供了一種被安排成用于執行以上示例17至示例23中任一示例的方法的芯片組。
根據示例25,提供了一種至少包括裝置的系統,所述系統被安排成用于執行以上示例17至示例23中任一示例的方法。
根據示例26,提供了一種被配置成用于多操作系統裝置的訪問隔離的裝置,所述裝置被安排成用于執行以上示例17至示例23中任一示例的方法。
根據示例27,提供了至少一種機器可讀存儲介質,在其上單獨地或組合地存儲有多個指令,當這些指令由一個或多個處理器來執行時引起在裝置上容納多個操作系統的以下操作,這些操作包括:檢測在裝置中需要固件干預的事件;確定存在于所述裝置中的設備;確定存在于所述裝置中的所述設備與至少兩個操作系統之間的關系;以及至少隔離所述設備的一部分以供所述至少兩個操作系統中的每一個操作系統使用。
示例28可以包括示例27的元素,其中,檢測所述事件包括以下各項中的至少一項:檢測所述裝置的激活或用于從所述裝置中的前臺操作系統轉換至后臺操作系統的觸發。
示例29可以包括示例28的元素,其中,確定所述裝置中的所述設備包括:將所述設備分割成可由所述至少兩個操作系統訪問的多個部分。
示例30可以包括示例29的元素,其中,確定所述設備與至少兩個操作系統之間的關系包括:對所述固件中允許所述至少兩個操作系統發現所述設備的功能進行解除激活;以及生成對應于所述至少兩個操作系統中的每一個操作系統的表格,所述表格至少包括在激活所述裝置之后所述設備的可由所述至少兩個操作系統中的每一個操作系統訪問的一部分的標識。
示例31可以包括示例30的元素,其中,至少隔離所述設備的一部分以供所述至少兩個操作系統中的每一個操作系統使用包括:允許所述至少兩個操作系統加載至所述裝置中并且利用所述設備的由所述表格標識的多個部分并發地進行操作。
示例32可以包括示例28至示例31中任一示例的元素,其中,確定所述設備與至少兩個操作系統之間的關系包括:確定所述存儲器的由至少所述前臺操作系統利用的一部分。
示例33可以包括示例32的元素,其中,至少隔離所述設備的一部分以供所述至少兩個操作系統中的每一個操作系統使用包括:在所述轉換之前,通過對存儲器控制器寄存器設置進行調節或鎖定中的至少一項、或者通過對由所述前臺操作系統利用的所述存儲器部分進行加密使得所述存儲器的由至少所述前臺操作系統利用的所述部分對于所述后臺操作系統而言不可訪問。
根據示例34,提供了一種用于在裝置上容納多個操作系統的系統,所述系統包括:用于檢測在裝置中需要固件干預的事件的裝置;用于確定存在于所述裝置中的設備的裝置;用于確定存在于所述裝置中的所述設備與至少兩個操作系統之間的關系的裝置;以及用于至少隔離所述設備的一部分以供所述至少兩個操作系統中的每一個操作系統使用的裝置。
示例35可以包括示例34的元素,其中,用于檢測所述事件的所述裝置包括:用于檢測所述裝置的激活或用于從所述裝置中的前臺操作系統轉換至后臺操作系統的觸發中至少一種的裝置。
示例36可以包括示例35的元素,其中,用于確定所述裝置中的所述設備的所述裝置包括:用于將所述設備分割成可由所述至少兩個操作系統訪問的多個部分的裝置。
示例37可以包括示例36的元素,其中,用于確定所述設備與至少兩個操作系統之間的關系的所述裝置包括:用于對所述固件中允許所述至少兩個操作系統發現所述裝置的功能進行解除激活的裝置;以及用于生成對應于所述至少兩個操作系統中的每一個操作系統的表格的裝置,所述表格至少包括在激活所述裝置之后所述設備的可由所述至少兩個操作系統中的每一個操作系統訪問的一部分的標識。
示例38可以包括示例37的元素,其中,用于至少隔離所述設備的一部分以供所述至少兩個操作系統中的每一個操作系統使用的裝置包括:用于允許所述至少兩個操作系統加載至所述裝置中、并且利用由所述表格標識的所述設備的多個部分并發地進行操作的裝置。
示例39可以包括示例35至示例38中任一示例的元素,其中,用于確定所述設備與至少兩個操作系統之間的關系的裝置包括:用于確定所述存儲器的由至少所述前臺操作系統利用的一部分的裝置。
示例40可以包括示例39的元素,其中,用于至少隔離所述設備的一部分以供所述至少兩個操作系統中的每一個操作系統使用的裝置包括:用于在所述轉換之前通過對存儲器控制器寄存器設置進行調節或鎖定中的至少一項、或者通過對由所述前臺操作系統利用的所述存儲器部分進行加密使得所述存儲器的由至少所述前臺操作系統利用的所述部分對于所述后臺操作系統而言不可訪問的裝置。
本文已采用的術語和表達用作對術語進行描述而非進行限制,并且在使用這種術語和表達時不旨在排除所示且所描述的特征(或其部分)的任何等效物,并且認識到在權利要求書范圍內的各種修改是有可能的。從而,權利要求書意在涵蓋所有這類等效方案。