用于運(yùn)行多操作系統(tǒng)的方法以及相應(yīng)的系統(tǒng)和移動設(shè)備的制作方法
【專利摘要】本發(fā)明涉及一種運(yùn)行多操作系統(tǒng)的方法,該方法包括下列步驟:作為主機(jī)操作系統(tǒng)運(yùn)行第一操作系統(tǒng);在主機(jī)操作系統(tǒng)上啟動支持虛擬化的虛擬機(jī)監(jiān)視程序VMM;在所述VMM上作為客機(jī)操作系統(tǒng)運(yùn)行第二操作系統(tǒng);選擇第一操作系統(tǒng)和第二操作系統(tǒng)中的一個操作系統(tǒng)作為前臺操作系統(tǒng)而另一操作系統(tǒng)作為后臺操作系統(tǒng),使得所提供的用戶體驗(yàn)是,前臺操作系統(tǒng)擁有全部的輸入設(shè)備和輸出設(shè)備。本發(fā)明還涉及相應(yīng)的系統(tǒng)和移動設(shè)備。
【專利說明】用于運(yùn)行多操作系統(tǒng)的方法以及相應(yīng)的系統(tǒng)和移動設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總的來說涉及計(jì)算機(jī)操作系統(tǒng)領(lǐng)域,具體而言涉及用于運(yùn)行多操作系統(tǒng)的方法以及相應(yīng)的系統(tǒng)和移動設(shè)備。
【背景技術(shù)】
[0002]近年來,平板電腦和智能手機(jī)等移動設(shè)備已逐漸成為人們?nèi)粘I钪须x不開的首選計(jì)算、游戲、或影音播放設(shè)備。不同于?0,移動設(shè)備的操作主要基于觸摸屏,并少量地涉及諸如電源鍵和音量+/-鍵之類的物理按鍵。運(yùn)行在移動設(shè)備上的操作系統(tǒng)包括安卓、103和!'12611等。通常,一個移動設(shè)備只能運(yùn)行一個特定的操作系統(tǒng),比如安卓設(shè)備可以運(yùn)行安卓操作系統(tǒng)和安卓應(yīng)用,但不能運(yùn)行1111(10界8操作系統(tǒng)和1111(10界8應(yīng)用。這極大地限制了移動設(shè)備對為不同操作系統(tǒng)開發(fā)的應(yīng)用程序的支持。
[0003]針對該問題,從現(xiàn)有技術(shù)中公知的一種解決方案是雙啟動。在雙啟動方案中,一個移動設(shè)備可以在其存儲設(shè)備中同時安裝兩個(或更多個)操作系統(tǒng)。例如,在一個移動設(shè)備中首先安裝1111(10舊操作系統(tǒng),然后安裝安卓操作系統(tǒng)。用戶在每次開機(jī)時可以選擇啟動安卓或1111(10…操作系統(tǒng),從而實(shí)現(xiàn)在同一移動設(shè)備上運(yùn)行不同操作系統(tǒng)的相應(yīng)應(yīng)用程序。然而雙啟動的缺點(diǎn)是,同一時間只能運(yùn)行一個操作系統(tǒng),而且兩個操作系統(tǒng)之間的切換過程通常需要很長時間,比如10秒以上。該切換過程的具體步驟如下(假定當(dāng)前正在運(yùn)行安卓應(yīng)用程序X,但用戶現(xiàn)在想運(yùn)行應(yīng)用程序X、:
[0004]4:關(guān)閉應(yīng)用程序X
[0005]8:關(guān)閉安卓操作系統(tǒng)
[0006]0:系統(tǒng)重新啟動
[0007]0:(自動或手動)選擇啟動評1=(10界8
[0008]3:啟動評111(10界8
[0009]?:啟動應(yīng)用程序X
[0010]這個切換過程是耗時的,用戶通常要等待10秒以上(大部分情況下需要30秒以上)才能切換到不同的操作系統(tǒng),然后才能啟動該操作系統(tǒng)下的相應(yīng)應(yīng)用程序。
[0011]同時,在雙啟動方案中,只有當(dāng)前操作系統(tǒng)是活動的,而另一操作系統(tǒng)則完全關(guān)閉。這往往給用戶帶來不便,比如當(dāng)用戶在1111(10舊操作系統(tǒng)中編輯101X1文檔時,如果這時有微信消息發(fā)送到不活動的另一安卓操作系統(tǒng),則雙啟動方案中的安卓操作系統(tǒng)并不能接收這個微信消息,也不能夠提醒用戶該系統(tǒng)有微信信息到來。
[0012]操 4乍系統(tǒng)車專換(08# 見 111:1:138: //1111:61.801:1^66^6111:8.(30111/8214/¢01111601:/868810111)61:811.^ ? 5555108 10=1154)提供了一種借助于 8103 或固件的改進(jìn)的解決方案。操作系統(tǒng)可以利用睡眠模式(比如33或者3013見://011.界
% 288781:6111 011 ¢11113% 29)較快地完成八,、8,、。,步驟:
[0013]八’:掛起應(yīng)用程序X
[0014]8’:休眠安卓操作系統(tǒng)
[0015]C’:B I OS或固件恢復(fù)另一個操作系統(tǒng)
[0016]并利用操作系統(tǒng)本身的恢復(fù)(Resume)模式較快地完成D’、E’、F’步驟:
[0017]D’:(自動或手動)選擇恢復(fù)Windows
[0018]E’:恢復(fù) Windows
[0019]F’:恢復(fù)應(yīng)用程序Y
[0020]然而,在上述操作系統(tǒng)轉(zhuǎn)換方案中,該系統(tǒng)切換仍然持續(xù)較長時間(據(jù)記載至少4秒),并且仍然只有當(dāng)前操作系統(tǒng)是活動的。
[0021]另一公知解決方案是系統(tǒng)虛擬化。系統(tǒng)虛擬化技術(shù)發(fā)源于服務(wù)器,用于在一個服務(wù)器上同時運(yùn)行多個操作系統(tǒng)。該技術(shù)也已逐步被應(yīng)用在客戶端機(jī)器上,比如帶鼠標(biāo)鍵盤的臺式機(jī)和筆記本電腦。在虛擬化中,客機(jī)操作系統(tǒng)(Guest OS)的輸出屏幕往往由主機(jī)操作系統(tǒng)(Host OS)的屏幕窗口系統(tǒng)中的一個窗口來表不(例如某窗口 A顯不客機(jī)操作系統(tǒng)屏幕,而其它窗口還是顯示主機(jī)操作系統(tǒng)上的應(yīng)用程序的輸出)。輸入事件首先由主機(jī)操作系統(tǒng)處理,如果輸入事件是面向客機(jī)操作系統(tǒng)(如當(dāng)前窗口聚焦在如果輸入事件是客機(jī)操作系統(tǒng)的顯示窗口等),則再由主操作系統(tǒng)將該事件發(fā)送到虛擬機(jī)設(shè)備模型,由設(shè)備模型向響應(yīng)的客戶機(jī)生成一個虛擬輸入事件。然而,由于種種技術(shù)原因,虛擬化技術(shù)并未在以小尺寸顯示器和觸摸屏為主的平板電腦和手機(jī)等移動設(shè)備上得到應(yīng)用。這些技術(shù)原因例如包括:屏幕小主機(jī)操作系統(tǒng)不支持多窗口操作方式,或者(在主機(jī)操作系統(tǒng)支持多窗口操作方式的情況下)以多窗口方式顯示客機(jī)操作系統(tǒng)的輸出屏幕可能給用戶體驗(yàn)帶來不便;各操作系統(tǒng)的輸入輸出設(shè)備不一致(如Windows操作系統(tǒng)一般有Windows鍵,Android有Home鍵回退鍵,而1S只有Home鍵);切換復(fù)雜;用戶體驗(yàn)差等等。而且,由于當(dāng)時移動設(shè)備的內(nèi)存較小、處理器頻率較低,因此在移動設(shè)備上采用虛擬化技術(shù)未帶來流暢的用戶體驗(yàn)。
【發(fā)明內(nèi)容】
[0022]本發(fā)明的任務(wù)在于,提供一種用于運(yùn)行多操作系統(tǒng)的方法以及相應(yīng)系統(tǒng)和移動設(shè)備,其中與現(xiàn)有技術(shù)相比,所述方法以及系統(tǒng)和移動設(shè)備能夠提供多個操作系統(tǒng)中的每個操作系統(tǒng)的獨(dú)占系統(tǒng)用戶體驗(yàn),減小切換操作系統(tǒng)所需的時間,并且后臺系統(tǒng)在后臺期間仍可以為用戶執(zhí)行某些操作(如接收消息、郵件等等)。
[0023]根據(jù)本發(fā)明,該任務(wù)通過一種用于運(yùn)行多操作系統(tǒng)的方法來解決,該方法包括下列步驟:
[0024].作為主機(jī)操作系統(tǒng)運(yùn)行第一操作系統(tǒng);
[0025].在主機(jī)操作系統(tǒng)上啟動支持虛擬化的虛擬機(jī)監(jiān)視程序VMM ;
[0026].在所述VMM上作為客機(jī)操作系統(tǒng)運(yùn)行第二操作系統(tǒng);
[0027].選擇第一操作系統(tǒng)和第二操作系統(tǒng)中的一個操作系統(tǒng)作為前臺操作系統(tǒng)而另一操作系統(tǒng)則作為后臺操作系統(tǒng),使得所提供的用戶體驗(yàn)是,前臺操作系統(tǒng)擁有全部的輸入設(shè)備和輸出設(shè)備。
[0028]在本發(fā)明的范圍內(nèi),“前臺操作系統(tǒng)擁有全部的輸入設(shè)備和輸出設(shè)備”這一用戶體驗(yàn)是指,幾乎所有的用戶輸入(除了指示切換操作系統(tǒng)的用戶輸入以外)都由前臺操作系統(tǒng)進(jìn)行最終處理并且前臺操作系統(tǒng)產(chǎn)生的相應(yīng)的輸出完全顯示在物理顯示設(shè)備上,使得用戶就像在與一個運(yùn)行原生前臺操作系統(tǒng)的設(shè)備交互,而不管前臺操作系統(tǒng)是主機(jī)操作系統(tǒng)還是客機(jī)操作系統(tǒng)。這樣,多個操作系統(tǒng)中的每個操作系統(tǒng)都可以給用戶帶來獨(dú)占系統(tǒng)的用戶體驗(yàn);同時,由于兩個操作系統(tǒng)都是活動的,后臺操作系統(tǒng)在處于后臺期間仍然可以進(jìn)行某些操作(比如接收消息、郵件和通知等等),從而極大地改善了運(yùn)行多操作系統(tǒng)的移動設(shè)備的用戶體驗(yàn)。并且前后臺操作系統(tǒng)之間的切換非常迅速(通常低于幾毫秒
[0029]在本發(fā)明的一個有利的擴(kuò)展方案中規(guī)定,后臺操作系統(tǒng)不具有輸出。通過該措施,用戶完全感覺不到后臺系統(tǒng)存在帶來的影響,因?yàn)楹笈_系統(tǒng)不與用戶進(jìn)行任何交互也不向用戶提供任何輸出,由此可以向用戶提供絕對獨(dú)占系統(tǒng)的用戶體驗(yàn)。這在例如在用戶專注于前臺系統(tǒng)而不希望被后臺系統(tǒng)打擾時是有利的。
[0030]而在本發(fā)明的另一有利的擴(kuò)展方案規(guī)定,后臺系統(tǒng)具有一定的輸出。例如,后臺系統(tǒng)在處于后臺期間仍可向用戶輸出微信提醒、短消息提醒、郵件提醒、未接來電提醒、電池電量提醒等等。這在大多數(shù)情況下是有利的,因?yàn)橛脩粼谂c前臺系統(tǒng)交互時一般而言并不希望錯過后臺系統(tǒng)中的某些重要事件。后臺系統(tǒng)具有哪些輸出可以由用戶自定義或者由廠家預(yù)設(shè)。這些后臺系統(tǒng)的輸出如何顯示在屏幕或者前臺系統(tǒng)上可以由用戶自定義或者由廠家預(yù)設(shè),比如通過八系統(tǒng)中的狀態(tài)條,同時在八11(^01(1狀態(tài)條彈出時,將狀態(tài)條顯示在評111(10界8的屏幕中。
[0031]在本發(fā)明的范圍內(nèi),為簡單起見,將與操作系統(tǒng)本身的交互(如使用系統(tǒng)自帶功能、設(shè)置系統(tǒng)等等)、以及與該操作系統(tǒng)下的應(yīng)用程序的交互統(tǒng)稱為“與操作系統(tǒng)的交互”。
[0032]此外,盡管本發(fā)明是以運(yùn)行兩個操作系統(tǒng)為例進(jìn)行說明的,但是本發(fā)明也可用于運(yùn)行兩個以上的操作系統(tǒng),即一個主機(jī)和多個客機(jī)系統(tǒng)。
[0033]在本發(fā)明的一個有利的擴(kuò)展方案中規(guī)定,所述選擇步驟包括下列步驟:
[0034]?如果將主機(jī)操作系統(tǒng)選擇為前臺操作系統(tǒng),則客機(jī)操作系統(tǒng)作為后臺操作系統(tǒng),并且所述主機(jī)操作系統(tǒng)接收輸入并產(chǎn)生輸出;以及
[0035]?如果將客機(jī)操作系統(tǒng)選擇為前臺操作系統(tǒng),則主機(jī)操作系統(tǒng)作為后臺操作系統(tǒng),并且在主機(jī)操作系統(tǒng)接收到輸入時執(zhí)行下列步驟:
[0036]?確定所述輸入是否指示系統(tǒng)切換,如果是,則執(zhí)行系統(tǒng)切換,否則根據(jù)所述輸入生成針對客機(jī)操作系統(tǒng)的虛擬輸入事件,并且將所述虛擬輸入事件注入到客機(jī)操作系統(tǒng)中,客機(jī)操作系統(tǒng)處理所述虛擬輸入事件并產(chǎn)生相應(yīng)輸出。
[0037]也就是說,在本發(fā)明中,用戶輸入總是首先由主機(jī)系統(tǒng)來接收,然后由主機(jī)系統(tǒng)將除指示切換系統(tǒng)的用戶輸入以外的用戶輸入注入到作為前臺系統(tǒng)的客機(jī)操作系統(tǒng)中以供客機(jī)操作系統(tǒng)進(jìn)行處理,從而得到“前臺系統(tǒng)具有全部輸入和輸出設(shè)備”這一用戶體驗(yàn)。
[0038]在根據(jù)本發(fā)明的一個優(yōu)選的實(shí)施方式中規(guī)定:通過下列各項(xiàng)至少之一來執(zhí)行系統(tǒng)切換:物理按鍵輸入、觸摸屏輸入、手勢輸入、語音輸入。
[0039]在根據(jù)本發(fā)明的一個有利的擴(kuò)展方案中規(guī)定:所述物理按鍵輸入包括:
[0040]?當(dāng)用戶按下音量+鍵時,將主機(jī)操作系統(tǒng)切換為前臺操作系統(tǒng),并且當(dāng)用戶按下音量-鍵時,將客機(jī)操作系統(tǒng)切換為前臺操作系統(tǒng);和/或
[0041]?當(dāng)用戶按下音量-鍵時,將主機(jī)操作系統(tǒng)切換為前臺操作系統(tǒng),并且當(dāng)用戶按下音量+鍵時,將客機(jī)操作系統(tǒng)切換為前臺操作系統(tǒng);和/或
[0042]?當(dāng)客機(jī)操作系統(tǒng)為前臺操作系統(tǒng)時,用戶按下!1012鍵以將主機(jī)操作系統(tǒng)切換為前臺操作系統(tǒng)。
[0043]通過上述擴(kuò)展方案,實(shí)現(xiàn)了多操作系統(tǒng)下簡單、明晰的顯示和輸入出,同時實(shí)現(xiàn)多操作系統(tǒng)之間的簡捷切換。
[0044]在根據(jù)本發(fā)明的一個優(yōu)選的實(shí)施方式中規(guī)定,第一操作系統(tǒng)為安卓(Android)操作系統(tǒng),并且第二操作系統(tǒng)為Windows操作系統(tǒng)。第一和第二操作系統(tǒng)也可以是其它的操作系統(tǒng),比如 Tizen、1S、Linux (如 ubuntu)等等。
[0045]在根據(jù)本發(fā)明的一個有利的擴(kuò)展方案中規(guī)定,當(dāng)將外接顯示器連接到運(yùn)行該方法的設(shè)備時,本系統(tǒng)有雙顯示設(shè)備,在所述設(shè)備上顯示主機(jī)操作系統(tǒng),并且在所述外接顯示器上顯示客機(jī)操作系統(tǒng),或者反之。由此,有效地實(shí)現(xiàn)了對兩個操作系統(tǒng)的同時顯示,而且用戶通過上述簡單的系統(tǒng)切換(如按下音量+、一鍵)即可將客機(jī)操作系統(tǒng)(如Windows)切換為前臺系統(tǒng)(此種情況下,我們稱其中一個操作系統(tǒng)為前臺系統(tǒng),它擁有全部的輸入設(shè)備),并且借助于顯示客機(jī)操作系統(tǒng)的顯示器、利用運(yùn)行該方法的設(shè)備作為輸入設(shè)備來與前臺操作系統(tǒng)進(jìn)行交互。
[0046]在根據(jù)本發(fā)明的一個有利的擴(kuò)展方案中規(guī)定,通過擴(kuò)展塢將外接顯示器和外接輸入設(shè)備連接到所述設(shè)備。通過使用擴(kuò)展塢,可以在運(yùn)行該方法的設(shè)備、比如移動設(shè)備本身不具有視頻擴(kuò)展接口的情況下,將該設(shè)備與外接顯示器相連接,并且還將該設(shè)備與外接輸入設(shè)備相連接。在該情況下,系統(tǒng)具有兩套輸入輸出設(shè)備,因此沒有前后臺操作系統(tǒng)的概念,也就是說,在此,主機(jī)、客機(jī)操作系統(tǒng)均可以具有自己的顯示設(shè)備和輸入設(shè)備。主機(jī)操作系統(tǒng)可以利用設(shè)備本身的輸入輸出接口,而客機(jī)操作系統(tǒng)可以利用擴(kuò)展塢上的外接輸入輸出設(shè)備如外接顯示器和外接鍵盤,或者反之。
[0047]在根據(jù)本發(fā)明的另一有利的擴(kuò)展方案中規(guī)定,在運(yùn)行該方法的設(shè)備進(jìn)入鎖屏狀態(tài)以后,當(dāng)用戶試圖解鎖屏幕的時候(比如在Android下按下電源鍵),系統(tǒng)顯示一個具有多個按鈕的雙系統(tǒng)解鎖屏幕。用戶劃動所述設(shè)備的屏幕上的多個按鈕之一來進(jìn)入主機(jī)操作系統(tǒng)或客機(jī)操作系統(tǒng)的解鎖屏幕。由此,可以方便用戶解鎖所期望的操作系統(tǒng),也就是說,用戶可以通過選擇不同按鈕來進(jìn)入不同解鎖屏幕以解鎖不同系統(tǒng)。這提供了更便捷的系統(tǒng)切換方式。
[0048]在根據(jù)本發(fā)明的又一有利的擴(kuò)展方案中規(guī)定,所述按鈕包括:橫向按鈕、縱向按鈕、順時針按鈕、和/或逆時針按鈕。其它的選擇解鎖屏幕的方式也是可以設(shè)想的,比如通過輸入字母(例如操作系統(tǒng)首字母)、輸入數(shù)字、輸入指紋(例如不同手指的指紋對應(yīng)不同操作系統(tǒng))等等。
[0049]在本發(fā)明的另一優(yōu)選的實(shí)施方式中,通過選擇不同按鈕中的一個來直接解鎖主機(jī)操作系統(tǒng)或客機(jī)操作系統(tǒng)之一、即將主機(jī)操作系統(tǒng)或客機(jī)操作系統(tǒng)之一選擇為前臺操作系統(tǒng)。
[0050]此外,根據(jù)本發(fā)明,開頭提到的任務(wù)還通過一種運(yùn)行多操作系統(tǒng)的系統(tǒng)來解決,該系統(tǒng)包括:
[0051].用于作為主機(jī)操作系統(tǒng)運(yùn)行第一操作系統(tǒng)的裝置;
[0052].用于在主機(jī)操作系統(tǒng)上啟動支持虛擬化的虛擬機(jī)監(jiān)視程序VMM的裝置;
[0053].用于在所述VMM上作為客機(jī)操作系統(tǒng)運(yùn)行第二操作系統(tǒng)的裝置;以及
[0054].用于選擇第一操作系統(tǒng)和第二操作系統(tǒng)中的一個操作系統(tǒng)作為前臺操作系統(tǒng)并且選擇另一操作系統(tǒng)作為后臺操作系統(tǒng)的裝置,其中所提供的用戶體驗(yàn)是,前臺操作系統(tǒng)擁有全部的輸入設(shè)備和輸出設(shè)備。
[0055]根據(jù)本發(fā)明,前述任務(wù)還通過一種移動設(shè)備來解決,該移動設(shè)備具有:
[0056].處理器,其被配置為執(zhí)行可執(zhí)行指令;
[0057]?輸入設(shè)備,其被配置為接收用戶輸入;
[0058].輸出設(shè)備,其被配置為顯示輸出;
[0059].存儲器,其上存儲有可執(zhí)行指令,所述可執(zhí)行指令在被所述處理器執(zhí)行時致使所述處理器執(zhí)行下列操作:
[0060]作為主機(jī)操作系統(tǒng)運(yùn)行第一操作系統(tǒng);
[0061]在主機(jī)操作系統(tǒng)上啟動支持虛擬化的虛擬機(jī)監(jiān)視程序VMM ;
[0062]在所述VMM上作為客機(jī)操作系統(tǒng)運(yùn)行第二操作系統(tǒng);
[0063]選擇第一操作系統(tǒng)和第二操作系統(tǒng)中的一個操作系統(tǒng)作為前臺操作系統(tǒng)而另一操作系統(tǒng)作為后臺操作系統(tǒng),使得所提供的用戶體驗(yàn)是,前臺操作系統(tǒng)擁有全部的輸入設(shè)備和輸出設(shè)備。
[0064]在根據(jù)本發(fā)明的一個擴(kuò)展方案中規(guī)定,所述操作還包括:
[0065]從輸入設(shè)備接收用戶輸入;
[0066]確定所述用戶輸入是否為指示系統(tǒng)切換的用戶輸入,其中如果確定所述用戶輸入是指示系統(tǒng)切換的用戶輸入,則由主操作系統(tǒng)處理所述用戶輸入,否則由前臺操作系統(tǒng)來處理所述用戶輸入并且生成相應(yīng)輸出以供所述輸出設(shè)備進(jìn)行輸出。
[0067]也就是說,根據(jù)本發(fā)明,所述用戶體驗(yàn)是通過如下方式實(shí)現(xiàn)的:除了指示系統(tǒng)切換的用戶輸入以外的全部用戶輸入都由前臺操作系統(tǒng)來處理并且生成相應(yīng)輸出,而指示系統(tǒng)切換的用戶輸入由主操作系統(tǒng)來處理。
【專利附圖】
【附圖說明】
[0068]下面參考附圖根據(jù)多個實(shí)施例來進(jìn)一步闡述本發(fā)明。附圖:
[0069]圖1A和IB示出了使用根據(jù)本發(fā)明的方法的移動設(shè)備在不同前臺系統(tǒng)下的示意圖;
[0070]圖2示出了根據(jù)本發(fā)明的方法的流程圖;
[0071]圖3示出了根據(jù)本發(fā)明的系統(tǒng)架構(gòu);
[0072]圖4示出了運(yùn)行根據(jù)本發(fā)明的方法的移動設(shè)備在使用外接顯示器時的示意圖;
[0073]圖5A至5C示出了運(yùn)行根據(jù)本發(fā)明的方法的移動設(shè)備的不同解鎖方式。
【具體實(shí)施方式】
[0074]盡管在下面參考附圖對本發(fā)明的實(shí)施例的描述中,以運(yùn)行安卓和Windows操作系統(tǒng)的平板計(jì)算機(jī)或智能手機(jī)為例闡述了本發(fā)明的原理,但是應(yīng)當(dāng)理解,本發(fā)明并不限于此,而是本發(fā)明還可以應(yīng)用于諸如個人數(shù)字助理(PDA)、上網(wǎng)本之類的其它移動設(shè)備、以及諸如Tizen、Linux之類的其它操作系統(tǒng)。
[0075]圖1A和IB示出了使用根據(jù)本發(fā)明的方法的平板計(jì)算機(jī)100在不同前臺系統(tǒng)下的示意圖。圖1A示出了平板計(jì)算機(jī)100在以安卓操作系統(tǒng)為前臺系統(tǒng)時的快照,圖1B示出了該平板計(jì)算機(jī)100在以Windows操作系統(tǒng)為前臺系統(tǒng)的快照。
[0076]從圖1八中可以看出,平板計(jì)算機(jī)100具有典型的安卓用戶界面104,而在圖18的圖示中具有擁有.廿0窗格106的界面105。
[0077]用戶可以通過各種用戶輸入方式來將前臺操作系統(tǒng)從安卓系統(tǒng)切換為1111(10界8操作系統(tǒng)。優(yōu)選地使用平板計(jì)算機(jī)100的物理按鍵來執(zhí)行系統(tǒng)切換,因?yàn)槲锢戆存I具有響應(yīng)時間短、操作靈敏和直截了當(dāng)?shù)葍?yōu)點(diǎn)。例如,用戶可以通過按下平板計(jì)算機(jī)100的音量+鍵101來將安卓操作系統(tǒng)切換為前臺操作系統(tǒng),并且通過按下音量-鍵102來將1111(10舊操作系統(tǒng)切換為前臺操作系統(tǒng);當(dāng)操作系統(tǒng)為前臺操作系統(tǒng)時,用戶可以按下鍵103以將安卓操作系統(tǒng)切換為前臺操作系統(tǒng)。通過簡單的按鍵切換,前臺操作系統(tǒng)在幾毫秒內(nèi)就從安卓系統(tǒng)切換為1111(10…系統(tǒng)。通過簡單、快速的系統(tǒng)切換,提升了設(shè)備的雙操作系統(tǒng)用戶體驗(yàn)。
[0078]而且,從圖1中可以看出,前臺操作系統(tǒng)如同獨(dú)占操作系統(tǒng)那樣具有幾乎全部的輸入,因此,用戶所切換到的安卓和1111(10舊系統(tǒng)都能給用戶帶來獨(dú)占系統(tǒng)的用戶體驗(yàn)。
[0079]同時,由于后臺操作系統(tǒng)在處于后臺期間仍然是活動的,因此可以進(jìn)行某些操作。例如,當(dāng)用戶切換到1111(10舊系統(tǒng)以后,作為后臺系統(tǒng)的安卓系統(tǒng)仍然可以接收微信消息,并通過適當(dāng)方式(例如微信的狀態(tài)條提醒消息或提醒音頻)提醒用戶。后臺系統(tǒng)可以進(jìn)行哪些操作可以由用戶自定義,或者可以由廠家預(yù)設(shè)。
[0080]圖2示出了根據(jù)本發(fā)明的方法200的流程圖。在步驟202,作為主機(jī)操作系統(tǒng)運(yùn)行第一操作系統(tǒng)。例如,在用戶啟動平板計(jì)算機(jī)100以后,在該平板計(jì)算機(jī)100上作為前臺系統(tǒng)運(yùn)行安卓系統(tǒng)。
[0081]在步驟204,在主機(jī)操作系統(tǒng)上啟動支持虛擬化的虛擬機(jī)監(jiān)視程序~1代113118(^1116 101111:010711。例如,在安卓系統(tǒng)上啟動支持虛擬化的虛擬機(jī)監(jiān)視程序VII。由于虛擬機(jī)技術(shù)是現(xiàn)有技術(shù)中充分公知的,因此在此為了不模糊本發(fā)明,不對該技術(shù)進(jìn)行詳細(xì)展開。關(guān)于虛擬機(jī)技術(shù),例如可以參閱乂的虛擬機(jī)架構(gòu)。
[0082]在步驟206,在所述VII上作為客機(jī)操作系統(tǒng)運(yùn)行第二操作系統(tǒng)。例如,在進(jìn)入主機(jī)系統(tǒng)以后,在由用戶發(fā)起或者系統(tǒng)自動運(yùn)行的情況下,在VII上作為客機(jī)操作系統(tǒng)運(yùn)行1111(10^8 系統(tǒng)。
[0083]應(yīng)當(dāng)注意,盡管在此是以安卓系統(tǒng)作為主機(jī)系統(tǒng)的場景來進(jìn)行說明的,但是應(yīng)當(dāng)理解,這僅僅是示例性的,并且本發(fā)明同樣適用于以1111(10舊系統(tǒng)或其它系統(tǒng)作為主機(jī)操作系統(tǒng)并以安卓系統(tǒng)或其它系統(tǒng)作為客機(jī)系統(tǒng)的場景。
[0084]在步驟208,選擇第一操作系統(tǒng)和第二操作系統(tǒng)中的一個操作系統(tǒng)作為前臺操作系統(tǒng)而另一操作系統(tǒng)作為后臺操作系統(tǒng),使得所提供的用戶體驗(yàn)是,前臺操作系統(tǒng)擁有全部的輸入設(shè)備和輸出設(shè)備。例如,如上面所述那樣,用戶通過按下首量一鍵102將11=(10界8系統(tǒng)設(shè)置為前臺系統(tǒng),并且此時,設(shè)備所提供的用戶體驗(yàn)是,作為前臺系統(tǒng)的11^(10…系統(tǒng)具有全部的輸入設(shè)備的用戶體驗(yàn)。于是,用戶可以直接滑動1111(10舊界面105中的各個161:1-0窗格106,就像操作1111(10界8設(shè)備(例如1111(10界8 9110116)那樣,而幾乎感覺不到安卓系統(tǒng)的存在(除了安卓系統(tǒng)的某些操作、例如微信消息提醒以外)。
[0085]圖3示出了根據(jù)本發(fā)明的系統(tǒng)架構(gòu)300。平板計(jì)算機(jī)100的觸摸屏上的用戶點(diǎn)擊、手勢等輸入事件307首先由主機(jī)操作系統(tǒng)接收和處理。當(dāng)客機(jī)操作系統(tǒng)是前臺操作系統(tǒng)的時候,該事件由主機(jī)操作系統(tǒng)發(fā)送到設(shè)備模型((16^1(36 1110(161簡稱01) 301以便進(jìn)一步處理。設(shè)備模型301例如可以被實(shí)現(xiàn)為客機(jī)操作系統(tǒng)304在主機(jī)操作系統(tǒng)305上的宿主程序
(1)1^06 1101(161-)或占位程序。主機(jī)操作系統(tǒng)305和/或設(shè)備模型301首先會檢查該輸入事件307是否是表示切換操作系統(tǒng)的輸入事件(例如用戶按下系統(tǒng)預(yù)定義鍵、如鍵、音量+/ —鍵等等)。如果是表示切換操作系統(tǒng)的輸入事件,則主機(jī)操作系統(tǒng)305和/或設(shè)備模型301可以執(zhí)行相應(yīng)的系統(tǒng)切換。如果不是,則設(shè)備模型301可以為客機(jī)操作系統(tǒng)304產(chǎn)生模擬該輸入事件307的虛擬輸入事件308,并可能產(chǎn)生相應(yīng)的虛擬輸入中斷以便通知客機(jī)操作系統(tǒng)304處理這個虛擬輸入事件308??蜋C(jī)操作系統(tǒng)304收到這個虛擬輸入事件308后,對該事件308進(jìn)行處理,例如由客機(jī)操作系統(tǒng)的內(nèi)建輸入事件處理模塊處理這個事件,這就像在原生單機(jī)系統(tǒng)里面一樣。在處理完成以后,客機(jī)操作系統(tǒng)304可能將相應(yīng)輸出309發(fā)送給客機(jī)虛擬顯示設(shè)備,進(jìn)而由設(shè)備模型301將相應(yīng)輸出在顯示設(shè)備306上進(jìn)行顯0
[0086]在雙操作系統(tǒng)情形下,客戶機(jī)操作系統(tǒng)呈現(xiàn)為主機(jī)操作系統(tǒng)的一個應(yīng)用程序(八--),當(dāng)用戶點(diǎn)擊該八??時,主機(jī)操作系統(tǒng)會給該全屏狀態(tài)的八??分配顯示緩沖區(qū),該八??顯示緩沖區(qū)將通過01以及硬件虛擬化技術(shù)如?叫6 1^16 (^?!/^?!)內(nèi)存映射技術(shù),映射為客戶機(jī)操作系統(tǒng)的顯示緩沖區(qū),因而客戶機(jī)操作系統(tǒng)在進(jìn)行屏幕渲染時,實(shí)際是渲染到了主機(jī)為該仙?分配的顯示緩沖區(qū)中,實(shí)現(xiàn)了顯示緩沖區(qū)的0拷貝機(jī)制。該方法可以大幅提高了客戶機(jī)操作系統(tǒng)在設(shè)備顯示屏上的顯示性能。或者01直接將客機(jī)系統(tǒng)的巾貞緩沖區(qū)(^以郵1311打61)合成在主機(jī)系統(tǒng)的顯示的巾貞緩沖區(qū)(^以郵1311打61)中,并通過硬件或者主機(jī)系統(tǒng)本身將這個幀緩沖區(qū)中的內(nèi)容顯示在顯示屏上。
[0087]圖4示出了運(yùn)行根據(jù)本發(fā)明的方法的移動設(shè)備在使用外接顯示器時的場景。如圖4中所示,當(dāng)將外接顯示器、即圖4中的臺式機(jī)的顯示器402連接到運(yùn)行該方法的設(shè)備、即圖4中的智能手機(jī)401時,在所述智能手機(jī)401上顯示主機(jī)操作系統(tǒng)、例如在圖4中為安卓系統(tǒng),而在顯示器402上顯示客機(jī)操作系統(tǒng)、例如圖4中為系統(tǒng)。
[0088]下面闡述根據(jù)本發(fā)明的實(shí)現(xiàn)上述場景的原理。
[0089]客機(jī)操作系統(tǒng)運(yùn)行顯卡的設(shè)備驅(qū)動程序(0?)。在單機(jī)操作系統(tǒng)中,客機(jī)操作系統(tǒng)的顯示會直接通過該0?輸出。而在雙操作系統(tǒng)中,客機(jī)操作系統(tǒng)的0?驅(qū)動對虛擬硬件的10操作會被設(shè)備模型01捕捉并模擬(廿叩-2111(1 -6皿1131:6)。這個捕捉并模擬過程可以通過虛擬機(jī)退出〈VI 6X1^來實(shí)現(xiàn),或者半虛擬化驅(qū)動使用的前臺/后臺驅(qū)動程序交互接
0來進(jìn)4于(參考 XVI11=1^ -。
[0090]在服務(wù)器虛擬化中,01對客戶機(jī)輸出的模擬會使用一個內(nèi)存緩沖區(qū)0x1打虹)來模擬客機(jī)系統(tǒng)的顯示屏輸出、即所謂的幀緩沖區(qū)^打虹)。而為了在雙操作系統(tǒng)中實(shí)現(xiàn)外接顯示器顯示客機(jī)系統(tǒng)這一場景,01直接將客機(jī)系統(tǒng)的幀緩沖區(qū)^打虹)合成在主機(jī)系統(tǒng)的顯示的幀緩沖區(qū)(色^腕^打虹)中,并通過硬件或者主機(jī)系統(tǒng)本身將這個幀緩沖區(qū)中的內(nèi)容顯示在顯示屏上、即外接顯示器上,或者直接將主機(jī)外接顯示器幀緩沖區(qū)映射為客戶機(jī)操作系統(tǒng)的幀緩沖區(qū)。
[0091]因此,當(dāng)雙系統(tǒng)設(shè)備通過擴(kuò)展顯示接口(如等)連接有外接顯示器時,01通過安卓系統(tǒng)編程方法,獲取主機(jī)系統(tǒng)的擴(kuò)展顯示接口的操作句柄,通過主機(jī)操作系統(tǒng)提供的顯示投影仙I直接將客機(jī)系統(tǒng)的幀緩沖區(qū)合成在主機(jī)系統(tǒng)的擴(kuò)展顯示接口幀緩沖區(qū)上。如此一來,顯示接口(即雙系統(tǒng)設(shè)備的顯示屏)可以仍然顯示主機(jī)系統(tǒng)、例如安卓操作系統(tǒng),而外接顯示器則顯示客機(jī)系統(tǒng)、例如Windows操作系統(tǒng)。,或者直接將主機(jī)外接顯示器幀緩沖區(qū)映射為客戶機(jī)操作系統(tǒng)的幀緩沖區(qū)。
[0092]此外,雙系統(tǒng)設(shè)備可以插入手機(jī)/平板電腦的擴(kuò)展塢(dock),其中擴(kuò)展塢可以連接顯示器、鼠標(biāo)、鍵盤、以及音頻設(shè)備等等。通過使用擴(kuò)展塢,可以在運(yùn)行該方法的設(shè)備、比如平板計(jì)算機(jī)或智能手機(jī)設(shè)備本身不具有視頻擴(kuò)展接口的情況下,將該設(shè)備與外接顯示器以及輸入設(shè)備相連接。
[0093]當(dāng)外接顯示器顯示客機(jī)系統(tǒng)時,用戶可以將客機(jī)系統(tǒng)、如Windows系統(tǒng)切換為前臺系統(tǒng),并利用智能手機(jī)401作為輸入設(shè)備來與外接顯示器上顯示的客機(jī)系統(tǒng)、如Windows系統(tǒng)的用戶界面交互。
[0094]圖5A至5C示出了運(yùn)行根據(jù)本發(fā)明的方法的移動設(shè)備500進(jìn)入不同解鎖屏幕的方式。如圖5A所示,移動設(shè)備500當(dāng)前處于鎖屏狀態(tài),并且在屏幕上顯示水平滑動鍵501和垂直滑動鍵502。當(dāng)用戶滑動水平滑動鍵501時,移動設(shè)備進(jìn)入主機(jī)操作系統(tǒng)、例如安卓系統(tǒng)的解鎖屏幕(圖5B),此時,用戶可通過安卓系統(tǒng)的相應(yīng)解鎖方式進(jìn)行解鎖。當(dāng)用戶滑動垂直滑動鍵502時,移動設(shè)備進(jìn)入客機(jī)操作系統(tǒng)、例如Windows系統(tǒng)的解鎖屏幕(圖5C),此時,用戶可通過Windows系統(tǒng)的相應(yīng)解鎖方式進(jìn)行解鎖。
[0095]下面闡述根據(jù)本發(fā)明的實(shí)現(xiàn)不同解鎖方式的原理。
[0096]當(dāng)用戶滑動進(jìn)入主機(jī)操作系統(tǒng)的解鎖屏幕的按鈕(例如橫向鍵501)時,進(jìn)入主機(jī)操作系統(tǒng)的解鎖屏幕。當(dāng)用戶滑動進(jìn)入客機(jī)操作系統(tǒng)的解鎖屏幕的按鈕(例如垂直鍵502)時,首先解鎖主機(jī)系統(tǒng),但是此時并不顯示主機(jī)系統(tǒng)的解鎖屏幕,而是將DM設(shè)置為當(dāng)前應(yīng)用程序,并通知DM(比如向DM發(fā)送一個特殊事件)由DM合成進(jìn)入客機(jī)解鎖屏幕的虛擬輸入事件,此時用戶將看到客機(jī)系統(tǒng)的解鎖屏幕?;蛘咄ㄖ骋粋€在客機(jī)系統(tǒng)中的服務(wù)程序,由該程序請求客機(jī)系統(tǒng)進(jìn)入解鎖屏幕。
[0097]當(dāng)然還可以構(gòu)思順時針按鈕和逆時針按鈕來實(shí)現(xiàn)上述選擇解鎖屏幕的功能。其它的選擇解鎖屏幕的方式也是可以設(shè)想的,比如通過輸入字母(例如操作系統(tǒng)首字母)、輸入數(shù)字、輸入指紋(例如不同手指的指紋對應(yīng)不同操作系統(tǒng))等等。
[0098]此外,也可以規(guī)定使用所述水平滑動鍵501和垂直滑動鍵502直接解鎖進(jìn)入相應(yīng)的系統(tǒng)而不是進(jìn)入相應(yīng)的解鎖屏幕。例如,當(dāng)用戶滑動水平滑動鍵501時,解鎖安卓系統(tǒng),而當(dāng)用戶滑動垂直滑動鍵502時,解鎖Windows系統(tǒng)。
[0099]雖然本發(fā)明的一些實(shí)施方式已經(jīng)在本申請文件中予以了描述,但是對本領(lǐng)域技術(shù)人員顯而易見的是,這些實(shí)施方式僅僅是作為示例示出的。本領(lǐng)域技術(shù)人員可以想到眾多的變型方案、替代方案和改進(jìn)方案而不超出本發(fā)明的范圍。所附權(quán)利要求書旨在限定本發(fā)明的范圍,并藉此涵蓋這些權(quán)利要求本身及其等同變換的范圍內(nèi)的方法和結(jié)構(gòu)。
【權(quán)利要求】
1.一種在移動設(shè)備上運(yùn)行多操作系統(tǒng)的方法,包括下列步驟: 作為主機(jī)操作系統(tǒng)運(yùn)行第一操作系統(tǒng); 在主機(jī)操作系統(tǒng)上啟動支持虛擬化的虛擬機(jī)監(jiān)視程序VMM ; 在所述VMM上作為客機(jī)操作系統(tǒng)運(yùn)行第二操作系統(tǒng); 選擇第一操作系統(tǒng)和第二操作系統(tǒng)中的一個操作系統(tǒng)作為前臺操作系統(tǒng)而另一操作系統(tǒng)作為后臺操作系統(tǒng),使得所提供的用戶體驗(yàn)是,前臺操作系統(tǒng)擁有全部的輸入設(shè)備和輸出設(shè)備。
2.如權(quán)利要求1所述的方法,所述選擇步驟包括下列步驟: 如果將主機(jī)操作系統(tǒng)選擇為前臺操作系統(tǒng),則客機(jī)操作系統(tǒng)作為后臺操作系統(tǒng),并且所述主機(jī)操作系統(tǒng)接收輸入并產(chǎn)生輸出;以及 如果將客機(jī)操作系統(tǒng)選擇為前臺操作系統(tǒng),則主機(jī)操作系統(tǒng)作為后臺操作系統(tǒng),并且在主機(jī)操作系統(tǒng)接收到輸入時執(zhí)行下列步驟: 確定所述輸入是否指示系統(tǒng)切換,如果是,則執(zhí)行系統(tǒng)切換,否則根據(jù)所述輸入生成針對客機(jī)操作系統(tǒng)的虛擬輸入事件,并且將所述虛擬輸入事件注入到客機(jī)操作系統(tǒng)中,客機(jī)操作系統(tǒng)處理所述虛擬輸入事件并產(chǎn)生相應(yīng)輸出。
3.如權(quán)利要求1所述的方法,其中后臺操作系統(tǒng)具有一定的輸出。
4.如權(quán)利要求2所述的方法,其中通過下列各項(xiàng)至少之一來執(zhí)行系統(tǒng)切換:物理按鍵輸入、觸摸屏輸入、手勢輸入、語音輸入。
5.如權(quán)利要求1所述的方法,其中第一操作系統(tǒng)為安卓操作系統(tǒng),并且第二操作系統(tǒng)為Windows操作系統(tǒng)。
6.如權(quán)利要求4所述的方法,其中所述物理按鍵輸入包括: 當(dāng)用戶按下音量+鍵時,將主機(jī)操作系統(tǒng)切換為前臺操作系統(tǒng),并且當(dāng)用戶按下音量-鍵時,將客機(jī)操作系統(tǒng)切換為前臺操作系統(tǒng);和/或 當(dāng)用戶按下音量-鍵時,將主機(jī)操作系統(tǒng)切換為前臺操作系統(tǒng),并且當(dāng)用戶按下音量+鍵時,將客機(jī)操作系統(tǒng)切換為前臺操作系統(tǒng);和/或 當(dāng)客機(jī)操作系統(tǒng)為前臺操作系統(tǒng)時,用戶按下HOME鍵以將主機(jī)操作系統(tǒng)切換為前臺操作系統(tǒng)。
7.如權(quán)利要求1所述的方法,其中當(dāng)將外接顯示器連接到所述移動設(shè)備時,在所述移動設(shè)備上顯示主機(jī)操作系統(tǒng),而在所述外接顯示器上顯示客機(jī)操作系統(tǒng)。
8.如權(quán)利要求7所述的方法,其中通過擴(kuò)展塢將外接顯示器和外接輸入設(shè)備連接到所述移動設(shè)備,其中主機(jī)操作系統(tǒng)擁有所述移動設(shè)備的顯示和輸入設(shè)備,而客機(jī)操作系統(tǒng)擁有擴(kuò)展塢上的外接顯示器和外接輸入設(shè)備。
9.根據(jù)權(quán)利要求1所述的方法,其中在所述移動設(shè)備進(jìn)入鎖屏狀態(tài)以后,用戶劃動所述移動設(shè)備的屏幕上的多個按鈕之一來進(jìn)入主機(jī)操作系統(tǒng)或客機(jī)操作系統(tǒng)的解鎖屏幕。
10.根據(jù)權(quán)利要求9所述的方法,其中所述按鈕包括:橫向按鈕、縱向按鈕、順時針按鈕、和/或逆時針按鈕。
11.一種在移動設(shè)備上運(yùn)行多操作系統(tǒng)的系統(tǒng),包括: 用于作為主機(jī)操作系統(tǒng)運(yùn)行第一操作系統(tǒng)的裝置; 用于在主機(jī)操作系統(tǒng)上啟動支持虛擬化的虛擬機(jī)監(jiān)視程序VMM的裝置; 用于在所述VMM上作為客機(jī)操作系統(tǒng)運(yùn)行第二操作系統(tǒng)的裝置;以及用于選擇第一操作系統(tǒng)和第二操作系統(tǒng)中的一個操作系統(tǒng)作為前臺操作系統(tǒng)而另一操作系統(tǒng)作為后臺操作系統(tǒng)的裝置,其中所產(chǎn)生的用戶體驗(yàn)是,前臺操作系統(tǒng)擁有全部的輸入設(shè)備和輸出設(shè)備。
12.—種移動設(shè)備,該移動設(shè)備具有: 處理器,其被配置為執(zhí)行可執(zhí)行指令; 輸入設(shè)備,其被配置為接收用戶輸入; 輸出設(shè)備,其被配置為顯示輸出; 存儲器,其上存儲有可執(zhí)行指令,所述可執(zhí)行指令在被所述處理器執(zhí)行時致使所述處理器執(zhí)行下列操作: 作為主機(jī)操作系統(tǒng)運(yùn)行第一操作系統(tǒng); 在主機(jī)操作系統(tǒng)上啟動支持虛擬化的虛擬機(jī)監(jiān)視程序VMM ; 在所述VMM上作為客機(jī)操作系統(tǒng)運(yùn)行第二操作系統(tǒng); 選擇第一操作系統(tǒng)和第二操作系統(tǒng)中的一個操作系統(tǒng)作為前臺操作系統(tǒng)而另一操作系統(tǒng)作為后臺操作系統(tǒng),使得所提供的用戶體驗(yàn)是,前臺操作系統(tǒng)擁有全部的輸入設(shè)備和輸出設(shè)備。
13.根據(jù)權(quán)利要求12所述的移動設(shè)備,其中所述操作還包括: 從輸入設(shè)備接收用戶輸入; 確定所述用戶輸入是否為指示系統(tǒng)切換的用戶輸入,其中如果確定所述用戶輸入是指示系統(tǒng)切換的用戶輸入,則由主操作系統(tǒng)處理所述用戶輸入,否則由前臺操作系統(tǒng)來處理所述用戶輸入并且生成相應(yīng)輸出以供所述輸出設(shè)備進(jìn)行輸出。
【文檔編號】G06F9/46GK104360900SQ201410612578
【公開日】2015年2月18日 申請日期:2014年11月3日 優(yōu)先權(quán)日:2014年11月3日
【發(fā)明者】楊曉偉, 許東曉 申請人:上海邁微軟件科技有限公司