用于細分的特權(quán)級的操作系統(tǒng)/管理程序效率的制作方法
【專利摘要】描述了用于細分的特權(quán)級的操作系統(tǒng)/管理程序效率,例如,其中處于相同特權(quán)級的多個執(zhí)行進程共享存儲器地址轉(zhuǎn)換結(jié)構(gòu)的至少一部分。在各種實施例中,原始分層存儲器地址轉(zhuǎn)換結(jié)構(gòu)的第一組件被復制,并且被編輯以省略對可信進程和不可信進程都不可見的條目。在各種示例中,由不可信進程將復制的組件與原始轉(zhuǎn)換結(jié)構(gòu)中的其他組件一起使用;原始轉(zhuǎn)換結(jié)構(gòu)由可信進程使用。在各種示例中,第一組件的附加拷貝被用于附加的不可信進程。在一些示例中,第一組件和其(一個或者多個)副本的同步在更新轉(zhuǎn)換結(jié)構(gòu)時實行。在一些示例中,第一組件和其(一個或者多個)副本的同步由頁面故障處理程序?qū)嵭小?br>【專利說明】
用于細分的特權(quán)級的操作系統(tǒng)/管理程序效率
【背景技術(shù)】
[0001]特權(quán)級,也被稱為保護級,是一種用于控制哪些指令或者哪些數(shù)據(jù)訪問可以被執(zhí)行以及哪些不可以被執(zhí)行的計算機系統(tǒng)硬件機制。這使得不同軟件應用能夠在硬件級與彼此分離,從而使得計算機系統(tǒng)可以讓多個用戶與其連接,和/或同時運行多個應用程序而不出現(xiàn)問題。否則,一個應用可能會重寫另一個應用的數(shù)據(jù);或者,惡意應用可能會訪問另一個應用的私有數(shù)據(jù)。
[0002]特權(quán)級可以以層級安排。例如,許多計算機系統(tǒng)具有三個特權(quán)級:用于管理程序(hypervi sor )的特權(quán)最高的特權(quán)級叫做管理程序級、用于操作系統(tǒng)內(nèi)核的特權(quán)較低的特權(quán)級叫做OS級、并且用于執(zhí)行用戶程序的特權(quán)最低的特權(quán)級叫做用戶級。如果較低級的特權(quán)級產(chǎn)生異常,即,當其阻止代碼執(zhí)行時,該異??梢员粋鬟f給層級中的下一個較高特權(quán)級,其采取適當動作。例如,將錯誤代碼傳遞給阻止代碼執(zhí)行的應用程序;或者終止應用程序。
[0003]對于給定的計算機硬件,取決于硬件如何被制造,特權(quán)級的數(shù)量在該硬件中是固定的。特定特權(quán)級通常由軟件以固定方式使用,使得例如操作系統(tǒng)代碼不能在未修改操作系統(tǒng)代碼的情況下在用戶特權(quán)級運行。
[0004]通常期望將一個特權(quán)級細分到可以在該特權(quán)級執(zhí)行的多個進程中。例如,細分用戶特權(quán)級,以便使得在更多個用戶應用之間的保護是有可能的。存在對于改進細分計算設備的特權(quán)級的機制的一直不斷的需要。隨著對于諸如智能電話之類的資源受限設備的使用的增多,存在對于操作效率以及還對于存儲器要求降低的一直不斷的需要。
[0005]以下描述的實施例不限于使用細分的特權(quán)級解決現(xiàn)有計算設備的缺點中的任何缺點或者所有缺點的實施方式。
【發(fā)明內(nèi)容】
[0006]下文呈現(xiàn)了對本公開內(nèi)容的簡化概括,以便于為讀者提供基本理解。本概要不是本公開內(nèi)容的廣泛概述,并且其也未標識關鍵/決定性元素或者描畫本說明書的范圍。其唯一目的在于以簡化形式呈現(xiàn)本文公開的概念的選擇,作為對于隨后呈現(xiàn)的更詳細描述的前奏。
[0007]描述了用于細分的特權(quán)級的操作系統(tǒng)/管理程序效率,例如,其中,處于相同特權(quán)級的多個執(zhí)行進程共享存儲器地址轉(zhuǎn)換結(jié)構(gòu)的至少一部分。在各種實施例中,原始的分層存儲器地址轉(zhuǎn)換結(jié)構(gòu)中的第一組件被復制和編輯,以省略對可信進程和不可信進程兩者都不可見的條目。在各種示例中,由不可信進程將復制的組件與原始轉(zhuǎn)換結(jié)構(gòu)中的其他組件一同使用;原始轉(zhuǎn)換結(jié)構(gòu)由可信進程使用。在各種示例中,第一組件的附加拷貝用于附加的不可信進程。在一些示例中,第一組件和其(一個或者多個)副本的同步在更新轉(zhuǎn)換結(jié)構(gòu)時實行。在一些示例中,第一組件和其(一個或者多個)副本的同步由頁面故障處理程序?qū)嵭小?br>[0008]從屬特征中的許多特征將更容易被領會,因為它們通過參考結(jié)合附圖考慮的以下詳細描述變得更好被理解。
【附圖說明】
[0009]從根據(jù)附圖閱讀的以下詳細描述,將更好理解本描述,其中:
圖1是具有細分的特權(quán)級的多個計算設備的示意圖;
圖2是沒有共享存儲器地址轉(zhuǎn)換結(jié)構(gòu)的計算設備的存儲器管理和進程控制組件的示意圖;
圖3是共享了存儲器地址轉(zhuǎn)換結(jié)構(gòu)的計算設備的存儲器管理和進程控制組件的示意圖;
圖4是由操作系統(tǒng)或者管理程序執(zhí)行的可信進程處的方法的流程圖;
圖5是操作系統(tǒng)或者管理程序的調(diào)度器處的方法的流程圖;
圖6是操作系統(tǒng)或者管理程序的頁面故障處理程序處的方法的流程圖;
圖7是由操作系統(tǒng)或者管理程序?qū)嵭械耐椒椒ǖ牧鞒虉D;
圖8圖示了其中可實施操作系統(tǒng)和/或管理程序的實施例的示范性基于計算的設備。
[0010]在附圖中,相同參考數(shù)字用來指定相似部分。
【具體實施方式】
[0011]以下結(jié)合附圖提供的詳細描述旨在作為本示例的描述,并且不旨在表示本示例可以被構(gòu)造或者利用的僅有形式。本描述闡述了示例的功能和用于構(gòu)造和操作示例的步驟順序。然而,相同或者等同的功能和順序可以由不同示例實現(xiàn)。
[0012]在本文檔中描述的各種示例中,不可信代碼的存儲器與可信代碼共享。除了針對可信和不可信代碼使用分開的進程之外,各種示例描述了對特權(quán)級的細分,即,可信代碼控制不可信代碼。在一些示例中,可信代碼可以訪問不可信代碼的存儲器,但并非反之亦然。
[0013]圖1是兩個智能電話100和數(shù)據(jù)中心計算實體118的示意圖。這些計算實體中的每一項使用本文描述的細分的特權(quán)級108、116、126來使得兩個或者更多軟件應用能夠在沒有干擾的情況下在相同計算實體處執(zhí)行。例如,智能電話100具有個人軟件應用102和商務軟件應用104兩者。通過使用細分的特權(quán)級108,智能電話的硬件106可以被控制,以阻止由個人應用對商務應用數(shù)據(jù)的訪問,并且反之亦然。這樣,智能電話100的用戶可以例如在相同的智能電話上操作其工作和家庭的電子郵件應用兩者。終端用戶和用戶雇主兩者都放心的是,存儲在智能電話處的家庭電子郵件數(shù)據(jù)和商務電子郵件數(shù)據(jù)被保護不受彼此影響。
[0014]另一不例考慮了一種智能電話,其具有由制造商C制造的硬件114、包括提供商A的軟件110的操作系統(tǒng)和包括提供商B的軟件112的電子郵件應用。通過使用細分的特權(quán)級116,硬件114被控制,使得操作系統(tǒng)和提供商B的軟件112可以在保護每個實體(A、B、C)的數(shù)據(jù)免受其他實體中的每一實體的影響的同時執(zhí)行。
[0015]另一示例考慮了數(shù)據(jù)中心服務器118或者來自數(shù)據(jù)中心的其他計算實體。細分的特權(quán)級126被在數(shù)據(jù)中心服務器處的虛擬機或者操作系統(tǒng)124使用。細分的特權(quán)級使得消費者代碼120和數(shù)據(jù)中心操作者代碼122能夠在保護免受彼此影響的情況下執(zhí)行。這在消費者代碼使用私有數(shù)據(jù)的情況下尤其有用,私有數(shù)據(jù)比如是消費者詳情、支付詳情和需要被保持保護其免受數(shù)據(jù)中心操作者代碼影響的其他安全數(shù)據(jù)。
[0016]圖2是在沒有共享存儲器地址轉(zhuǎn)換結(jié)構(gòu)的情況下的計算設備的存儲器管理和進程控制組件204的示意圖。存儲器管理和進程控制組件可以包括操作系統(tǒng)和/或管理程序。在該示例中,存儲器管理和進程控制組件204使用硬件特征來創(chuàng)建進程。在圖2的示例中,圖示了兩個進程:執(zhí)行可信代碼200的進程I,208和執(zhí)行不可信代碼202的進程2,210。圖2的安排可以被擴展為具有更多進程,但是為了清楚,圖示了僅兩個進程。這兩個進程208和210在存儲器管理和進程控制組件204的相同特權(quán)級內(nèi)。也就是,存儲器管理和進程控制組件204使用計算設備處的硬件特征來將操作系統(tǒng)或者管理程序特權(quán)級細分為處于相同特權(quán)級的兩個或者更多進程。這使得執(zhí)行可信代碼的進程I能夠被保護免于執(zhí)行不可信代碼的進程2的影響。
[0017]在圖2的示例中,細分通過創(chuàng)建兩個轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)來實現(xiàn),一種轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)針對這兩個進程之一。進程I使用轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)A 206,而進程2使用轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)B 212。如果形成了更多進程,則每個附加進程使得其自身的轉(zhuǎn)換數(shù)據(jù)進程被創(chuàng)建。
[0018]轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)是保持映射的任何存儲庫,該映射用于將由軟件使用的虛擬地址轉(zhuǎn)換到用于對諸如存儲器設備之類的硬件設施進行尋址的物理地址。轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)在一些示例中可以是分層的。例如,其可以包括子轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的級聯(lián)。在一些示例中,轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)包括頁面樹。
[0019]在圖2的示例中,從操作系統(tǒng)的視角來看,進程I和進程2可以表現(xiàn)為在用戶模式特權(quán)級操作。為了在進程I和進程2之間交換數(shù)據(jù),轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)A 206和B 212可以以使得兩個進程都能夠訪問相同存儲器區(qū)域的方式進行配置。否則,進程I相對于進程2被保護,因為進程2不能夠訪問進程I的存儲器區(qū)域。
[0020]在存儲器管理和進程控制組件204內(nèi)的調(diào)度進程214控制在任何某個時間執(zhí)行進程I和進程2中的哪個進程。也就是,進程I和進程2并非并行執(zhí)行,而是以由調(diào)度進程214控制的交錯方式執(zhí)行。然而,在使用多核機器的情況下,進程I和進程2可以通過使用多個核而并行執(zhí)行。對于轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)A的更新在計算設備的操作期間發(fā)生。為了將這些更新納入考慮,同步機制216用于更新每個進程的轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)。
[0021]在本文中,要認識到,轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的副本增大了計算設備處的存儲器使用率。另夕卜,同步機制占用了計算資源。圖3的示例圖示了存儲器使用可以如何被極大地減少。其還圖示了可以如何簡化同步。這在沒有危及進程之間的保護的情形下實現(xiàn)。給出了一種可適用于大范圍的問題的細分特權(quán)級的簡單、高效并且有效的方式。
[0022]圖3示出了圖2的存儲器管理和進程控制組件204,其中,轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)B被修改,同步機制不同,并且調(diào)度可以以特定高效的方式實現(xiàn)。
[0023]在該示例中,執(zhí)行可信代碼的進程I208與執(zhí)行不可信代碼的進程2 210共享其轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)A的至少一部分。通過共享可信進程的轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的至少一部分,得到了顯著的存儲器的節(jié)省。這是因為完整的轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)不針對每個進程分開存儲。
[0024]例如,可信進程I,208具有包括多個組件的轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)。組件300中的第一組件被拷貝,并且拷貝302被進程2,210使用。第一組件的拷貝302包括一個或者多個指針,其往回指示可信進程的轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的一個或者多個其他組件。
[0025]在一些示例中,可信進程的轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)是分層的。使用分層轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)使得特別良好的存儲器效率能夠被實現(xiàn)。
[0026]例如,第一組件300是一個層級的一部分,該層級包括根級和該層級的零個或者多個接著的級別。在一些示例中,轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)是頁面樹,并且第一組件300是頁面樹的根,其被稱為頂級頁面(如圖3中圖示的)并且其他組件是頁面樹的較低級別的節(jié)點或者節(jié)點組。不一定要使用樹結(jié)構(gòu)。其他類型的分層結(jié)構(gòu)可以被使用,其包括軟件限定的層級(例如,mibs)ο
[0027]第一組件的拷貝302可以被編輯以便移除關于不可信進程不被允許訪問的存儲器區(qū)域的轉(zhuǎn)換信息。這種編輯進程由存儲器管理和進程控制組件自動完成,如以下更詳細描述的一樣??尚糯a200可以包括關于哪些存儲器位置要保存秘密而不與不可信進程共享的信息。例如,在圖3中,可信進程I,208的頁面樹的分支304對進程2是不可見的。頂層頁面A的拷貝被編輯,使得其僅指向進程I的頁面樹的左分支。在此情況下,從頂層頁面A的拷貝302開始,進程無法訪問由分支304標識的存儲器位置。
[0028]調(diào)度機制214能非常高效地在進程I和進程2之間切換,因為這現(xiàn)在涉及在轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)A的第一組件和該第一組件的拷貝之間的切換。在一些示例中,這種切換可以通過更新單個控制寄存器來實現(xiàn)。
[0029]同步機制306被極大簡化。這是因為只有第一組件和第一組件的拷貝要被同步。另夕卜,只有在第一組件和第一組件的拷貝兩者中出現(xiàn)的(或者兩者共有的)條目要被同步。
[0030]本文中描述的存儲器管理和進程控制組件的功能可以至少部分地由一個或者多個硬件邏輯組件執(zhí)行。例如并且并非限制,說明性類型的可使用硬件邏輯組件包括現(xiàn)場可編程門陣列(FPGA)、特定于程序的集成電路(ASIC)、特定于程序的標準產(chǎn)品(ASSP)、片上系統(tǒng)的系統(tǒng)(S0C)、復雜可編程邏輯器件(CPLD)。
[0031]圖4是在由操作系統(tǒng)或者管理程序執(zhí)行的可信進程處的方法的流程圖。例如,在圖3的進程I,208處的方法。該進程以特權(quán)/可信模式執(zhí)行400可信代碼。其已經(jīng)做出了用于執(zhí)行可信進程的初始存儲器分配402。在這些初始存儲器分配402期間,基于初始存儲器分配,為可信進程創(chuàng)建轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)。可信進程檢測不可信代碼也要被執(zhí)行。其做出轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的第一組件的副本。例如,其做出可信進程的頁面樹的頂級頁面的副本。該頂級頁面的該副本依然指示頁面表的相同剩余部分(除了變?yōu)闊o效的條目之外,如現(xiàn)在描述的)??尚胚M程從可信代碼獲取知識,并且使用其來使得第一組件的副本中的一個或者多個條目無效406。被無效的條目是標識對可信代碼而言是安全的存儲器的那些條目??尚糯a觸發(fā)操作系統(tǒng)或者管理程序創(chuàng)建用于不可信代碼的第二進程,并且將第一組件的副本指派給該第二進程。通過以這種方式僅復制頂級頁面,幾乎不要求附加存儲器。
[0032]圖5是操作系統(tǒng)或者管理程序的調(diào)度器處的方法的流程圖。調(diào)度器或者調(diào)度機制監(jiān)視500計算設備處的當前活動的進程。例如,這可以是圖3的示例中的進程I或者進程2。調(diào)度器檢測502在進程之間傳遞控制的需求。該檢測以任何適當?shù)姆绞綄崿F(xiàn)。例如,可以由可信代碼強制執(zhí)行某種策略,并且當該策略將不被滿足時,可信代碼向調(diào)度器發(fā)送需要傳遞控制的信號。
[0033]為了在進程之間傳遞控制,調(diào)度機制可以更新504控制寄存器,以便酌情在頂級頁面和該頂級頁面的拷貝之間切換。
[0034]在另一個示例中,調(diào)度機制調(diào)用操作系統(tǒng)API來調(diào)度無特權(quán)進程中的不可信代碼的執(zhí)行,并且然后等待。調(diào)度器然后調(diào)度該無特權(quán)進程來執(zhí)行無特權(quán)代碼。當無特權(quán)代碼的執(zhí)行結(jié)束時,調(diào)度器將控制傳遞回特權(quán)進程,以繼續(xù)執(zhí)行可信代碼。同步進程可以在此時發(fā)生,如參考圖7描述的。
[0035]圖6是操作系統(tǒng)或者管理程序的頁面故障處理程序處的方法的流程圖。頁面故障是當在轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中查找的條目未找到時發(fā)生的錯誤。這可能是因為存儲的數(shù)據(jù)已經(jīng)被移動到盤中,或者因為在轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的副本尚未適當更新的情形下的同步錯誤。圖6的方法可以取決于應用域,替代圖7的同步方法使用或者與其一同使用。例如,在對于轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的更新相對不頻繁的情況下,可以使用圖6的方法。此處,在同步成本和由于同步錯誤而導致的頁面故障的預期數(shù)量之間存在權(quán)衡。圖6的方法對于存儲器頁面中的分頁起作用。其在頂級條目指示的頁面表的那部分被頁面調(diào)出到盤中、移動或者解除分配時在代碼路徑中不起作用。在該情況下,圖7的方法可以用來保持頁面表被立即同步,否則,進程可能訪問某些隨機頁面。
[0036]當存儲器管理和進程控制組件檢測到頁面故障600時,其做出關于故障是否在無特權(quán)代碼操作期間發(fā)生的檢查602。如果不是,則使用標準頁面故障處理程序來通過從盤中加載頁面或者報告錯誤606來處理故障604。如果頁面故障在無特權(quán)代碼操作期間發(fā)生,則做出關于故障是否在轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的第一組件(例如,頂級頁面)的共享部分處發(fā)生的檢查608。如果是這樣,則標準頁面故障處理程序進程604接管。如果不是,則做出關于丟失的條目(其造成頁面故障)是否應該在第一組件的拷貝(例如,頂級頁面的拷貝)中的檢查610。如果是這樣,則發(fā)生同步。這涉及將丟失的條目從可信進程的轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)拷貝612到第一組件的拷貝。然后,恢復614執(zhí)行。如果丟失的條目不應該在第一組件的拷貝中,則將故障報告616給特權(quán)代碼進程。
[0037]圖7是由操作系統(tǒng)或者管理程序?qū)嵭械耐椒椒ǖ牧鞒虉D。操作系統(tǒng)或者管理程序的同步機制監(jiān)視700可信進程的轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的第一組件。例如,其監(jiān)視頁面樹的頂級頁面。同步機制檢查702特權(quán)進程是否修改了頂級頁面。如果沒有,則其繼續(xù)監(jiān)視。如果存在修改,則實行在第一組件和第一組件的拷貝之間的同步。例如,在頂級頁面和頂級頁面的拷貝之間。
[0038]圖8圖示了可以被實施為任何形式的計算和/或電子設備并且其中可以實施共享了存儲器地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的至少一部分的細分的特權(quán)級的實施例的示范性基于計算的設備800的各種組件。
[0039]基于計算的設備800包括一個或者多個處理器802,其可以是微處理器、控制器或任何其他適當類型的處理器,以用于處理計算機可執(zhí)行指令來控制設備操作,以便在進程共享存儲器地址轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的至少一部分的情形下保護可信進程免受一個或者多個不可信進程的影響。在一些示例中,例如,在使用了芯片架構(gòu)上的系統(tǒng)的情況下,處理器902可以包括一個或者多個固定的功能塊(也被稱為加速器),其實施以硬件(而不是軟件或者固件)保護進程的方法的一部分。包括操作系統(tǒng)804或者任何其他適當平臺軟件的平臺軟件可以在基于計算的設備處提供,以使得包括可信代碼806和不可信代碼808兩者的應用軟件能夠在設備上執(zhí)行。操作系統(tǒng)可以具有細分的特權(quán)級812。在一些示例中,在基于計算的設備800處的管理程序810具有如本文描述的那樣形成和使用的細分的特權(quán)級812。
[0040]計算機可執(zhí)行指令可以使用可由基于計算的設備800訪問的任何計算機可讀介質(zhì)來提供。計算機可讀介質(zhì)可以例如包括諸如存儲器810之類的計算機存儲介質(zhì)和通信介質(zhì)。諸如存儲器810之類的計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或者其他數(shù)據(jù)之類的信息的任何方法或技術(shù)實施的易失性和非易失性、可移除和不可移除的介質(zhì)。計算機存儲介質(zhì)包括但不限于RAM、ROM、EPROM、EEPROM、閃速存儲器或者其他存儲器技術(shù)、CD-ROM、數(shù)字萬能盤(DVD)或者其他光學存儲裝置、磁盒、磁帶、磁盤存儲裝置或者其他磁存儲設備或者可以用于存儲信息以便由計算設備訪問的任何其他非傳輸介質(zhì)。相反地,通信介質(zhì)可以具體實現(xiàn)計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或者以諸如載波之類的已調(diào)制數(shù)據(jù)信號或者其他傳送機制中的其他數(shù)據(jù)。如本文限定的,計算機存儲介質(zhì)不包括通信介質(zhì)。因此,計算機存儲介質(zhì)不應該被解譯為傳播信號本身。傳播信號可以存在于計算機存儲介質(zhì)中,但是傳播信號本身不是計算機存儲介質(zhì)的示例。雖然計算機存儲介質(zhì)(存儲器810)被示出在基于計算的設備800內(nèi),但是將領會的是,存儲裝置可以是分布式的,或者位于遠方,并且經(jīng)由網(wǎng)絡或者其他通信鏈路(例如,使用通信接口 812)訪問。通信接口 812使得基于計算的設備800能夠與其他計算實體通信。
[0041 ]基于計算的設備800還包括輸入/輸出控制器814,其可以將顯示信息輸出到可以與基于計算的設備800分離的或者與其成一整體的顯示設備816。顯示信息可以提供圖形用戶界面,例如以便使得人類操作者能夠使用不可信代碼和/或可信代碼。輸入/輸出控制器814可以被安排成接收和處理來自諸如用戶輸入設備818(例如,鼠標、鍵盤、相機、麥克風或者其他傳感器)之類的一個或者多個設備的輸入。在一些示例中,用戶輸入設備818可以檢測話音輸入、用戶手勢或者其他用戶動作,并且可以提供自然用戶界面(NUI)。該用戶輸入可以用來操作設備處的一個或者多個軟件應用。在一個實施例中,顯示設備816還可以充當用戶輸入設備818,如果其是觸敏顯示設備的話。輸入/輸出控制器814還可以將數(shù)據(jù)輸出到除了顯示設備之外的設備,例如,本地連接的打印設備。
[0042]輸入/輸出控制器814、顯不設備816和用戶輸入設備818中的任何一項或者多項可以包括使得用戶能夠以自然的方式免于受到由諸如鼠標、鍵盤、遙控器等等的輸入設備施加的人工約束來與基于計算的設備交互的NUI技術(shù)??商峁┑腘UI技術(shù)的示例包括但不限于依賴于話音和/或語音識別、觸摸和/或觸筆識別(觸敏顯示器)、在屏幕上和鄰近屏幕的手勢識別、空中手勢、頭部和眼部跟蹤、話音和語音、視覺、觸摸、手勢和機器智能的那些技術(shù)??梢允褂玫腘UI技術(shù)的其他示例包括意圖和目的理解系統(tǒng)、使用深度相機(諸如立體相機系統(tǒng)、紅外相機系統(tǒng)、rgb相機系統(tǒng)和這些組合)的運動手勢檢測系統(tǒng)、使用加速度計/陀螺儀的運動手勢檢測、面部識別、3D顯示、頭部、眼部和凝視跟蹤、沉浸式增強現(xiàn)實和虛擬現(xiàn)實系統(tǒng)和用于使用電場感測電極(EEG和相關方法)感測大腦活動的技術(shù)。
[0043]術(shù)語“計算機”或者“基于計算的設備”在本文中用于指代具有處理能力以使得其可以執(zhí)行指令的任何設備。本領域技術(shù)人員將意識到,這樣的處理能力被并入到許多不同設備中,并且因此,術(shù)語“計算機”和“基于計算的設備”各自都包括PC、服務器、移動電話(包括智能電話)、平板計算機、機頂盒、媒體播放器、游戲控制臺、個人數(shù)字助理和許多其他設備。
[0044]本文描述的方法可以由在有形存儲介質(zhì)上的以機器可讀形式的軟件執(zhí)行,例如,以包括計算機程序代碼裝置的計算機程序的形式,所述計算機程序代碼裝置被適配成當該程序在計算機上運行時并且在該計算機程序可以被具體實現(xiàn)在計算機可讀介質(zhì)上的情況下執(zhí)行本文描述的方法中的任何方法的所有步驟。有形存儲介質(zhì)的示例包括計算機存儲設備(其包括諸如盤、拇指驅(qū)動器、存儲器等等的計算機可讀介質(zhì))但是不包括傳播信號。傳播信號可以存在于有形存儲介質(zhì)中,但是傳播信號本身不是有形存儲介質(zhì)的示例。軟件可以適用于在并行處理器或者串行處理器上執(zhí)行,使得所述方法步驟可以以任何適當次序或者同時實行。
[0045]這承認了軟件可以是有價值的、單獨可交易的商品。其旨在涵蓋運行或者控制“啞”或者標準硬件來實行期望的功能的軟件。其還旨在涵蓋“描述”或者限定硬件配置的軟件,諸如HDL(硬件描述語言)軟件,其用于設計硅芯片或者用于配置通用可編程芯片來實行期望的功能。
[0046]本領域技術(shù)人員將意識到,用于存儲程序指令的存儲設備可以在網(wǎng)絡上分布。例如,遠程計算機可以存儲被描述為軟件的進程的示例。本地或者終端計算機可以訪問遠程計算機并且下載軟件的一部分或者全部來運行程序。可替換地,本地計算機可以按需要下載軟件的片段,或者在本地終端處執(zhí)行一些軟件指令,并且在遠程計算機(或者計算機網(wǎng)絡)處執(zhí)行一些軟件指令。本領域技術(shù)人員還將意識到,通過利用本領域技術(shù)人員已知的常規(guī)技術(shù),所有或者一部分軟件指令可以由諸如DSP、可編程邏輯陣列等等的專用電路實行。
[0047]本文給出的任何范圍或者設備值可以在不丟失對效果的追求的情況下被擴展或者更改,如對技術(shù)人員顯而易見的。
[0048]雖然已經(jīng)以特定于結(jié)構(gòu)特征和/或方法動作的語言描述了本主題,但是要理解,在所附權(quán)利要求中限定的主題不一定限于以上描述的特定特征或者動作。而是,以上描述的特定特征和動作被公開為實施權(quán)利要求的示例形式。
[0049]將理解的是,以上描述的益處和優(yōu)點可以關于一個實施例或者可以關于幾個實施例。實施例不限于解決所述問題中的任何問題或者全部問題的那些實施例或者具有所述益處和優(yōu)點中的任何或者所有益處和優(yōu)點的那些實施例。將進一步理解的是,對“一”項目的引用指代那些項目中的一個或者多個。
[0050]本文描述的方法的步驟可以以任何適當次序?qū)嵭校蛘咴谶m當情況下同時實行。附加地,各個框可以從所述方法中的任何方法中刪除,而不會背離本文描述的主題的精神和范圍。以上描述的示例中的任何示例的方面可以與所描述的其他示例中的任何示例的方面組合,以形成另外的示例,而不會丟失對效果的追求。
[0051]術(shù)語“包括”在本文中用來意味著包括所標識的方法框或者元件,但是這樣的框或者元件不包括排他的列表,并且方法或者裝置可以包含附加框或者元件。
[0052]將理解的是,以上描述僅作為示例給出,并且各種修改可以由本領域技術(shù)人員做出。以上說明書、示例和數(shù)據(jù)提供了對于示范性實施例的結(jié)構(gòu)和使用的完整描述。雖然各種實施例在以上以一定程度的特定性或者參考一個或者多個單獨實施例進行了描述,但是本領域技術(shù)人員可以對所公開的實施例做出許多更改,而不會背離本說明書的精神或者范圍。
【主權(quán)項】
1.一種計算機實施方法,包括: 使用計算設備的存儲器管理和進程控制組件來以相對于至少一個不可信進程而言受保護的方式執(zhí)行可信進程,所述至少一個不可信進程以所述計算設備的相同特權(quán)級執(zhí)行; 創(chuàng)建第一轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),以用于在由可信進程使用的虛擬存儲器地址和計算設備的物理存儲器地址之間進行轉(zhuǎn)換; 與不可信進程共享第一轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的至少一部分。2.如權(quán)利要求1所述的方法,在操作系統(tǒng)或者管理程序處實行。3.如權(quán)利要求1所述的方法,其中,所述第一轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)是分層的。4.如權(quán)利要求1所述的方法,其中,所述第一轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)是分層的,并且共享所述第一轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的至少一部分包括共享所述第一轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的根和零個或者更多個接著的級別。5.如權(quán)利要求1所述的方法,其中,所述第一轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)是頁面樹,并且共享所述第一轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)中的至少一部分包括共享所述頁面樹的至少頂級頁面。6.如權(quán)利要求1所述的方法,包括通過以下步驟來共享所述第一轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的至少一部分,即:拷貝要被共享的部分并且編輯所述拷貝以省略保護免受不可信進程影響的虛擬和/或物理存儲器地址。7.如權(quán)利要求6所述的方法,包括僅相對于由可信和不可信進程共享的存儲器地址,同步所述第一轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的所述至少一部分和所編輯的拷貝。8.如權(quán)利要求7所述的方法,包括以以下方式中的任何方式來實行同步:當?shù)谝晦D(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)被可信進程更新時;作為檢測到頁面故障的結(jié)果;在頁面故障處理程序處。9.如權(quán)利要求1所述的方法,包括通過僅更新一個控制寄存器來在可信和不可信進程的執(zhí)行之間切換。10.—種計算設備的存儲器管理和進程控制組件,其被安排成以相對于至少一個不可信進程而言受保護的方式執(zhí)行可信進程,所述至少一個不可信進程在計算設備的相同特權(quán)級處執(zhí)行; 存儲器,其存儲第一轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu),以用于在由可信進程使用的虛擬存儲器地址和所述計算設備的物理存儲器地址之間進行轉(zhuǎn)換; 存儲器管理和進程控制組件,其被安排成與不可信進程共享所述第一轉(zhuǎn)換數(shù)據(jù)結(jié)構(gòu)的至少一部分。
【文檔編號】G06F12/14GK106068502SQ201580012509
【公開日】2016年11月2日
【申請日】2015年2月27日 公開號201580012509.0, CN 106068502 A, CN 106068502A, CN 201580012509, CN-A-106068502, CN106068502 A, CN106068502A, CN201580012509, CN201580012509.0, PCT/2015/17873, PCT/US/15/017873, PCT/US/15/17873, PCT/US/2015/017873, PCT/US/2015/17873, PCT/US15/017873, PCT/US15/17873, PCT/US15017873, PCT/US1517873, PCT/US2015/017873, PCT/US2015/17873, PCT/US2015017873, PCT/US201517873
【發(fā)明人】A·J·拉亨曼, J·J·理查森, H·C·肯
【申請人】微軟技術(shù)許可有限責任公司