本發(fā)明涉及虛擬化
技術(shù)領(lǐng)域:
,特別涉及虛擬機切換方法、裝置、電子設(shè)備和計算機程序產(chǎn)品。
背景技術(shù):
:基于虛擬化技術(shù)多個操作系統(tǒng)或者虛擬機可以同時運行在電子設(shè)備上,多個操作系統(tǒng)或者虛擬機共享硬件設(shè)備提供的處理器、內(nèi)存和輸入輸出設(shè)備。虛擬化系統(tǒng)架構(gòu)中處于底層的是硬件系統(tǒng),主要包括處理器、內(nèi)存和輸入輸出設(shè)備等。在硬件系統(tǒng)之上為安全獨立的軟件運行環(huán)境虛擬化層,在虛擬化層運行虛擬機監(jiān)控器(縮寫為vmm或稱為hypervisor)以管理真實的物理硬件平臺,并為每個客戶機(guest)提供對應(yīng)的虛擬硬件平臺。hypervisor通過宿主機(host)實現(xiàn)前述職能。圖1為現(xiàn)有技術(shù)中虛擬化系統(tǒng)示意圖,系統(tǒng)具有1個宿主機(host),其內(nèi)核層之上運行著宿主機的操作系統(tǒng)(hostos),并運行了一些應(yīng)用。系統(tǒng)還具有3個客戶機(guest),每個客戶機可看作一個小的但是完整的計算機系統(tǒng),宿主機為每個客戶機模擬了虛擬的系統(tǒng)硬件,包括客戶機的處理器、內(nèi)存和輸入輸出設(shè)備,在各客戶機的內(nèi)核(kernel)層之上運行著客戶機自己的操作系統(tǒng),即客戶機操作系統(tǒng)(guestos)。用戶可在各虛擬機間切換,以實現(xiàn)隔離的使用各虛擬機上的不同應(yīng)用程序。各虛擬機的操作系統(tǒng)之間以及各虛擬機的操作系統(tǒng)與宿主機的操作系統(tǒng)之間相互隔離,互相不能訪問內(nèi)存空間。雖然現(xiàn)有的虛擬化系統(tǒng)能夠通過虛擬化技術(shù)實現(xiàn)單一終端上多個虛擬機的隔離,避免多個虛擬機各自的操作系統(tǒng)運行的進程對其他虛擬機的操作系統(tǒng)產(chǎn)生不利影響,但是因為用戶可通過切換虛擬機進入不同虛擬機的操作系統(tǒng),所以各虛擬機間的隔離性仍然較低。技術(shù)實現(xiàn)要素:本發(fā)明實施例提出了虛擬機切換方法、裝置、電子設(shè)備和計算機程序產(chǎn)品,能夠提升虛擬化系統(tǒng)中各虛擬機間的隔離性。在一個方面,本發(fā)明實施例提供了一種虛擬機切換方法,其特征在于,所述方法包括:接收切換請求,所述切換請求包括發(fā)起所述切換請求的源虛擬機的信息;根據(jù)所述源虛擬機的信息判斷所述切換請求合法;將所屬的虛擬機由非前臺運行狀態(tài)切換為前臺運行狀態(tài)。在另一個方面,本發(fā)明實施例提供了一種虛擬機切換裝置,其特征在于,所述裝置包括:接收模塊,用于接收切換請求,所述切換請求包括發(fā)起所述切換請求的源虛擬機的信息;判斷模塊,用于根據(jù)所述源虛擬機的信息判斷所述切換請求合法;切換模塊,用于將所屬的虛擬機由非前臺運行狀態(tài)切換為前臺運行狀態(tài)。在另一個方面,本發(fā)明實施例提供了一種電子設(shè)備,其特征在于,所述電子設(shè)備包括:顯示器,存儲器,一個或多個處理器;以及一個或多個模塊,所述一個或多個模塊被存儲在所述存儲器中,并被配置成由所述一個或多個處理器執(zhí)行,所述一個或多個模塊包括用于執(zhí)行任一上述方法中各個步驟的指令。在另一個方面,本發(fā)明實施例提供了一種與包括顯示器的電子設(shè)備結(jié)合使用的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括計算機可讀的存儲介質(zhì)和內(nèi)嵌于其中的計算機程序機制,所述計算機程序機制包括用于執(zhí)行任一上述方法中各個步驟的指令。本發(fā)明的有益效果如下:本發(fā)明中,在由源虛擬機向切換進程所屬的虛擬機發(fā)起切換時,切換進程需要先確定是否允許由源虛擬機切換至切換進程所屬的虛擬機,只有在所述切換來源合法時,才將切換進程所屬的虛擬機切換為前臺運行。本發(fā)明通過在切換虛擬機前判斷切換請求是否合法,以對虛擬機間的切換進行限制,進一步隔離了用戶對各虛擬機的訪問,更加安全。附圖說明下面將參照附圖描述本發(fā)明的具體實施例,其中:圖1示出了虛擬化系統(tǒng)架構(gòu)示意圖;圖2示出了本發(fā)明實施例一中虛擬機切換方法的流程示意圖;圖3示出了本發(fā)明實施例二中客戶機實現(xiàn)虛擬中斷的架構(gòu)示意圖;圖4示出了本發(fā)明實施例三中虛擬機切換裝置的結(jié)構(gòu)示意圖。具體實施方式為了使本發(fā)明的技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖對本發(fā)明的示例性實施例進行進一步詳細的說明,顯然,所描述的實施例僅是本發(fā)明的一部分實施例,而不是所有實施例的窮舉。并且在不沖突的情況下,本說明中的實施例及實施例中的特征可以互相結(jié)合。發(fā)明人在發(fā)明過程中注意到:用戶可通過切換虛擬機進入不同虛擬機的操作系統(tǒng),各虛擬機間的隔離性仍然較低。針對上述不足,本發(fā)明提供了一種虛擬機切換方法,在由源虛擬機向切換進程所屬的虛擬機發(fā)起切換時,切換進程需要先確定是否允許由源虛擬機切換至切換進程所屬的虛擬機,只有在所述切換來源合法時,才將切換進程所屬的虛擬機切換為前臺運行。本發(fā)明通過在切換虛擬機前判斷切換請求是否合法,以對虛擬機間的切換進行限制,進一步隔離了用戶對各虛擬機的訪問,更加安全。為了便于本發(fā)明的實施,下面以實例進行說明。實施例一:圖1示出了本發(fā)明實施例一中虛擬機切換方法流程示意圖,如圖1所示,所述虛擬機切換方法包括:步驟101,接收切換請求,所述切換請求包括發(fā)起所述切換請求的源虛擬機的信息;步驟102,根據(jù)所述源虛擬機的信息判斷所述切換請求合法;步驟103,將所屬的虛擬機由非前臺運行狀態(tài)切換為前臺運行狀態(tài)。在步驟101中,虛擬化系統(tǒng)中的各虛擬機運行了各自的切換進程,或者在虛擬化層中對應(yīng)的運行了虛擬化系統(tǒng)中各虛擬機的切換進程,各切換進程可在接收到指向其所屬虛擬機的切換請求時對其所屬虛擬機進行切換操作。切換請求中包含源虛擬機的信息,即發(fā)起切換的客戶機或者宿主機的信息。切換進程所屬的虛擬機接收切換請求后,可獲得其中的源虛擬機的信息。切換進程所屬的虛擬機當前處于非前臺運行狀態(tài),所述非前臺運行狀態(tài)即為后臺運行狀態(tài)或者休眠狀態(tài)。其中后臺運行狀態(tài)是指虛擬機正在運行,但是其人機交互的相關(guān)服務(wù)程序被關(guān)閉了,因此其人機交互界面對用戶不可見,即后臺運行的虛擬機可以調(diào)用網(wǎng)絡(luò)通信等模塊,但是已經(jīng)不能調(diào)用涉及用戶交互的輸入輸出模塊,例如鍵盤或者顯示屏;其中休眠狀態(tài)是指虛擬機處于未運行狀態(tài),其上操作系統(tǒng)為關(guān)閉狀態(tài),因此處于休眠狀態(tài)的虛擬機同樣不能調(diào)用涉及用戶交互的輸入輸出模塊。在某些場景下,用戶可能會希望切換進程所屬的虛擬機變?yōu)榍芭_運行狀態(tài),例如希望運行切換進程所屬的虛擬機操作系統(tǒng)下的某些程序,或者希望啟動切換進程所屬的虛擬機操作系統(tǒng)進一步操作,或者當關(guān)閉當前運行的其他虛擬機后,希望將后臺運行的切換進程所屬的虛擬機變?yōu)榍芭_運行等。在這些場景下,切換請求指向的虛擬機對應(yīng)的切換進程會接收到切換請求。當切換進程所屬的虛擬機為某一客戶機時,所述切換請求可以是來自宿主機的,也可以是來自宿主機上運行的另一客戶機的,當所述切換請求來自另一客戶機時,可以由虛擬化層協(xié)助轉(zhuǎn)發(fā)所述切換請求;切換進程所屬的虛擬機也可以為宿主機,此時切換請求來自宿主機上運行的某一客戶機。優(yōu)選的,所述所屬的虛擬機為宿主機,所述非前臺運行狀態(tài)是指內(nèi)核層處于后臺運行狀態(tài),操作系統(tǒng)處于休眠狀態(tài)。此種場景下,當前某一客戶機為前臺運行狀態(tài),宿主機處于后臺運行狀態(tài),即所述宿主機的內(nèi)核(kernel)層處于激活狀態(tài),用于支持客戶機對硬件設(shè)備的調(diào)用,但是其操作系統(tǒng)處于休眠狀態(tài)。具體可通過linux系統(tǒng)提供的wakelock機制實現(xiàn),由當前前臺運行的客戶機申請一個wakelock鎖,該鎖的類型設(shè)置為wake_lock_suspend,其功能為阻止整個宿主機的系統(tǒng)進入休眠狀態(tài)。后臺運行的宿主機在沒有系統(tǒng)輸入超過預(yù)定時間之后,操作系統(tǒng)會因為沒用輸入而進入休眠狀態(tài),但內(nèi)核層受客戶機wakelock的限制將仍處于激活狀態(tài)(當由客戶機切換回宿主機的時候,客戶機將釋放這個wake_lock鎖)。區(qū)別于現(xiàn)有技術(shù)中宿主機后臺運行時操作系統(tǒng)仍處于激活狀態(tài)的方案,本實施例中宿主機的內(nèi)核層處于后臺運行狀態(tài),所述宿主機的操作系統(tǒng)處于休眠狀態(tài),更加省電。當然,當前臺運行的虛擬機因無操作而進入了休眠狀態(tài),客戶機也會釋放該wake_lock鎖,以達到允許整個系統(tǒng)(宿主機的內(nèi)核層和操作系統(tǒng),以及客戶機的內(nèi)核層和操作系統(tǒng))進入休眠狀態(tài)從而節(jié)電的目的。步驟102為切換進程對切換請求來源的合法性進行判斷的步驟,在步驟102中切換進程可以根據(jù)以下方式中的任一種或者幾種的組合判斷所述切換合法:1)切換進程所屬的虛擬機存儲有合法源虛擬機白名單,即僅當當前切換請求中的源虛擬機信息在所述合法源虛擬機白名單中時,判斷所述切換合法;2)切換進程所屬的虛擬機存儲有非法源虛擬機黑名單,即僅當當前切換請求中的源虛擬機信息不在所述非法源虛擬機黑名單中時,判斷所述切換合法;3)切換進程所屬的虛擬機存儲各虛擬機的安全等級,并可定期更新,僅當當前切換請求中的源虛擬機的安全等級高于預(yù)設(shè)等級時,判斷所述切換合法;4)切換進程所屬的虛擬機存儲各虛擬機的安全等級,并可定期更新,僅當當前切換請求中的源虛擬機的安全等級不低于切換進程所屬的虛擬機自身安全等級時,判斷所述切換合法。當然切換進程還可以有其他判斷策略,根據(jù)切換請求中的源虛擬機的信息判斷切換是否合法。切換進程所屬的虛擬機可能是對安全性能要求較高或者涉及用戶隱私的虛擬機,本發(fā)明在將其切換至前臺運行狀態(tài)前,能夠由切換進程根據(jù)切換來源對切換進行限制。在步驟103中,若經(jīng)前述步驟確定允許切換,則將所述切換進程所屬的虛擬機切換為前臺運行狀態(tài),即運行如人機交互服務(wù)程序等的相關(guān)程序,使切換進程所屬的虛擬機能夠調(diào)用涉及用戶交互的輸入輸出的各種模塊,包括鍵盤或者顯示屏等,使其人機交互界面對用戶可見,并且用戶可操作。若根據(jù)前述步驟判斷不允許切換進程所屬的虛擬機切換時,可以丟棄所述切換請求,或者僅存儲所述切換請求但不執(zhí)行切換的操作。優(yōu)選的,在步驟103之前還包括,從云端服務(wù)器獲取所屬的虛擬機的切換使能標識,所述切換使能標識用于確定當前是否允許切換;根據(jù)獲取到的切換使能標識判斷當前允許切換。云端服務(wù)器存儲了某一終端中各虛擬機對應(yīng)的切換使能標識,用于表征是否允許切換進程所屬的虛擬機實現(xiàn)切換。所述切換使能標識可以是在接收到切換請求前即周期性從云端服務(wù)器獲取并存儲在終端對應(yīng)的虛擬機中的,也可以是在接收到切換請求時與云端服務(wù)器通信實時獲取的。當切換進程所屬的虛擬機為宿主機時,云端服務(wù)器與切換進程所屬的虛擬機可通信,使切換進程所屬的虛擬機獲取切換使能標識;當切換進程所屬的虛擬機為某一客戶機時,云端服務(wù)器可與切換進程所屬的虛擬機或者宿主機通信,使切換進程所屬的虛擬機直接獲取切換使能標識,或者通過宿主機的轉(zhuǎn)發(fā)獲取切換使能標識。因為能夠由云端服務(wù)器獲取切換使能標識,所以切換進程對其所屬的虛擬機的切換控制將更加靈活。例如用戶的設(shè)備丟失后,可通過云端服務(wù)器更改切換進程所屬的虛擬機的切換使能標識,使其切換不使能,但不妨礙其他虛擬機的使用,拾到設(shè)備的人既無法窺探切換進程所屬的虛擬機中的內(nèi)容,又可以利用手機的正常功能找回失主。所述云端服務(wù)器可以為云端機器人,所述云端機器人是將認知系統(tǒng)放在云里,身體、驅(qū)動、傳感器放在機器人本體上,通過移動通信將二者連接起來的智能機器人,云端機器人是智能仿人機器人發(fā)展的方向。優(yōu)選的,在步驟103之前,還包括:根據(jù)虛擬化系統(tǒng)安全狀態(tài)和/或者預(yù)設(shè)允許切換時間段判斷當前允許切換?,F(xiàn)有的虛擬化系統(tǒng)中通常具有安全監(jiān)測機制,各客戶機可對自身和/或宿主機是否被篡改進行監(jiān)測,宿主機也可對自身和/或各客戶機是否被篡改進行監(jiān)測,通過客戶機和/或宿主機是否被篡改可確定虛擬化系統(tǒng)當前的安全狀態(tài)。當切換進程所屬的虛擬機為客戶機時,切換進程所屬的虛擬機監(jiān)測自身是否被篡改和/或切換進程所屬的虛擬機監(jiān)測宿主機是否被篡改,若存在篡改情況切換進程將判斷當前虛擬化系統(tǒng)存在安全風險,不允許切換;或者宿主機監(jiān)測自身是否被篡改和/或其上運行的某個客戶機是否被篡改,若存在篡改情況,則認定當前虛擬化系統(tǒng)存在安全風險,切換進程通過與宿主機通信獲知當前虛擬化系統(tǒng)存在安全風險則不允許切換。當切換進程所屬的虛擬機為宿主機時,宿主機監(jiān)測自身是否被篡改和/或其上運行的某個客戶機是否被篡改,若存在篡改情況,則認定當前虛擬化系統(tǒng)存在安全風險,不允許切換。此外,可預(yù)設(shè)允許切換的時間段,例如在工作日上班時間才允許切換,在進入其他時段后將不能切換到切換進程所屬的虛擬機,通過允許切換的時間段,對虛擬機的切換進行進一步限制。優(yōu)選的,在步驟103之前,還包括:確定所述源虛擬機已經(jīng)完成交互任務(wù)。因為將切換進程所屬的虛擬機切換為前臺運行狀態(tài)后,切換進程所屬的虛擬機將運行如人機交互服務(wù)程序等的相關(guān)程序,使切換進程所屬的虛擬機能夠調(diào)用涉及用戶交互的輸入輸出的各種模塊,并且切換進程所屬的虛擬機的人機交互界面變?yōu)閷τ脩艨梢?,使用戶可操作,此時源虛擬機將無法實現(xiàn)人機交互的相關(guān)功能。所以本實施例在將切換進程所屬的虛擬機切換為前臺運行狀態(tài)之前,需要先確定發(fā)起切換請求的源虛擬機已經(jīng)完成了交互任務(wù)。所述交互任務(wù)為涉及用戶交互的輸入輸出的各種模塊完成的任務(wù),并且可以為預(yù)先設(shè)定的某些特定交互任務(wù),例如可以是在切換前彈出的提示用戶將進入切換進程所屬的虛擬機的對話框,在用戶點擊確認后才認為執(zhí)行完該交互任務(wù),進行后續(xù)切換步驟,也可以是其他相對重要需要優(yōu)先執(zhí)行完的涉及用戶交互的任務(wù)。若根據(jù)上述步驟102或者各優(yōu)選方式中的任一種或者幾種方式判斷所屬的虛擬機當前不允許切換時暫不進行切換,可以丟棄所述切換請求,或者僅存儲所述切換請求但暫不執(zhí)行切換的操作。優(yōu)選的,當判斷當前不允許切換時,存儲所述切換請求;延后預(yù)設(shè)時長判斷是否允許切換。當切換進程接收切換請求后,根據(jù)上述步驟102或者各優(yōu)選方式中的任一種或者幾種方式判斷所屬的虛擬機當前不允許切換時暫不進行切換,并對切換請求進行存儲。在經(jīng)過預(yù)設(shè)時間t后,切換進程所屬的虛擬機重新根據(jù)存儲的切換請求依上述方案判斷所屬虛擬機是否允許切換,若有多條切換請求,可以以最新的一條為準,在重新判斷允許切換時完成切換步驟。需要說明的是,上述步驟102和各優(yōu)選的判斷是否允許虛擬機進行切換的步驟的執(zhí)行順序可以是任意的,當有多步判斷步驟時,在先步驟判斷不允許切換時可不進行后續(xù)步驟,直接存儲切換請求,待經(jīng)過t時長后重新進行各步驟判斷。此外,可以理解的,當執(zhí)行上述步驟的切換進程運行于其所屬的虛擬機之上時將更加安全可靠,因其不會受到其他虛擬機上異常進程的影響。當各虛擬機的切換進程均運行于虛擬化層中時,將能夠節(jié)約各虛擬機切換過程中的虛擬化層與各虛擬機的交互過程。本實施例中,在由源虛擬機向切換進程所屬的虛擬機發(fā)起切換時,切換進程需要先確定是否允許由源虛擬機切換至切換進程所屬的虛擬機,只有在所述切換來源合法時,才將切換進程所屬的虛擬機切換為前臺運行。本實施例通過在切換虛擬機前判斷切換請求是否合法,以對虛擬機間的切換進行限制,進一步隔離了用戶對各虛擬機的訪問,更加安全。進一步的,切換進程還可以根據(jù)由云端服務(wù)器獲取的切換使能標識判斷是否允許切換,更加靈活;可根據(jù)預(yù)設(shè)允許切換時間段判斷是否允許切換,使切換限制具有實用意義;可在切換前確定發(fā)起切換的虛擬機完成了其交互任務(wù),不會因切換影響其他虛擬機的正常使用;以及可以在暫時不允許切換時存儲切換請求,待可以切換時再行切換,切換請求不會丟失。實施例二:本實施例中,宿主機的操作系統(tǒng)前臺運行,獨占系統(tǒng)的所有輸入輸出設(shè)備,即能夠獲取輸入輸出設(shè)備的配置和屬性等信息,并且能夠獲取輸入輸出設(shè)備的輸入信息,或者將系統(tǒng)的輸出通過輸出設(shè)備輸出。宿主機的操作系統(tǒng)在操作系統(tǒng)啟動完成之后,根據(jù)輸入控制操作系統(tǒng)的執(zhí)行任務(wù),如果沒有任務(wù)需要執(zhí)行,則系統(tǒng)進入休眠模式。宿主機上運行一個或多個客戶機,其中一個客戶機的操作系統(tǒng)在啟動時,只能夠獲取嵌入式系統(tǒng)的輸入輸出設(shè)備的配置和屬性等信息,不能夠獲取輸入輸出設(shè)備的輸入信息,或者將系統(tǒng)的輸出通過輸出設(shè)備輸出??蛻魴C的操作系統(tǒng)在啟動完成之后,如果沒有接收到切換到客戶機操作系統(tǒng)的請求,則在后臺運行,或者自動進入休眠模式。將宿主機前臺運行的狀態(tài)切換為客戶機前臺運行的狀態(tài)的過程如下:用戶操作宿主機操作系統(tǒng)中的應(yīng)用程序發(fā)起切換請求,所述切換請求是中斷指令。宿主機操作系統(tǒng)接收用戶的請求后將其發(fā)送至用戶希望切換為前臺運行狀態(tài)的客戶機對應(yīng)的切換進程,由該切換進程檢查當前虛擬化系統(tǒng)的安全性和當前宿主機操作系統(tǒng)中的任務(wù)狀態(tài),或者該切換進程獲取宿主機檢查當前虛擬化系統(tǒng)的安全性和當前宿主機操作系統(tǒng)中的任務(wù)狀態(tài)的結(jié)果。如果當前虛擬化系統(tǒng)安全,并且當前宿主機操作系統(tǒng)中的任務(wù)都已經(jīng)完成,并且根據(jù)用戶預(yù)先設(shè)置的切換策略,判斷發(fā)起切換請求的宿主機與切換請求指向的客戶機的安全級別相同,即允許所述宿主機機切換至所述客戶機,那么宿主機釋放獨占的嵌入式系統(tǒng)中所有輸入輸出設(shè)備,切換宿主機的操作系統(tǒng)的狀態(tài)為后臺運行,之后一段時間內(nèi)可進一步進入休眠模式。如果當前虛擬化系統(tǒng)不安全,或者當前宿主機操作系統(tǒng)中有部分重要的涉及交互的任務(wù)沒有完成,需要繼續(xù)占用嵌入式系統(tǒng)中的輸入輸出設(shè)備時,允許這些任務(wù)使用這些設(shè)備,直到這些任務(wù)完成時,切換宿主機的操作系統(tǒng)的狀態(tài)為后臺運行??蛻魴C操作系統(tǒng)由中斷喚醒,該中斷由宿主機的操作系統(tǒng)發(fā)起??蛻魴C運行有切換進程,所述切換進程根據(jù)客戶機和客戶機操作系統(tǒng)當前的狀態(tài)以及接收到的中斷執(zhí)行切換。具體的,客戶機提供虛擬的硬件環(huán)境供虛擬的操作系統(tǒng)和應(yīng)用軟件運行,這些硬件環(huán)境包括虛擬的中央處理器和虛擬的中斷控制器。虛擬的中央處理器用來執(zhí)行虛擬機的機器碼。虛擬的中斷控制器用來檢測、管理和發(fā)起客戶機的中斷,中斷控制器可以使能或者禁止中斷,虛擬中斷是虛擬中央處理器專屬的中斷??蛻魴C會虛擬一個虛擬切換設(shè)備,該設(shè)備可通過向虛擬中斷控制器申請一個虛擬中斷源獲得一個虛擬中斷。虛擬切換設(shè)備的一種實現(xiàn)方式是,基于模擬寄存器判斷切換請求是否合法。其提供4個虛擬寄存器,如表1所示,其中寄存器1-3用于響應(yīng)其他操作系統(tǒng)發(fā)起的請求該客戶機操作系統(tǒng)切換到前臺的切換請求,寄存器4用于輸出當前操作系統(tǒng)切換到后臺的請求。寄存器1切換請求中斷控制寄存器寄存器2切換請求中斷狀態(tài)寄存器寄存器3切換請求中斷源寄存器寄存器4切換請求寄存器表1寄存器說明示意圖切換請求中斷控制寄存器(寄存器1)控制虛擬中斷的使能,該寄存器可基于通信由云端服務(wù)器設(shè)置或與云端服務(wù)器通信獲取,可以由客戶機自身設(shè)置,也可以由宿主機設(shè)置;切換請求中斷狀態(tài)寄存器(寄存器2)保存虛擬中斷的請求記錄,通常保存最新的虛擬中斷請求;切換請求中斷源寄存器(寄存器3)來存儲切換請求的來源,即切換是由宿主機發(fā)起還是另一個客戶機發(fā)起的,存儲所述切換請求的來源的信息。切換請求寄存器(寄存器4)用于發(fā)起當前客戶機切換到后臺的請求,該寄存器分為兩個域(位段),切換請求域和返回狀態(tài)域,其中切換請求域表明發(fā)送了前述切換請求,返回狀態(tài)域用于保存該次切換請求的成功或者失敗的結(jié)果(即當當前客戶機處于前臺運行時,用戶若希望將當前運行的客戶機切換為后臺運行,并將其他客戶機切換為前臺運行時,將由寄存器4發(fā)起中斷)。客戶機操作系統(tǒng)具有針對該虛擬切換設(shè)備的驅(qū)動程序,提供讀寫寄存器和響應(yīng)中斷的功能。客戶機實現(xiàn)虛擬中斷的架構(gòu)示意圖如圖3所示,當客戶機接收到宿主機或者其他客戶機發(fā)起的切換請求時,虛擬切換設(shè)備的驅(qū)動程序操作寄存器1、2、3進行響應(yīng)。具體的,當宿主機或者其他客戶機的操作系統(tǒng)發(fā)起切換請求時,當前的客戶機在收到切換請求后,將切換請求存儲于寄存器2中,將切換請求的來源存儲于寄存器3中。之后根據(jù)寄存器1中的數(shù)值判斷客戶機的切換中斷是否使能,如果中斷已經(jīng)使能,那么才可能觸發(fā)寄存器2中的中斷;客戶機對應(yīng)的操作系統(tǒng)運行切換進程,在收到中斷之后被喚醒,運行虛擬設(shè)備驅(qū)動程序,響應(yīng)寄存器2中的中斷請求,根據(jù)寄存器3中的數(shù)據(jù)判斷切換請求中斷的來源是否合法,例如可限制安全性級別較低的客戶機向安全性級別較高的客戶機切換,以此實現(xiàn)多個操作系統(tǒng)之間可編程的方式控制系統(tǒng)切換的方向或者禁止系統(tǒng)進行切換。當同時滿足中斷使能,以及中斷來源(本實施例中終端來源為宿主機)合法時,客戶機操作系統(tǒng)響應(yīng)宿主機操作系統(tǒng)發(fā)起的切換請求,獨占嵌入式系統(tǒng)中所有的輸入輸出設(shè)備,切換為前臺運行狀態(tài)。反之,當客戶機處于前臺運行狀態(tài),希望切換為宿主機處于前臺運行的狀態(tài)時,切換的過程與上述切換方式相似,不同之處在于,宿主機操作系統(tǒng)可由客戶機通過事件喚醒而無需通過中斷喚醒。實施例三:基于同一發(fā)明構(gòu)思,本發(fā)明實施例中還提供了一種虛擬機切換裝置,由于這些裝置解決問題的原理與虛擬機切換方法相似,因此這些裝置的實施可以參見方法的實施,重復(fù)之處不再贅述。圖4示出了本發(fā)明實施例三中虛擬機切換裝置的結(jié)構(gòu)示意圖,如圖所示,所述裝置400包括:接收模塊401,用于接收切換請求,所述切換請求包括發(fā)起所述切換請求的源虛擬機的信息;判斷模塊402,用于根據(jù)所述源虛擬機的信息判斷所述切換請求合法;切換模塊403,用于將所屬的虛擬機由非前臺運行狀態(tài)切換為前臺運行狀態(tài)。優(yōu)選的,所述接收模塊401,還用于從云端服務(wù)器獲取所屬的虛擬機的切換使能標識,所述切換使能標識用于確定當前是否允許切換;所述判斷模塊402,還用于在所述切換模塊403將所屬的虛擬機切換為前臺運行狀態(tài)之前,根據(jù)獲取到的切換使能標識判斷當前允許切換。優(yōu)選的,所述判斷模塊402,還用于在所述切換模塊403將所屬的虛擬機切換為前臺運行狀態(tài)之前,根據(jù)虛擬化系統(tǒng)安全狀態(tài)和/或者預(yù)設(shè)允許切換時間段判斷當前允許切換。優(yōu)選的,所述裝置還包括:存儲模塊,用于當所述判斷模塊402判斷當前不允許切換時,存儲所述切換請求;所述判斷模塊402,還用于延后預(yù)設(shè)時長判斷是否允許切換。優(yōu)選的,所述判斷模塊402還用于,在所述切換模塊403將所屬的虛擬機切換為前臺運行狀態(tài)之前,確定所述源虛擬機已經(jīng)完成交互任務(wù)。優(yōu)選的,所述切換請求是中斷指令;所述判斷模塊402,具體用于基于模擬寄存器根據(jù)所述源虛擬機的信息判斷所述切換請求是否合法。優(yōu)選的,所述所屬的虛擬機為宿主機,所述非前臺運行狀態(tài)是指內(nèi)核層處于后臺運行狀態(tài),操作系統(tǒng)處于休眠狀態(tài)。實施例四:基于同一發(fā)明構(gòu)思,本發(fā)明實施例中還提供了一種虛擬機切換電子設(shè)備,由于其原理與虛擬機切換方法相似,因此其實施可以參見方法的實施,重復(fù)之處不再贅述。所述電子設(shè)備包括:顯示器,存儲器,一個或多個處理器;以及一個或多個模塊,所述一個或多個模塊被存儲在所述存儲器中,并被配置成由所述一個或多個處理器執(zhí)行,所述一個或多個模塊包括用于執(zhí)行任一上述方法中各個步驟的指令。實施例五:基于同一發(fā)明構(gòu)思,本發(fā)明實施例還提供了一種與包括顯示器的電子設(shè)備結(jié)合使用的虛擬機切換計算機程序產(chǎn)品,由于其原理與虛擬機切換方法相似,因此其實施可以參見方法的實施,重復(fù)之處不再贅述。所述計算機程序產(chǎn)品包括計算機可讀的存儲介質(zhì)和內(nèi)嵌于其中的計算機程序機制,所述計算機程序機制包括用于執(zhí)行任一前述方法中各個步驟的指令。為了描述的方便,以上所述裝置的各部分以功能分為各種模塊分別描述。當然,在實施本發(fā)明時可以把各模塊或單元的功能在同一個或多個軟件或硬件中實現(xiàn)。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。當前第1頁12