欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

安全的操作系統(tǒng)切換的制作方法

文檔序號:6454219閱讀:194來源:國知局
專利名稱:安全的操作系統(tǒng)切換的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)中的操作系統(tǒng)領(lǐng)域;更具體地,本發(fā)明涉及在計(jì)算機(jī)系統(tǒng)上使用的操作系統(tǒng)之間的切換。

背景技術(shù)
計(jì)算機(jī)系統(tǒng)由許多硬件組件組成,例如,CPU、RAM、盤片、鍵盤、顯示器、串口等。其他一些略微抽象,卻是OS的運(yùn)行同樣關(guān)心的,如中斷、PCI總線等。
當(dāng)系統(tǒng)中只有一個(gè)OS在運(yùn)行時(shí),該OS能夠看見、擁有并管理系統(tǒng)中的全部硬件組件。
近年來,人們在相同的計(jì)算機(jī)上放置了多于一個(gè)的操作系統(tǒng)(OS)。在企業(yè)服務(wù)器領(lǐng)域,這樣的特征允許將一個(gè)服務(wù)器放在一個(gè)VM上,并帶來好得多的可管理性。在軟件開發(fā)中,這使開發(fā)者能夠快速測試出在各種OS以及相同OS的各種版本上的軟件可移植性。甚至在個(gè)人計(jì)算中,人們使用多個(gè)OS用于支持不同的應(yīng)用并用于測試新的OS版本,或甚至測試下載的軟件。在如智能電話之類的嵌入式設(shè)備上,人們可以為不同的目的而擁有兩個(gè)OS一個(gè)針對私人使用而一個(gè)針對公務(wù)。
對于多OS而言,最重要的技術(shù)是虛擬機(jī)(VM)技術(shù),該技術(shù)原先是由IBM為大型計(jì)算機(jī)而開發(fā)的。近來,在VM技術(shù)中重新開始了新的關(guān)注,包括新產(chǎn)品和如VMW之類的研究項(xiàng)目。這些提供了良好的安全性和隔離。然而,典型地,這些確實(shí)都承受了性能的損失。一項(xiàng)研究表明,取決于應(yīng)用,VM技術(shù)可以將應(yīng)用減慢10%至80%。
此外,VM技術(shù)的實(shí)現(xiàn)和移植很復(fù)雜。例如為了很好地支持訪客(guest)系統(tǒng),需要以這樣或那樣的方式將所有下層設(shè)備虛擬化,以便由該訪客系統(tǒng)訪問。隨著每天面世的新硬件列表的增長,這一限制可能局限了基于VM的方法的應(yīng)用性。
對于不需要多個(gè)OS同時(shí)運(yùn)行的應(yīng)用場景,現(xiàn)有的簡單的解決方案沒有這些問題。已經(jīng)有如來自GNU.org的GRUB以及來自PowerQuest(Symantec)的BootMagic之類的多引導(dǎo)解決方案。也有一些硬件交換和手動(dòng)選擇方案,這些方案讓人們選擇不同的引導(dǎo)設(shè)備并有效地使多個(gè)OS能夠運(yùn)行在相同的計(jì)算機(jī)上。不幸的是,緩慢而繁瑣的切換過程限制了其應(yīng)用范圍。
OS切換是另一種選擇方案,用于支持多OS。操作系統(tǒng)(OS)切換是一種使多個(gè)操作系統(tǒng)(OS)能夠在相同的計(jì)算機(jī)上同時(shí)運(yùn)行的技術(shù)。在一個(gè)實(shí)施例中,每個(gè)OS擁有一部分系統(tǒng)內(nèi)存和存儲(chǔ)器,并輪流運(yùn)行。在一個(gè)實(shí)施例中,通過修改功率管理模塊中的掛起/繼續(xù)功能來實(shí)現(xiàn)從一個(gè)OS到另一個(gè)的切換。
當(dāng)多個(gè)OS同時(shí)運(yùn)行時(shí),一個(gè)基本問題是,如何將每個(gè)硬件組件導(dǎo)出至每個(gè)OS?,F(xiàn)有三種根本不同的技術(shù)獨(dú)占分割、時(shí)間復(fù)用以及抽象(abstraction)。在獨(dú)占分割中,硬件組件獨(dú)占地屬于一個(gè)OS,系統(tǒng)中的任何其他OS永遠(yuǎn)不能訪問該硬件組件。例如,可以將存儲(chǔ)器劃分為兩半,兩個(gè)OS每個(gè)擁有一半。又例如,可以將以太網(wǎng)控制器分配給一個(gè)OS,而其他OS或者不能訪問以太網(wǎng),或者通過與作為擁有者的OS通話來間接地訪問以太網(wǎng)。在時(shí)間復(fù)用中,任何時(shí)候一個(gè)OS獨(dú)占地?fù)碛胁⒐芾碛布M件。然而,隨時(shí)間變化,擁有權(quán)可以從一個(gè)OS切換至另一個(gè)。典型地,CPU就是按照這種方式被共享的。在抽象中,OS不能看見并管理真實(shí)的硬件組件;代之以通過另一個(gè)軟件層來訪問該硬件。虛擬化是抽象的一種特殊形式,在虛擬化中,抽象軟件的接口看上去像是傳統(tǒng)設(shè)備,而取代了典型的功能調(diào)用接口。
多OS解決方案可以使用上述技術(shù)的組合。即使對于相同的硬件組件,也可以組合不同的技術(shù)。例如,以太網(wǎng)控制器可以獨(dú)占地屬于一個(gè)OS。如果在該OS中的應(yīng)用實(shí)現(xiàn)了虛擬以太網(wǎng)控制器,并將其導(dǎo)出至其他OS,則其他OS可以通過該虛擬以太網(wǎng)控制器的抽象接口來間接地訪問該以太網(wǎng)控制器。
基于VM的多OS解決方案采用抽象或虛擬化來管理大多數(shù)硬件組件。另一方面,多引導(dǎo)解決方案通過重新引導(dǎo)對整個(gè)系統(tǒng)使用時(shí)間復(fù)用。
OS切換技術(shù)的一個(gè)示例描述在2001年8月30日提出的美國專利申請No.20010018717A1中,其名稱為“Computer System,OperatingSystem Switching System,Operating System Mounting Method,Operating System Switching Method,Storage Medium,and ProgramTransmission Apparatus”,其中在未嘗試虛擬化任何硬件組件的情況下支持多個(gè)OS。
如美國專利申請No.20010018717A1中所描述的現(xiàn)有的OS切換解決方案不能在多個(gè)OS之間提供強(qiáng)大的隔離。該OS切換的一個(gè)問題是缺少OS間的強(qiáng)大的隔離和保護(hù),表現(xiàn)為缺少存儲(chǔ)器隔離以及缺少強(qiáng)制控制轉(zhuǎn)移。更具體地,對于缺少存儲(chǔ)器隔離,所有OS共享相同的物理存儲(chǔ)器。當(dāng)OS內(nèi)核在特許(privilege)模式下運(yùn)行時(shí),它能夠修改任何存儲(chǔ)器內(nèi)容,包括屬于其他OS以及OS切換器的內(nèi)容。如果是這樣,或者由于錯(cuò)誤(bug)或者由于惡意病毒,其他OS以及甚至整個(gè)系統(tǒng)將崩潰。同樣,對于缺少強(qiáng)制控制轉(zhuǎn)移,上述實(shí)現(xiàn)方式依賴于當(dāng)前有效的OS放棄CPU并進(jìn)入OS切換器以便執(zhí)行OS切換。潛在地,錯(cuò)誤的或被惡意攻擊的OS可能永遠(yuǎn)不會(huì)進(jìn)入OS切換器。由此,其他OS被永遠(yuǎn)有效地掛起,除非將整個(gè)系統(tǒng)關(guān)閉并重新引導(dǎo)。因此,主要由于缺少存儲(chǔ)器隔離和強(qiáng)制控制轉(zhuǎn)移,這些OS切換的實(shí)現(xiàn)方式具有安全漏洞。


發(fā)明內(nèi)容
此處公開了用于安全的操作系統(tǒng)切換的方法和裝置。在一個(gè)實(shí)施例中,所述方法包括識別多個(gè)操作系統(tǒng)中下一個(gè)有效的第二操作系統(tǒng);一旦所述第二操作系統(tǒng)變?yōu)橛行?,使存?chǔ)器訪問控制器能夠獨(dú)占訪問針對所述第二操作系統(tǒng)的存儲(chǔ)器的一部分;以及使所述第二操作系統(tǒng)變?yōu)橛行А?br>


從以下給出的詳細(xì)描述,以及從本發(fā)明的各種實(shí)施例的附圖中,可以更全面的理解本發(fā)明,然而,這些詳細(xì)描述和附圖不應(yīng)被認(rèn)為是將本發(fā)明限制為具體實(shí)施例,而僅是為了解釋和理解。
圖1示意了用于執(zhí)行兩個(gè)OS之間的OS切換的OS切換偽代碼的一個(gè)實(shí)施例; 圖2示意了偽代碼,該偽代碼描述了當(dāng)在OS間切換時(shí)發(fā)生強(qiáng)制OS切換的一般場景; 圖3示意了圖2所示的強(qiáng)制OS切換; 圖4是用于使多個(gè)操作系統(tǒng)能夠在計(jì)算機(jī)上同時(shí)運(yùn)行的過程的實(shí)施例的流程圖; 圖5示意了用于利用延遲策略執(zhí)行強(qiáng)制OS切換的偽代碼; 圖6示意了圖5中描述的強(qiáng)制OS切換的場景; 圖7是示例性計(jì)算機(jī)系統(tǒng)的框圖; 圖8是存儲(chǔ)器訪問控制器的一個(gè)實(shí)施例的框圖; 圖9是切換策略強(qiáng)制執(zhí)行裝置的一個(gè)實(shí)施例的框圖。

具體實(shí)施例方式 描述了安全的操作系統(tǒng)(OS)切換。在下層硬件的支持下,所公開的OS切換被實(shí)現(xiàn)為具有強(qiáng)大的隔離。在一個(gè)實(shí)施例中,安全的OS切換使用英國劍橋的ARM Holding公司的TrustZone技術(shù)以及加利福尼亞州圣克拉拉的因特爾公司的VT-x技術(shù)。
在以下的描述中,闡述了許多細(xì)節(jié),以提供本發(fā)明的更全面的描述。然而,本領(lǐng)域技術(shù)人員應(yīng)理解,沒有這些具體細(xì)節(jié),也可以實(shí)現(xiàn)本發(fā)明。在其他示例中,以框圖的形式來示出眾所周知的結(jié)構(gòu)和設(shè)備,而不詳細(xì)描述,以避免使本發(fā)明變得不清楚。
以對計(jì)算機(jī)存儲(chǔ)器中的數(shù)據(jù)比特的運(yùn)算的算法和符號表示的方式來呈現(xiàn)以下的詳細(xì)描述的一些部分。這些算法描述和表示是數(shù)據(jù)處理領(lǐng)域的技術(shù)人員用于向本領(lǐng)域其他技術(shù)人員最有效地傳遞其工作的實(shí)質(zhì)的方法。此處,一般地,算法被是導(dǎo)致所需結(jié)果的自我一致(self-consistent)的步驟序列。步驟是需要物理量的物理操作的步驟。通常,但不必要地,這些量采取能被存儲(chǔ)、轉(zhuǎn)移、組合、比較或操作的電或磁信號的形式。已經(jīng)證實(shí),有時(shí),尤其出于通用的目的,將這些信號稱為比特、值、元素、符號、字符、項(xiàng)、數(shù)或類似物是很方便的。
然而,應(yīng)記住,所有這些以及類似的詞都與合適的物理量相關(guān)聯(lián),并僅是對這些量施加的方便的標(biāo)簽。除非特別聲明,否則,如在以下的描述中顯而易見的,可以認(rèn)識到,在整個(gè)說明書中,利用如“處理”或“計(jì)算(computing)”或“計(jì)算(calculating)”或“確定”或“顯示”之類的詞的討論,是指計(jì)算機(jī)系統(tǒng)或類似電子計(jì)算設(shè)備的動(dòng)作和過程,所述動(dòng)作和過程將計(jì)算機(jī)系統(tǒng)的寄存器或存儲(chǔ)器中表示為物理(電子)量的數(shù)據(jù)操作并變換為類似地表示為計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器或寄存器或其他這樣的信息存儲(chǔ)、傳送或顯示設(shè)備中的物理量的其他數(shù)據(jù)。
本發(fā)明也涉及用于執(zhí)行此處的操作的裝置??梢詾樗枘康奶貏e構(gòu)造該裝置,或者,該裝置可以包括通用計(jì)算機(jī),由該計(jì)算機(jī)中存儲(chǔ)的計(jì)算機(jī)程序來選擇性的激活或重新配置該計(jì)算機(jī)。這樣的計(jì)算機(jī)程序可以被存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,例如但不限于任何種類的盤,包括軟盤、光盤、CD-ROM、以及磁光盤、只讀存儲(chǔ)器(ROM)、隨機(jī)訪問存儲(chǔ)器(RAM)、EPROM、EEPROM、磁或光卡、或適于存儲(chǔ)電子指令的任何種類的媒質(zhì),每個(gè)這樣的存儲(chǔ)介質(zhì)與計(jì)算機(jī)總線連接。
此處所呈現(xiàn)的算法和顯示不是固有地與任何特定計(jì)算機(jī)或其他裝置相關(guān)。根據(jù)此處的教導(dǎo),可以將各種通用系統(tǒng)與程序一起使用,或者,可以證實(shí),構(gòu)造更特殊的裝置來執(zhí)行所需的方法步驟是方便的。從以下描述中,各種這樣的系統(tǒng)的所需結(jié)構(gòu)將變得清楚。此外,本發(fā)明不是根據(jù)任何特定的變成語言來描述的。可以認(rèn)識到,可以使用各種變成語言來實(shí)現(xiàn)如此處所描述的本發(fā)明的教導(dǎo)。
機(jī)器可讀介質(zhì)包括用于以機(jī)器(例如計(jì)算機(jī))可讀的形式存儲(chǔ)或傳送信息的機(jī)制。例如,機(jī)器可讀介質(zhì)包括只讀存儲(chǔ)器(“ROM”);隨機(jī)訪問存儲(chǔ)器(“RAM”);磁盤存儲(chǔ)媒質(zhì);光存儲(chǔ)媒質(zhì);閃存設(shè)備;點(diǎn)、光、聲或其他傳播信號的形式(例如載波、紅外信號、數(shù)字信號等)等。
安全的OS切換 為了執(zhí)行安全的OS切換,使用被稱為OS切換器的一件邏輯上獨(dú)立的軟件。在一個(gè)實(shí)施例中,在CPU執(zhí)行OS切換器代碼時(shí),該CPU處于切換器模式。否則,為了此處的目的,該CPU運(yùn)行在傳統(tǒng)模式下。
在一個(gè)實(shí)施例中,OS切換將多個(gè)計(jì)算機(jī)系統(tǒng)仿真為一個(gè),其中,在任何時(shí)候,其中只有一個(gè)是有效的,而其他被掛起。在OS切換過程中,由于OS內(nèi)核典型地未準(zhǔn)備處理硬件擁有權(quán)的突然丟失或CPU執(zhí)行控制的丟失,因此需要特別注意。對于獨(dú)占分割的資源,如果該設(shè)備沒有產(chǎn)生如中斷之類的異步事件,則典型地,軟件沒有觀察到OS切換的任何副作用。如果該設(shè)備產(chǎn)生異步事件,則軟件需要知道在關(guān)閉當(dāng)前OS時(shí)可能丟失這樣的事件。可選地,當(dāng)前OS可以在被關(guān)閉之前關(guān)閉該設(shè)備,使其在關(guān)閉OS時(shí)不產(chǎn)生任何同步事件。對于時(shí)間復(fù)用的資源,在OS切換過程中,多個(gè)OS訪問時(shí)間復(fù)用的設(shè)備。在關(guān)閉當(dāng)前OS之前,強(qiáng)制保存該設(shè)備的狀態(tài),并在再次切換至原先的OS時(shí)恢復(fù)原先的狀態(tài)。當(dāng)然,如果該設(shè)備能夠產(chǎn)生異步事件,則OS需要知道在關(guān)閉當(dāng)前OS時(shí)可能丟失這樣的事件。因此,使用OS功率掛起和繼續(xù)(resume)功能。
原理上,有效OS在被關(guān)閉之前立即執(zhí)行掛起功能。下一個(gè)有效的OS執(zhí)行繼續(xù)功能來繼續(xù)其正常操作。在大多數(shù)現(xiàn)代OS中存在該掛起/繼續(xù)功能,以便計(jì)算機(jī)可以進(jìn)入掛起模式而不消耗任何功率。在特定的預(yù)配置事件中,系統(tǒng)可以快速地再次繼續(xù)其操作,典型地,在小于1秒的時(shí)間段之內(nèi)。
在一個(gè)實(shí)施例中,OS功率掛起功能包括以下操作由用戶或OS/BIOS事件啟動(dòng)系統(tǒng)掛起功能、被掛起的OS內(nèi)核保存并關(guān)閉各種子系統(tǒng)(例如過程、存儲(chǔ)器、定時(shí)器等)、被掛起的OS中的驅(qū)動(dòng)器保存并關(guān)閉硬件設(shè)備、以及OS或BIOS指示CPU和整個(gè)系統(tǒng)進(jìn)入掛起模式。在這種情況下,整個(gè)系統(tǒng)由當(dāng)前運(yùn)行的(有效)OS、所有時(shí)間復(fù)用的硬件資源以及屬于該當(dāng)前有效的OS的任何分割的硬件資源組成。作為OS功率繼續(xù)功能的一個(gè)實(shí)施例,執(zhí)行以下功能繼續(xù)的OS中的驅(qū)動(dòng)器恢復(fù)(restore)硬件、繼續(xù)的OS中的內(nèi)核恢復(fù)并繼續(xù)各種子系統(tǒng)(例如過程、存儲(chǔ)器、定時(shí)器等)的操作、以及整個(gè)系統(tǒng)繼續(xù)正常操作。
在一個(gè)實(shí)施例中,在OS和OS切換器之間分割系統(tǒng)存儲(chǔ)器。除了存儲(chǔ)器和存儲(chǔ)之外,其他所有硬件資源是時(shí)間復(fù)用的。當(dāng)前擁有所有時(shí)間復(fù)用資源(包括CPU)的OS此處被稱為有效OS或當(dāng)前有效OS。
強(qiáng)大的存儲(chǔ)器隔離 為了固定這些安全漏洞,使用特定的硬件能力。為了更強(qiáng)大的存儲(chǔ)器隔離,使用存儲(chǔ)器訪問控制器,該存儲(chǔ)器訪問控制器提供了在傳統(tǒng)模式期間禁用對特定存儲(chǔ)器區(qū)域的訪問的能力。此外,在一個(gè)實(shí)施例中,僅當(dāng)CPU處于切換器模式時(shí)才發(fā)生對存儲(chǔ)器訪問控制器的任何修改。否則,OS可以修改該控制器使其獲得對所有存儲(chǔ)器的訪問。
使用這些能力,OS切換的實(shí)現(xiàn)方式的一個(gè)實(shí)施例如下。當(dāng)系統(tǒng)啟動(dòng)時(shí),CPU處于切換器模式,使其能夠設(shè)置針對任何存儲(chǔ)器區(qū)域的可訪問性。每次CPU控制到達(dá)下一個(gè)有效OS時(shí),不論是第一次引導(dǎo)還是從之前的執(zhí)行繼續(xù),OS切換器設(shè)置該存儲(chǔ)器訪問控制器,使得在傳統(tǒng)模式下只能訪問屬于該下一個(gè)有效OS的存儲(chǔ)器區(qū)域。如果有必要,該OS切換器連續(xù)地監(jiān)控,以確保有效OS不訪問不屬于它的存儲(chǔ)器區(qū)域。
圖1示意了用于執(zhí)行兩個(gè)OS之間的OS切換的OS切換偽代碼的一個(gè)實(shí)施例。參照圖1,OS切換過程開始于OS#1中啟動(dòng)OS切換(1)。OS切換可以由用戶或OS事件啟動(dòng)。響應(yīng)于OS切換的啟動(dòng),OS#1中的內(nèi)核保存并關(guān)閉各種子系統(tǒng)(例如過程、存儲(chǔ)器、定時(shí)器等)(2)。OS#1中的驅(qū)動(dòng)器保存并關(guān)閉硬件設(shè)備(3)。此后,CPU退出OS#1并進(jìn)入OS切換器(4)。
OS切換器識別下一個(gè)OS,即OS#2,并執(zhí)行用于切換的整理(housekeeping)活動(dòng)(例如,記錄日志數(shù)據(jù)用于管理、報(bào)表或調(diào)試目的、額外的保存和存儲(chǔ)等)(5)。OS切換器設(shè)置存儲(chǔ)器訪問控制器,使得在OS#2繼續(xù)之后,只能訪問屬于該下一個(gè)有效OS的存儲(chǔ)器(6)。在一個(gè)實(shí)施例中,在OS#2繼續(xù)之后,OS切換器繼續(xù)監(jiān)控違反(violation)存儲(chǔ)器訪問的情況。
接著,該OS切換器跳轉(zhuǎn)至OS#2中的系統(tǒng)繼續(xù)功能(7)。在執(zhí)行該系統(tǒng)繼續(xù)功能時(shí),OS#2中的驅(qū)動(dòng)器恢復(fù)硬件設(shè)備狀態(tài)(A),OS2中的內(nèi)核恢復(fù)并繼續(xù)各種子系統(tǒng)(例如過程、存儲(chǔ)器、定時(shí)器等)的操作(9)此后,OS#2繼續(xù)正常操作(10)。
在一個(gè)實(shí)施例中,切換器代碼本身也隱藏在傳統(tǒng)模式中。這是很重要的,因?yàn)榉駝t任何OS可以修改該OS切換器代碼以便放松對其自己的訪問限制。
存儲(chǔ)器訪問控制器執(zhí)行存儲(chǔ)器訪問控制。圖8是存儲(chǔ)器訪問控制器的一個(gè)實(shí)施例的框圖。參照圖8,存儲(chǔ)器訪問控制器801包括具有n行的表格802。表格802中的每一行與存儲(chǔ)器中的區(qū)域相對應(yīng)。例如,第一行與存儲(chǔ)器區(qū)域0相對應(yīng),第二行與存儲(chǔ)器區(qū)域1相對應(yīng),第三行與存儲(chǔ)器區(qū)域2相對應(yīng),等等,直到倒數(shù)第二行與存儲(chǔ)器區(qū)域n-2相對應(yīng),最后一行與存儲(chǔ)器區(qū)域n-1相對應(yīng)。所述行包括存儲(chǔ)器區(qū)域的地址,以及指示該存儲(chǔ)器區(qū)域的狀態(tài)的標(biāo)志803。在一個(gè)實(shí)施例中,狀態(tài)0指示了該區(qū)域當(dāng)前是被禁用的(當(dāng)前有效OS不可訪問),而狀態(tài)1指示了該區(qū)域當(dāng)前是被允許的(有效OS可以訪問)。
在一個(gè)存儲(chǔ)器區(qū)域中,例如存儲(chǔ)器區(qū)域0是用于執(zhí)行存儲(chǔ)器控制器操作的存儲(chǔ)器訪問控制代碼810。存儲(chǔ)器訪問控制代碼810在OS切換器代碼811中,并且,在系統(tǒng)上執(zhí)行該代碼時(shí),基于OS切換器代碼811所指示的哪個(gè)OS將要有效以及哪個(gè)將要無效來設(shè)置標(biāo)志803。存儲(chǔ)器訪問控制代碼810也接收存儲(chǔ)器訪問違反信號850,以允許存儲(chǔ)器訪問控制器處理存儲(chǔ)器訪問的違反。
強(qiáng)制控制轉(zhuǎn)移 在一個(gè)實(shí)施例中,為了可靠地切換,要做出確定,確定當(dāng)前有效OS何時(shí)不能合作而允許OS切換發(fā)生。這可以繼續(xù)通過確定當(dāng)前有效OS不執(zhí)行掛起操作或在預(yù)定的時(shí)間段內(nèi)未完成掛起操作來識別。當(dāng)這種情況發(fā)生時(shí),執(zhí)行強(qiáng)制切換來關(guān)閉當(dāng)前有效OS。在一個(gè)實(shí)施例中,當(dāng)OS被強(qiáng)制關(guān)閉時(shí),它再也不能正常繼續(xù)。在這種情況下,如果該OS下一次需要運(yùn)行,則需要新的引導(dǎo)。
在一個(gè)實(shí)施例中,通過特定的外部事件來啟動(dòng)切換,例如但不限于按下切換按鈕或接收到特殊的到達(dá)的包。何時(shí)執(zhí)行強(qiáng)制切換是基于特定的策略。例如,一種策略可能如下在按下切換按鈕后預(yù)定的時(shí)間(例如2秒),如果還沒有發(fā)生切換,則執(zhí)行強(qiáng)制切換。另一種策略可能提供了專用的強(qiáng)制切換按鈕。
在一個(gè)實(shí)施例中,為了實(shí)現(xiàn)不同的策略,使用的不同的硬件支持。在一個(gè)實(shí)施例中,使用切換按鈕和時(shí)間來實(shí)現(xiàn)按下切換按鈕策略之后的2秒的延遲。在這種情況下,OS切換器訪問切換按鈕和定時(shí)器,以確定是否強(qiáng)制執(zhí)行該策略。為了此處的目的,這些硬件資源被稱為用于強(qiáng)制切換的策略實(shí)現(xiàn)硬件。
在一個(gè)實(shí)施例中,為了在OS切換過程中執(zhí)行控制轉(zhuǎn)移,包括了系統(tǒng)中的硬件,使得由策略實(shí)現(xiàn)硬件產(chǎn)生的事件被路由至OS切換器,運(yùn)行在傳統(tǒng)模式下的OS不能改變策略實(shí)現(xiàn)硬件的狀態(tài)及其事件的路由。
在一個(gè)實(shí)施例中,OS切換器在系統(tǒng)啟動(dòng)過程中實(shí)現(xiàn)了強(qiáng)制切換策略,該OS切換器設(shè)置策略實(shí)現(xiàn)硬件的狀態(tài)并將其事件路由至該OS切換器自身。該OS切換器也檢測到OS切換的啟動(dòng),并決定是否應(yīng)執(zhí)行強(qiáng)制OS切換。如果是,則該OS切換器通過外部源獲得CPU控制,將當(dāng)前有效OS標(biāo)記為關(guān)閉,并切換至下一個(gè)OS。
圖2示意了偽代碼,該偽代碼描述了當(dāng)從OS#1切換至OS#2時(shí)發(fā)生強(qiáng)制OS切換的一般場景。參照圖2,該強(qiáng)制OS切換過程開始于OS#1中啟動(dòng)OS切換(1)。OS切換可以由用戶或OS事件啟動(dòng)。在OS#1中啟動(dòng)OS切換之后,OS#1不能完成掛起過程,不能進(jìn)入OS切換器(2)。這發(fā)生之后,發(fā)生強(qiáng)制切換事件,控制回到OS切換器(3)。在一個(gè)實(shí)施例中,該強(qiáng)制切換事件可以是定時(shí)器到期。
響應(yīng)于該強(qiáng)制切換事件,該OS切換器認(rèn)識到發(fā)生了強(qiáng)制OS切換(4)。該OS切換器識別下一個(gè)OS,即OS#2,并執(zhí)行用于切換的整理活動(dòng)(例如將OS#1標(biāo)記為處于關(guān)閉狀態(tài))。該OS切換器跳轉(zhuǎn)至OS#2中的系統(tǒng)繼續(xù)功能(5)。在這個(gè)狀態(tài),OS#2中的驅(qū)動(dòng)器恢復(fù)硬件設(shè)備狀態(tài)(6),OS2中的內(nèi)核恢復(fù)并繼續(xù)各種子系統(tǒng)(例如過程、存儲(chǔ)器、定時(shí)器等)的操作(7)。此后,OS#2繼續(xù)正常操作(8)。
圖3示意了圖2所示的強(qiáng)制OS切換。在圖3中,圖2所示的每個(gè)操作被示為與OS切換器以及兩個(gè)OS,即OS#1和OS#2的交互。
切換策略強(qiáng)制執(zhí)行裝置控制切換策略的強(qiáng)制執(zhí)行。圖9是切換策略強(qiáng)制執(zhí)行裝置的一個(gè)實(shí)施例的框圖。參照圖9,切換策略強(qiáng)制執(zhí)行硬件901-903包括分別包括狀態(tài)911-913。并產(chǎn)生中斷950。雖然只示出了3個(gè)切換策略強(qiáng)制執(zhí)行硬件的框,但是系統(tǒng)可以具有多于或少于3個(gè)這樣的硬件。事件路由控制器904將中斷950路由至切換策略強(qiáng)制執(zhí)行代碼922,在該系統(tǒng)上執(zhí)行切換策略強(qiáng)制執(zhí)行代碼922作為OS切換器921的部分。OS切換器位于存儲(chǔ)器區(qū)域905中,而有效OS916位于存儲(chǔ)器區(qū)域906中,存儲(chǔ)器區(qū)域906不同于存儲(chǔ)器區(qū)域905。
注意,切換策略強(qiáng)制執(zhí)行硬件901-903、事件路由控制器904和OS切換器921是有效OS906不能訪問的對象,或者是有效OS906不能修改其狀態(tài)(即狀態(tài)911-913)的對象。
實(shí)現(xiàn)安全的OS切換 圖4是用于使多個(gè)操作系統(tǒng)能夠在計(jì)算機(jī)上同時(shí)運(yùn)行的過程的實(shí)施例的流程圖。這一過程是由處理邏輯來執(zhí)行的,該處理邏輯可以包括硬件(電路、專用邏輯等)、軟件(如運(yùn)行在通用計(jì)算機(jī)系統(tǒng)或?qū)S脵C(jī)器上的軟件)或其組合。
參照圖4,該過程開始于一個(gè)有效的OS,且處理邏輯響應(yīng)于操作系統(tǒng)切換事件來啟動(dòng)操作系統(tǒng)切換(處理框401)。在一個(gè)實(shí)施例中,該OS切換事件是用戶事件。在一個(gè)實(shí)施例中,響應(yīng)于按下切換按鈕來產(chǎn)生該OS切換事件。在一個(gè)實(shí)施例中,該切換按鈕被映射為具有OS不能改變的狀態(tài)、或者OS不能阻止的一個(gè)或多個(gè)中斷的安全設(shè)備。在另一個(gè)實(shí)施例中,在定時(shí)器達(dá)到預(yù)定的時(shí)間之后產(chǎn)生該切換事件;響應(yīng)于按下切換按鈕來觸發(fā)該定時(shí)器的運(yùn)行。
在一個(gè)實(shí)施例中,響應(yīng)于操作系統(tǒng)切換事件來啟動(dòng)操作系統(tǒng)切換包括確定強(qiáng)制切換事件發(fā)生并執(zhí)行強(qiáng)制控制轉(zhuǎn)移。在一個(gè)實(shí)施例中,在當(dāng)前有效的操作系統(tǒng)不能變?yōu)闊o效以及不能允許一個(gè)操作系統(tǒng)變?yōu)橛行е蟀l(fā)生強(qiáng)制切換事件。
一旦啟動(dòng)了OS切換,處理邏輯識別下一個(gè)有效的OS(處理框402)。
在一個(gè)實(shí)施例中,響應(yīng)于切換事件,與當(dāng)前有效OS相關(guān)聯(lián)的處理邏輯執(zhí)行掛起操作(處理框403)。在一個(gè)實(shí)施例中,當(dāng)前OS通過保存與一個(gè)或更多子系統(tǒng)以及一個(gè)或更多硬件設(shè)備相關(guān)聯(lián)的狀態(tài)來執(zhí)行掛起操作。
在識別下一個(gè)有效的OS之后,一旦該OS變?yōu)橛行?,處理邏輯使存?chǔ)器訪問控制器(例如保護(hù)控制器)能夠獨(dú)占訪問針對該下一個(gè)有效的OS的一部分存儲(chǔ)器(處理框404)。在一個(gè)實(shí)施例中,使存儲(chǔ)器訪問控制器能夠獨(dú)占訪問針對該下一個(gè)有效的OS的一部分存儲(chǔ)器包括將存儲(chǔ)器靜態(tài)分割為第二操作系統(tǒng)可訪問的不安全存儲(chǔ)器以及第二操作系統(tǒng)不可訪問的安全存儲(chǔ)器。在一個(gè)實(shí)施例中,該安全存儲(chǔ)器和不安全存儲(chǔ)器包括芯片上的存儲(chǔ)器的部分。
接下來,處理邏輯使該OS變?yōu)橛行?處理框405)。在一個(gè)實(shí)施例中,使該第二操作系統(tǒng)變?yōu)橛行О▽π碌挠行S執(zhí)行繼續(xù)操作,以使該新的有效OS繼續(xù)操作。在一個(gè)實(shí)施例中,下一個(gè)有效的OS的處理邏輯通過其一個(gè)或更多驅(qū)動(dòng)器恢復(fù)硬件設(shè)備狀態(tài)、其內(nèi)核恢復(fù)并繼續(xù)一個(gè)或更多子系統(tǒng)的操作來執(zhí)行繼續(xù)操作,接著繼續(xù)正常操作。在一個(gè)實(shí)施例中,該過程也包括接收從當(dāng)前有效OS切換至下一個(gè)有效的OS的指示,以及使當(dāng)前OS保存與當(dāng)前有效的操作系統(tǒng)相關(guān)聯(lián)的狀態(tài)。在一個(gè)實(shí)施例中,響應(yīng)于用戶動(dòng)作或操作系統(tǒng)事件來接收該指示。
在下一個(gè)有效的OS變?yōu)橛行е?,處理邏輯監(jiān)控除了變?yōu)橛行У腛S之外的其他OS的違反存儲(chǔ)器訪問的情況(處理框406)。
使用TrustZone來實(shí)現(xiàn)安全的OS切換 TrustZone是對ARMCPU架構(gòu)的擴(kuò)展,可以從英國劍橋的ARMHolding得到。TrustZone將CPU執(zhí)行分為安全模式和不安全模式。它將所有其他硬件資源分類為分割為安全資源或不安全資源。當(dāng)CPU在不安全模式下(通常稱為不安全界(world))執(zhí)行時(shí),它只能訪問不安全硬件資源。當(dāng)CPU在安全模式下(通常成為安全界)執(zhí)行時(shí),它可以訪問安全以及不安全的硬件資源。
此外,TrustZone可以將特定中斷安全地路由至安全環(huán)境中。
在一個(gè)實(shí)施例中,為了實(shí)現(xiàn)安全的OS切換,使用了來自TrustZone的以下特征 ●“NS”比特CPU狀態(tài)寄存器中的新比特,用于指示CPU是否運(yùn)行在不安全模式下(NS=1)。這與現(xiàn)有的特許模式、用戶模式以及幾個(gè)其他異常處理模式不相關(guān)(orthogonal)。
●監(jiān)控模式一種CPU模式,用于在安全執(zhí)行模式和不安全執(zhí)行模式之間切換CPU。可以通過新的指令(SMI)或特定的模式切換異常來進(jìn)入該模式。
●保護(hù)控制器一種可編程控制器,確定在不安全模式下能夠訪問哪些外圍設(shè)備而不能訪問哪些外圍設(shè)備。在一個(gè)實(shí)施例中,將該控制器所控制的全部外圍設(shè)備分為兩類安全的和不安全的。僅當(dāng)CPU處于安全模式下時(shí),才許可對安全設(shè)備的訪問。
●中斷在TrustZone架構(gòu)中有兩種中斷控制器。一個(gè)用于從安全設(shè)備中路由中斷,一種用于從不安全設(shè)備中路由中斷。將該中斷方案與保護(hù)控制器一起使用,可以假定向安全環(huán)境傳送安全設(shè)備事件,不安全界不能改變該事件。
使用TrustZone來實(shí)現(xiàn)安全的OS切換 由于有多種方式來實(shí)現(xiàn)存儲(chǔ)器隔離和強(qiáng)制控制轉(zhuǎn)移,因此有許多方式來使用TrustZone以實(shí)現(xiàn)安全的OS切換。在以下的討論中,描述了多個(gè)用于實(shí)現(xiàn)安全的OS切換的方法。
由于安全的OS切換需要兩種不同的CPU模式,即切換器模式和傳統(tǒng)模式,因此,在一個(gè)實(shí)施例中,將該傳統(tǒng)模式映射為TrustZone中的不安全模式,在該模式下,限制了其存儲(chǔ)器訪問和CPU控制。將該切換器模式映射為TrustZone中的安全模式。在另一個(gè)實(shí)施例中,可以在TrustZone中的新的監(jiān)控模式中實(shí)現(xiàn)該切換器代碼。TrustZone中的監(jiān)控模式能夠過濾中斷并將其分配給安全或不安全環(huán)境。在一個(gè)實(shí)施例中,切換器代碼在監(jiān)控模式中實(shí)現(xiàn),并且在切換器代碼較小時(shí)是一個(gè)有用的選擇。在又另一個(gè)實(shí)施例中,將切換器代碼分為兩部分性能關(guān)鍵部分被放入切換器模式(不安全環(huán)境),而大小大得多的性能非關(guān)鍵部分被放入安全環(huán)境中。
當(dāng)CPU運(yùn)行不安全執(zhí)行模式時(shí),它不能訪問任何是安全設(shè)備的外圍設(shè)備,包括存儲(chǔ)器芯片。當(dāng)保護(hù)控制器控制存儲(chǔ)器芯片時(shí),可以將該存儲(chǔ)器芯片動(dòng)態(tài)地分類為安全設(shè)備或不安全設(shè)備。
例如,假定該系統(tǒng)具有3個(gè)存儲(chǔ)器芯片,這3個(gè)存儲(chǔ)器芯片被靜態(tài)分割,以使兩個(gè)OS每個(gè)使用一個(gè),而第三個(gè)用于OS切換器。TrustZone的保護(hù)控制器控制所有存儲(chǔ)器芯片。在OS切換過程中,在監(jiān)控模式或安全執(zhí)行模式下運(yùn)行的切換器代碼可以修改該保護(hù)控制器,使得只有屬于下一個(gè)有效OS的存儲(chǔ)器芯片是不安全存儲(chǔ)器設(shè)備,而將其他兩個(gè)存儲(chǔ)器芯片標(biāo)記為安全設(shè)備。當(dāng)繼續(xù)下一個(gè)有效OS時(shí),它只能訪問被標(biāo)記為不安全設(shè)備的存儲(chǔ)器芯片,而不能訪問被標(biāo)記為安全設(shè)備的其他兩個(gè)存儲(chǔ)器芯片。在一個(gè)實(shí)施例中,該保護(hù)控制器通過在寄存器中存儲(chǔ)比特來執(zhí)行這一操作,尋址硬件在運(yùn)行時(shí)將檢查該寄存器中的比特。
在一個(gè)實(shí)施例中,使用TrustZone知道的存儲(chǔ)器控制器(即使用TrustZone的保護(hù)控制器用于存儲(chǔ)器保護(hù)的存儲(chǔ)器控制器),可以將相同存儲(chǔ)器芯片的部分動(dòng)態(tài)地配置為安全的或不安全的。其基本操作類似于上述的場景,除了多個(gè)OS共享存儲(chǔ)器的部分以及TrustZone知道的存儲(chǔ)器控制器控制這些存儲(chǔ)器部分的安全屬性之外。在一個(gè)實(shí)施例中,TrustZone使用比特樣式(pattern)來指定特定的存儲(chǔ)器地址應(yīng)是安全的。
在一個(gè)實(shí)施例中,使用TrustZone中的安全中斷路由特征來實(shí)現(xiàn)強(qiáng)制OS切換。不同的強(qiáng)制OS切換策略需要不同的實(shí)現(xiàn)方式。
在一個(gè)實(shí)施例中,系統(tǒng)中包括了分離的強(qiáng)制OS切換按鈕。這樣的系統(tǒng)可以包括常規(guī)OS切換按鈕。當(dāng)用戶按下該常規(guī)OS切換按鈕,并且如果有效OS不能響應(yīng),則用戶按下該強(qiáng)制OS切換按鈕來啟動(dòng)強(qiáng)制OS切換。在這種情況下,該強(qiáng)制OS切換按鈕被映射為安全設(shè)備,使得OS不能改變其狀態(tài)或阻止其中斷。此外,通過安全中斷控制器來路由其中斷,并將其發(fā)送至OS切換器所運(yùn)行的安全環(huán)境。給定了這樣的配置,當(dāng)按下強(qiáng)制切換按鈕時(shí),保證發(fā)生切換器代碼內(nèi)對CPU的控制。該切換器可以接著繼續(xù)系統(tǒng)中的下一個(gè)有效OS。
在一個(gè)實(shí)施例中,也實(shí)現(xiàn)了復(fù)雜的強(qiáng)制OS切換策略。例如,可以使用新的策略,在按下切換按鈕2秒后,如果當(dāng)前有效OS不能主動(dòng)地進(jìn)入OS切換器,則該新策略啟動(dòng)強(qiáng)制OS切換。在這種情況下,OS切換按鈕被映射為安全設(shè)備并需要安全定時(shí)器。當(dāng)按下切換按鈕時(shí),切換器代碼開啟2秒定時(shí)器,并將該事件轉(zhuǎn)發(fā)至當(dāng)前OS。如果當(dāng)前有效OS在2秒內(nèi)進(jìn)入OS切換器,則取消該定時(shí)器,按正常繼續(xù)OS切換。如果當(dāng)前有效OS不能這樣做,則2秒定時(shí)器到期,CPU控制回到切換器代碼,該切換器代碼接著決定執(zhí)行強(qiáng)制OS切換。
圖5示意了用于執(zhí)行具有2秒延遲策略的強(qiáng)制OS切換的偽代碼。在這一特定情況下,在初始按下切換按鈕之后,OS#1在2秒內(nèi)不能進(jìn)入OS切換器。由此,定時(shí)器到期,OS切換器執(zhí)行向OS#2的強(qiáng)制切換。
參照圖5,偽代碼開始于包括多個(gè)操作的啟動(dòng)過程。首先,將切換按鈕和一個(gè)專用定時(shí)器標(biāo)記為安全設(shè)備(1)。接下來,將該切換按鈕和該專用定時(shí)器的中斷路由至該OS切換器(2)。此后,針對該強(qiáng)制切換場景設(shè)置了圖5的其余部分。
在圖5中的強(qiáng)制切換場景中,用戶按下切換按鈕來啟動(dòng)OS切換(1)。接下來,將由切換按鈕產(chǎn)生的中斷路由至OS切換器,該OS切換器設(shè)置2秒定時(shí)器(2)。接下來,該OS切換器接著將該中斷轉(zhuǎn)發(fā)至OS#1,OS#1是當(dāng)前有效OS(3)。注意,在(3)中,該OS切換器有許多方式來向有效OS轉(zhuǎn)發(fā)該中斷。在一個(gè)實(shí)施例中,該OS切換器通過該OS切換器與當(dāng)前有效OS之間的特殊的功能調(diào)用接口來轉(zhuǎn)發(fā)該中斷。在另一個(gè)實(shí)施例中,該切換器設(shè)置硬件狀態(tài),使得當(dāng)該OS切換器將CPU控制交回當(dāng)前有效OS時(shí),發(fā)生另一個(gè)中斷,而這個(gè)中斷被路由至有效OS,而不是路由至該OS切換器。
在該OS向當(dāng)前有效OS(OS#1)轉(zhuǎn)發(fā)該中斷之后,OS#1不能在2秒內(nèi)完成掛起過程(4)。接著該定時(shí)器到期,接著將該中斷路由至該OS切換器(5)。此時(shí),該OS切換器意識到這是一個(gè)強(qiáng)制OS切換的情形、標(biāo)識下一個(gè)有效OS(OS#2)并執(zhí)行用于切換的整理活動(dòng)(例如將OS#1標(biāo)記為處于關(guān)閉狀態(tài))(6)。
此后,該OS切換器跳轉(zhuǎn)至OS#2中的系統(tǒng)繼續(xù)功能(7),OS#2中的驅(qū)動(dòng)器恢復(fù)硬件狀態(tài)(8),OS 2中的內(nèi)核恢復(fù)并繼續(xù)各種子系統(tǒng)(例如過程、存儲(chǔ)器、定時(shí)器等)的操作(9)。接著,OS#2繼續(xù)正常操作 (10)。
圖6示意了圖5中描述的強(qiáng)制OS切換的場景。如圖所示,OS#1和OS#2被示為與OS切換器交互。在圖6中,在圓括號中示出了結(jié)合圖5所描述的每個(gè)操作,以實(shí)現(xiàn)具有2秒延遲策略以及TrustZone實(shí)現(xiàn)方式的強(qiáng)制OS切換。
使用Intel的VT-x來實(shí)現(xiàn)安全的OS切換 可以使用Intel的VT(虛擬化技術(shù))來實(shí)現(xiàn)安全的OS切換,即針對Intel IA-32的VT的指定版本被稱為VT-x。一般地,使用合適的虛擬機(jī)監(jiān)控(VMM)的實(shí)現(xiàn)方式,可以運(yùn)行與傳統(tǒng)的IA-32兼容的OS而無需任何修改。用于安全的OS切換的VT-x的一些特征如下 ●VMM根(root)和非根(non-root)操作在保持所有傳統(tǒng)特征的同時(shí),具有VT-x功能的CPU具有兩種不同的操作模式,被稱為根操作和非根操作。一般地,VMM運(yùn)行在根操作模式下,而訪客OS運(yùn)行在非根操作下。加入了各種指令以便于操作模式的轉(zhuǎn)移。此外,定義了許多配置條件,以自動(dòng)從非根操作轉(zhuǎn)移至根操作模式。
●異常位圖在一個(gè)實(shí)施例中,32比特的字段指示了訪客OS中導(dǎo)致被陷于根操作(即VMM)中的異常的種類。
●IO位圖地址8KB大小的存儲(chǔ)器區(qū)域,其每個(gè)比特與IO空間中的32字節(jié)區(qū)域相對應(yīng)。如果對應(yīng)比特被設(shè)為1而“激活I(lǐng)P圖”比特也是1,則訪問該32字節(jié)IO區(qū)域?qū)?dǎo)致該訪客OS被陷于VMM中。
●存儲(chǔ)器管理為了確保訪客OS不能訪問不屬于它的存儲(chǔ)器,VT-x引入了一系列特征來完成這一目標(biāo)。例如,CR3是保存頁面表的根的物理地址的寄存器。訪客OS改變CR3的任何嘗試將導(dǎo)致被陷于VMM。從那里,該VMM可以向該訪客OS提供影象(shadow)頁面表,VMM始終跟蹤并檢查對該影象頁面表的操作。
有許多可能的方法來在使用VT-x的OS切換中實(shí)現(xiàn)多個(gè)OS間的強(qiáng)大的安全性和隔離。在一個(gè)實(shí)施例中,將傳統(tǒng)模式映射為VT-x中的非根操作模式,而在根操作模式(特別是在環(huán)0)中實(shí)現(xiàn)切換器代碼。為了確保在傳統(tǒng)模式下OS的繼續(xù)運(yùn)行,在OS切換器中實(shí)現(xiàn)了特定的仿真,包括針對CPUID、MOV等的指令仿真。
對于基于分頁的操作系統(tǒng),為了防止對不屬于該OS的任何存儲(chǔ)器的訪問,使用影像頁面表機(jī)制。
當(dāng)OS首次通過設(shè)置CR3來設(shè)立頁面表或修改頁面表?xiàng)l目時(shí),它將被陷于根操作模式下,在該模式下,該OS切換器可以制作該頁面表的拷貝,該拷貝被稱為影象頁面表。驗(yàn)證所有的表?xiàng)l目以確保沒有頁面表?xiàng)l目映射到不屬于該OS的物理頁面。同樣,如果頁面表中包括這樣的頁面表,則在影象頁面表中,將該頁面表?xiàng)l目修改為只讀。在返回該OS之前,使用該影象頁面表來設(shè)置CR3。隨后,當(dāng)該OS試圖修改任何表?xiàng)l目時(shí),由于該頁面表區(qū)域被映射為只讀,因此將發(fā)生被陷于該OS切換器。該OS切換器可以確認(rèn)該修改有效,并向原始頁面表和影象頁面表傳播該改變。接著,OS切換器照常繼續(xù)執(zhí)行。通過這樣的對頁面表?xiàng)l目的持續(xù)的檢查和有效確認(rèn),該OS切換器確保了任何OS不能訪問不屬于該OS的存儲(chǔ)器區(qū)域。
如上所述,強(qiáng)制控制轉(zhuǎn)移的關(guān)鍵是識別策略實(shí)現(xiàn)硬件。一旦識別,執(zhí)行操作以確保OS不能修改策略實(shí)現(xiàn)硬件,并確保向OS切換器安全地傳送其中斷。
在IA-32系統(tǒng)上,OS可以通過IO指令或映射到存儲(chǔ)器的IO操作來訪問設(shè)備。如果通過IO指令來訪問策略實(shí)現(xiàn)設(shè)備,則該OS切換器設(shè)置IO位圖地址,使得訪客OS不能讀取或?qū)懭隝O空間中的對應(yīng)區(qū)域。如果通過存儲(chǔ)器映射來訪問設(shè)備,則與上述對存儲(chǔ)器隔離的討論類似,OS切換器進(jìn)行檢查,以確保策略實(shí)現(xiàn)設(shè)備不被映射到任何OS,使得這些OS不能訪問這些設(shè)備。
通過將所有中斷路由至OS切換器,將該策略實(shí)現(xiàn)設(shè)備的中斷安全地傳送至該OS切換器。對于該OS切換器不關(guān)心的中斷,該OS切換器將其轉(zhuǎn)發(fā)至當(dāng)前有效OS。否則,該OS切換器正確地處理該中斷。
為了確保中斷傳送和設(shè)備訪問的安全,也可以使用與保護(hù)該策略實(shí)現(xiàn)設(shè)備相同的方案來保護(hù)位于CPU和策略實(shí)現(xiàn)設(shè)備之間的任何中間設(shè)備不被訪客OS訪問。
安全的獨(dú)占分割 在一個(gè)OS切換實(shí)施例中,所有硬件資源都被暴露給有效OS。一些是時(shí)間復(fù)用的硬件資源,而一些是分割后的硬件資源。部分分割(如存儲(chǔ)器劃分和獨(dú)占分割)需要來自O(shè)S的合作。使用如TrustZone和VT-x之類的新的硬件能力,這樣的分割成為可能。同樣可行的是其他硬件資源,如以太網(wǎng)控制器的強(qiáng)制分割。例如,如果以太網(wǎng)控制器獨(dú)占地屬于一個(gè)OS,則可以使用TrustZone中的保護(hù)控制器,或者使用VT-x的頁面條目有效確認(rèn)來控制對該以太網(wǎng)控制器的訪問,使得只有該所有者OS可以訪問它。
計(jì)算機(jī)系統(tǒng)的示例 圖7是示例性計(jì)算機(jī)系統(tǒng)的框圖,該示例性計(jì)算機(jī)系統(tǒng)可以執(zhí)行此處描述的一個(gè)或更多操作。參照圖7,計(jì)算機(jī)系統(tǒng)700可以包括示例性客戶端或服務(wù)器計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)700包括用于通信信息的通信機(jī)制或總線711,以及與總線711連接的、用于處理信息的處理器712。處理器712包括微處理器,但不限于微處理器,例如PentiumTM、PowerPCTM、AlphaTM等。
系統(tǒng)700還包括與總線711連接的、用于存儲(chǔ)處理器712要執(zhí)行的信息和指令的隨機(jī)訪問存儲(chǔ)器(RAM),或者其他動(dòng)態(tài)存儲(chǔ)設(shè)備704(被稱為主存儲(chǔ)器)。主存儲(chǔ)器704也可以用于存儲(chǔ)處理器712執(zhí)行指令期間的臨時(shí)變量或其他中間信息。
計(jì)算機(jī)系統(tǒng)700也包括與總線711連接的、用于存儲(chǔ)針對處理器712的信息和指令的只讀存儲(chǔ)器(ROM)和/或其他靜態(tài)存儲(chǔ)設(shè)備706,以及數(shù)據(jù)存儲(chǔ)設(shè)備707,如磁盤或光盤及其對應(yīng)盤片驅(qū)動(dòng)器。數(shù)據(jù)存儲(chǔ)設(shè)備707與總線711連接,用于存儲(chǔ)信息和指令。
計(jì)算機(jī)系統(tǒng)700可以進(jìn)一步與顯示設(shè)備721連接,如陰極射線管(CRT)或液晶顯示器(LCD),該顯示設(shè)備721與總線711連接,用于向計(jì)算機(jī)用戶顯示信息。包括字母數(shù)字和其他鍵的字母數(shù)字輸入設(shè)備722也可以與總線711連接,用于與處理器712通信信息和命令選擇。附加用戶輸入設(shè)備是光標(biāo)控制723,如鼠標(biāo)、跟蹤球、跟蹤板、觸針或光標(biāo)方向鍵,該光標(biāo)控制723與總線711連接,用于與處理器712通信方向信息和命令選擇,并用于控制顯示器721上的光標(biāo)運(yùn)動(dòng)。
另一種可以與總線711連接的設(shè)備是硬拷貝設(shè)備724,該設(shè)備可以用于在如紙張、膠片的介質(zhì)或類似種類媒質(zhì)上標(biāo)記信息。另一種可以與總線711連接的設(shè)備是有線/無線通信能力725,用于與電話或手持掌上設(shè)備通信。
注意,本發(fā)明中可以使用系統(tǒng)700的任何或全部組件及相關(guān)聯(lián)的硬件。然而,可以認(rèn)識到,該計(jì)算機(jī)系統(tǒng)的其他配置可以包括一些或全部這些設(shè)備。
在閱讀了以上的描述之后,毫無疑問,對于本領(lǐng)域普通技術(shù)人員而言,本發(fā)明的許多變換或修改是顯而易見的,但是,應(yīng)理解,以示意方式示出和描述的任何具體實(shí)施例不應(yīng)被認(rèn)為是限制。因此,對各個(gè)實(shí)施例的細(xì)節(jié)的引用不應(yīng)限制權(quán)利要求的范圍,權(quán)利要求自身僅引用了被認(rèn)為是本發(fā)明的本質(zhì)的那些特征。
權(quán)利要求
1.一種用于使多個(gè)操作系統(tǒng)能夠在計(jì)算機(jī)上同時(shí)運(yùn)行的方法,其中,所述多個(gè)操作系統(tǒng)中的第一操作系統(tǒng)是當(dāng)前有效的,所述方法包括
識別多個(gè)操作系統(tǒng)中下一個(gè)有效的第二操作系統(tǒng);
一旦所述第二操作系統(tǒng)變?yōu)橛行?,使存?chǔ)器訪問控制器能夠獨(dú)占訪問針對所述第二操作系統(tǒng)的存儲(chǔ)器的一部分;以及
使所述第二操作系統(tǒng)變?yōu)橛行А?br> 2.一種制造品,具有一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),在所述一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有指令,當(dāng)系統(tǒng)執(zhí)行所述指令時(shí),所述指令使所述系統(tǒng)執(zhí)行用于使多個(gè)操作系統(tǒng)能夠在計(jì)算機(jī)上同時(shí)運(yùn)行的方法,其中,所述多個(gè)操作系統(tǒng)中的第一操作系統(tǒng)是當(dāng)前有效的,所述方法包括
識別多個(gè)操作系統(tǒng)中下一個(gè)有效的第二操作系統(tǒng);
一旦所述第二操作系統(tǒng)變?yōu)橛行В勾鎯?chǔ)器訪問控制器能夠獨(dú)占訪問針對所述第二操作系統(tǒng)的存儲(chǔ)器的一部分;以及
使所述第二操作系統(tǒng)變?yōu)橛行А?br> 3.一種系統(tǒng),包括
CPU;
存儲(chǔ)器,用于存儲(chǔ)操作系統(tǒng)切換器,所述操作系統(tǒng)切換器具有存儲(chǔ)器訪問控制器模塊,所述存儲(chǔ)器訪問控制器模塊啟用和禁用所述多個(gè)操作系統(tǒng)對多個(gè)區(qū)域的訪問,其中,當(dāng)所述切換器使當(dāng)前有效的操作系統(tǒng)變?yōu)闊o效,并使一個(gè)操作系統(tǒng)變?yōu)橛行r(shí),在切換模式期間,所述存儲(chǔ)器訪問控制器禁用對針對除所述一個(gè)操作系統(tǒng)之外的操作系統(tǒng)的多個(gè)存儲(chǔ)器區(qū)域的訪問。
4.一種方法,包括
使用n OS切換器來執(zhí)行安全的操作系統(tǒng)切換,所述OS切換器維持OS之間的安全隔離,以防止一個(gè)OS讀取另一個(gè)OS的存儲(chǔ)器,并防止一個(gè)OS使另一個(gè)OS或系統(tǒng)崩潰。
全文摘要
此處公開了用于安全的操作系統(tǒng)切換的方法和裝置。在一個(gè)實(shí)施例中,所述方法包括識別多個(gè)操作系統(tǒng)中下一個(gè)有效的第二操作系統(tǒng);一旦所述第二操作系統(tǒng)變?yōu)橛行В勾鎯?chǔ)器訪問控制器能夠獨(dú)占訪問針對所述第二操作系統(tǒng)的存儲(chǔ)器的一部分;以及使所述第二操作系統(tǒng)變?yōu)橛行А?br> 文檔編號G06F9/50GK101401069SQ200780009133
公開日2009年4月1日 申請日期2007年3月16日 優(yōu)先權(quán)日2006年3月16日
發(fā)明者軍 孫, 棟 周 申請人:株式會(huì)社Ntt都科摩
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
铅山县| 牡丹江市| 太保市| 洛阳市| 连城县| 德钦县| 施甸县| 南岸区| 修水县| 循化| 仁寿县| 盐山县| 九寨沟县| 建阳市| 五台县| 花莲市| 资阳市| 新营市| 嘉鱼县| 文成县| 榆林市| 磐安县| 绥德县| 类乌齐县| 米林县| 天等县| 东兴市| 绥芬河市| 华安县| 云林县| 盐边县| 曲阜市| 三门峡市| 驻马店市| 东乌珠穆沁旗| 琼海市| 濮阳市| 长岭县| 墨江| 西畴县| 德格县|