CN104516782B - 用于进行智能系统运行环境切换的方法及其设备 - Google Patents

用于进行智能系统运行环境切换的方法及其设备 Download PDF

Info

Publication number
CN104516782B
CN104516782B CN201410855285.7A CN201410855285A CN104516782B CN 104516782 B CN104516782 B CN 104516782B CN 201410855285 A CN201410855285 A CN 201410855285A CN 104516782 B CN104516782 B CN 104516782B
Authority
CN
China
Prior art keywords
operating system
virtual
native
user
switching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410855285.7A
Other languages
English (en)
Other versions
CN104516782A (zh
Inventor
杨晓伟
许东晓
冯昱涵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Microvirt Software Technology Co ltd
Original Assignee
Shanghai Microvirt Software Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Microvirt Software Technology Co ltd filed Critical Shanghai Microvirt Software Technology Co ltd
Priority to CN201410855285.7A priority Critical patent/CN104516782B/zh
Publication of CN104516782A publication Critical patent/CN104516782A/zh
Application granted granted Critical
Publication of CN104516782B publication Critical patent/CN104516782B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及一种用于在计算设备上运行多操作系统的方法,该方法包括下列步骤:将第一操作系统作为原生操作系统运行并且将第二操作系统作为虚拟操作系统运行;以及将第二操作系统切换为原生操作系统。本发明还涉及用于在计算设备上运行多操作系统的系统以及相应的计算设备。通过本发明的方法、系统和计算设备,可以给用户提供更多的选择并且同时提高计算设备的整体性能,从而给用户提供更好的体验。

Description

用于进行智能系统运行环境切换的方法及其设备
技术领域
本发明总的来说涉及计算机操作系统领域,具体而言涉及用于在多操作系统中进行智能系统运行环境切换的方法、系统以及相应的计算设备。
背景技术
近年来,随着诸如智能手机、平板计算机等移动设备的兴起,出现了支持各种操作系统的移动设备,比如Windows、安卓、IOS、Tizen等等。然而,一个移动设备通常只能运行一个特定的操作系统,比如安卓设备可以运行安卓操作系统和安卓应用,但不能运行Windows操作系统和Windows应用。这极大地限制了移动设备对为不同操作系统开发的应用程序的支持。
针对该问题,从现有技术中公知的一种解决方案是双启动。在双启动方案中,一个移动设备可以在其存储设备中同时安装两个(或更多个)操作系统。例如,在一个移动设备中首先安装Windows操作系统,然后安装安卓操作系统。用户在每次开机时可以选择启动安卓或Windows操作系统,从而实现在同一移动设备上运行不同操作系统的相应应用程序。然而双启动的缺点是,同一时间只能运行一个操作系统,即只有当前操作系统是活动的,而另一操作系统则完全关闭。这往往给用户带来不便,比如当用户在Windows操作系统中编辑Word文档时,如果这时有微信消息被发送给不活动的另一安卓操作系统,则双启动方案并不能接收这个微信消息,也不能够提醒用户该系统有微信信息到来。
另一方案是系统虚拟化技术,即在将一个操作系统作为原生操作系统(即直接运行在硬件上的操作系统)运行的同时,通过虚拟化在该原生操作系统上将另一操作系统运行在一个虚拟机里,即作为客机(Guest)操作系统(本文将该客机操作系统也称为虚拟操作系统)运行。与前述双启动方案相比,虚拟操作系统具有如下优点:原生系统与虚拟系统之间的切换更迅速,而且虚拟系统在作为后台系统运行时仍然是活动的并可执行某些输出(如消息提醒)。然而,虚拟操作系统需要耗费较多系统资源。
发明内容
从上面可以得知,作为原生操作系统运行单个系统的双启动方案和使用虚拟机的虚拟操作系统方案各有优缺点,因此需要一种能够充分利用所述方案的优点并尽可能避免所述方案的缺点的多操作系统运行方案。
基于现有技术,本发明的任务在于,提供用于在多操作系统中进行双启动和虚拟化技术之间的智能切换的方法以及相应的计算设备,所述方法和计算设备可以改善系统性能并提供更好的用户体验。
根据本发明,该任务通过用于在计算设备上运行多操作系统的方法和系统以及相应计算设备来解决,在从属权利要求中定义本发明的扩展方案和优选方案。
在本发明的第一方面,提供了一种用于在计算设备上运行多操作系统的方法,该方法包括下列步骤:
·将第一操作系统作为原生操作系统运行并且同时将第二操作系统作为虚拟操作系统运行;以及
·将第二操作系统切换为原生操作系统。
在本发明的范围内,原生操作系统是指直接在设备的硬件上运行的操作系统,而虚拟操作系统是使用虚拟化技术在原生操作系统生成的虚拟机上运行的操作系统。原生操作系统和虚拟操作系统可以包括各种操作系统,比如安卓(Android)、Windows、IOS、Linux、Tizen等等。
通过本发明的上述切换,至少可以提供的优点是:向用户提供了将某个操作系统在双启动下的原生操作系统与虚拟化下的虚拟系统之间切换(以下也简称虚拟/原生系统之间的切换)的选项,其中原生操作系统具有更好的性能和更快的响应,而虚拟操作系统具有更迅速的双系统切换和后台系统输出,因此用户可以根据其需要或偏好来选择将某个操作系统切换为双启动下的原生操作系统或虚拟化下的虚拟操作系统,例如:当要在虚拟操作系统上运行繁重计算任务或者频繁设备访问时可以将该虚拟操作系统切换到原生操作系统,而当用户需要更迅速的双系统切换或后台系统响应时,可以选择从双启动方式到虚拟化方式,即将其中一个系统保持当前原生操作系统,而将另一个系统作为虚拟操作系统运行,从而提供了更好的系统性能和更好的用户体验。而在现有技术中,在一个设备上往往仅能固定地将某个系统作为原生操作系统或者虚拟操作系统来运行,这显然不能像本发明的方案那样灵活地利用原生操作系统和虚拟操作系统各自的优点并进而提高系统性能和用户体验。本发明不仅适用于诸如平板计算机、智能手机、个人数字助理、上网本、膝上型计算机(如超级本)等之类的便携式计算设备,而且还适用于其它计算设备、如台式机、工作站、服务器等等。
在根据本发明的一个扩展方案中,在所述计算设备上同时安装有供第一操作系统和第二操作系统在作为原生操作系统和虚拟操作系统运行时使用的驱动程序。通过这样做,可以无问题地实现双启动下的原生操作系统与虚拟化下的虚拟操作系统之间的自由切换。而在现有技术中,如上所述,由于在一个设备上仅能固定地将某个系统作为原生操作系统或者虚拟操作系统来运行,因此在现有技术中不会、也没有必要在同一个设备上安装某个系统的供其作为原生操作系统时运行时使用的驱动程序以及供其作为虚拟操作系统运行时使用的驱动程序二者,由此,本发明提供了一种新颖且高效的用于进行原生和虚拟系统切换的手段。
在本发明的一个优选方案中,所述虚拟操作系统的虚拟逻辑块地址(virtual LBA或vLBA)等于物理逻辑块地址(physical LBA或pLBA)。也就是说,使原生操作系统和虚拟机中的虚拟操作系统分别使用硬盘上的不同物理分区,从而使虚拟操作系统到原生操作系统的切换更直接和高效地进行,例如省去了分区内容转换、预留分区等操作。因此,通过该措施,可以实现快速和低成本的虚拟/原生操作系统切换。
在根据本发明的一个扩展方案中,前述方法还包括:选择原生操作系统和虚拟操作系统之一作为前台操作系统运行而另一个操作系统作为后台操作系统运行,其中前台操作系统具有全部的输入和输出设备。通过该扩展方案,可以在虚拟操作系统作为前台操作系统运行时提供独占操作系统的用户体验。所述选择可以由用户发起,例如用户按下指示将某个操作系统转换为前台操作系统的特定物理按键、输入语音等等。
但是,在此应当指出,上述前台/后台操作系统转换并不是必需的,相反其是可选的以用于提供更好的多操作系统体验。本方案同样适用于采用传统虚拟机的多操作系统,其中虚拟操作系统作为一个或多个窗口显示在原生操作系统中,用户激活相应窗口,以便向与该窗口相对应的虚拟操作系统中提供用户输入。
在根据本发明的一个优选方案中,将第二操作系统切换为原生操作系统包括:
·从用户接收表示将第二操作系统切换为原生操作系统的指示;以及
·将第二操作系统切换为原生操作系统。
通过该方案,给用户赋予了自由切换的选择权,提供了更好的用户体验。
在本发明的另一优选实施方式中,将第二操作系统切换为原生操作系统包括:
·由所述虚拟操作系统检测系统和设备的性能指标;
·当所述性能指标超过一阈值时将第二操作系统切换为原生操作系统。
该方法能够极大地提高多操作系统的性能。这是因为,该方案基于发明人的如下洞察:当某操作系统作为虚拟操作系统运行时,会有虚拟化性能损失、特别是在对设备进行访问时更是如此,因为虚拟操作系统中的许多操作需要虚拟机监视程序(VMM)的参与,而当虚拟操作系统的性能因负载过重等原因变为低下时,通过将该虚拟操作系统切换为直接在设备硬件上运行而不需要VMM参与的原生操作系统,可以极大地提高多操作系统设备的性能。如此一来,在本发明中,通过在虚拟操作系统性能低下时将其切换为原生操作系统,可以自动地保持系统的高性能运行,由此带来更好的用户体验。
在此应当注意,在本发明中,“性能指标超过一阈值”是指将性能指标与阈值相比较并作出判断,因此根据不同阈值的选取,该用语也涵盖了“性能指标等于或低于一阈值”这一情况,只要“性能指标等于或低于一阈值”这一情况指示了虚拟操作系统的性能低下。
在本发明的又一优选实施方式中,所述性能指标包括:所述虚拟操作系统的I/O访问频率包括但不限于所述虚拟操作系统的GPU I/O访问频率。该方案基于发明人的如下独到的发现:在虚拟操作系统中进行I/O设备访问时,需要被VMM陷入并交由主机上的设备模型(DM)进行模拟(该DM模拟一般利用主机的I/O以完成客机的IO模拟,该模拟可以采用设备仿真或者半虚拟化的方法);但是这种模拟既具有较大的复杂性、即花费更多CPU资源,又经历更长的IO路径;因此,在虚拟操作系统中进行I/O操作时的虚拟化性能损失也是非常明显的:对于大部分IO如网络/磁盘IO,虚拟化的性能损失大概在10%,而GPU是一个更为复杂的设备,它的IO的模拟更加复杂,性能损失也更加严重(某些情况下可能损失80%以上)。由此可见,通过有针对性地检测虚拟操作系统中的I/O访问频率、尤其是GPU I/O访问频率以作为判断是否进行虚拟/原生系统切换的性能指标,可以更加准确地进行所述切换,从而更好地提高多操作系统设备的性能。此外,将其它I/O访问频率用作所述性能指标也是可能的,比如网络I/O访问频率、磁盘I/O访问频率等等。所述I/O访问频率例如可以是所述设备I/O访问数占总I/O访问数的比例、如百分比,并且所述阈值例如可以被相应地设置为某个百分数,例如50%、60%、80%等等。可替代地,所述I/O访问频率也可以是单位时间内执行所述I/O访问的次数,并且所述阈值可以被相应地设置为某个次数、例如每秒钟10次、100次等等。
在本发明的一个扩展方案中,使用IO检测器IOD来确定所述I/O访问频率。在该扩展方案中,通过使用专门的IO检测器IOD来确定I/O访问频率,可以更好地确定所述性能指标。
在本发明的另一扩展方案中,将第二操作系统切换为原生操作系统包括:
·向运行在第一操作系统上的管理程序请求作为原生操作系统运行第二操作系统;
·将下一次重新启动时的缺省操作系统设置为第二操作系统;
·关闭操作系统;以及
·重新启动系统并且作为原生操作系统运行第二操作系统。
通过该扩展方案,可以简单、有效地进行虚拟/原生操作系统切换。
在本发明的又一扩展方案中,前述方法还包括如下步骤:
·当所述性能指标超过一阈值时询问用户是否同意将第二操作系统作为原生操作系统运行;以及
·当用户同意时将第二操作系统切换为原生操作系统。
通过该扩展方案,可以在虚拟系统性能不佳时给用户赋予是否进行虚拟/原生操作系统切换的选择权,使得由用户来判断是为了更好的性能进行该切换、还是保持当前操作系统,从而提供更好的用户体验。
在本发明的一个优选方案中,前述方法还包括:
·将第一操作系统切换为虚拟操作系统。
在该优选方案中,通过在将第二操作系统切换为原生操作系统的同时将第一操作系统切换为虚拟操作系统,可以在提高系统性能的同时仍然为用户提供多操作系统的体验,也就是说,通过该优选方案,原来的虚拟操作系统被切换为原生操作系统,而原来的原生操作系统被切换为虚拟操作系统,而对于用户而言,系统性能得到提高,同时多操作系统的体验保持不变,从而提供了更好的用户体验。将第一系统切换为虚拟操作系统例如可以通过如下方式进行:在已切换为原生操作系统的第二操作系统上通过虚拟化技术作为虚拟操作系统运行第一操作系统。
在本发明的另一优选方案中,将第二操作系统切换为原生操作系统包括:
·保存第二操作系统的第二操作系统状态;以及
·将第二操作系统切为原生操作系统并且将第二操作系统恢复到第二操作系统状态。
在该优选方案中,通过在虚拟/原生操作系统切换以前保存第二操作系统的操作系统状态,可以在所述切换以后将第二操作系统恢复到切换以前的状态,使得所述切换不给用户对第二操作系统的使用带来影响,从而给用户提供更好的体验。
在本发明的又一优选方案中,前述方法还包括:
·保存第一操作系统的第一操作系统状态;以及
·将第一操作系统切换为虚拟操作系统并且将第一操作系统恢复到第一操作系统状态。
在该优选方案中,通过在虚拟/原生操作系统切换以前附加地保存第一操作系统的操作系统状态,可以在所述切换以后附加地将第一操作系统恢复到切换以前的状态,使得所述切换不给用户对第二和第一操作系统二者的使用带来影响,相反,在提高多操作系统设备的性能的同时,保证了多操作系统的各系统的状态不变,从而给用户提供更好的体验。
在本发明的另一优选方案中,第一操作系统状态和第二操作系统状态包括用户应用的状态和相应用户数据。这样做是有利的,因为对用户而言,用户应用的状态和用户数据相对于操作系统本身的状态而言是更加重要的,因此通过该优选方案,可以以较低系统开销将操作系统恢复到用户满意的状态,从而给用户提供良好的用户体验。
在本发明的第二方面,提供了一种用于在计算设备上运行多操作系统的系统,该系统包括:
·用于将第一操作系统作为原生操作系统运行并且同时将第二操作系统作为虚拟操作系统运行的装置;以及
·用于将第二操作系统切换为原生操作系统的装置。
在本发明的第三方面,提供了一种计算设备,该计算设备具有:
·存储器,其上存储有可执行指令
·处理器,其被配置为执行可执行指令以执行下列操作:
将第一操作系统作为原生操作系统运行并且同时将第二操作系统作为虚拟操作系统运行;以及
将第二操作系统切换为原生操作系统。
在本发明的一个优选方案中,所述操作还包括:
由所述虚拟操作系统检测系统和设备的性能指标;以及
当所述性能指标超过一阈值时将第二操作系统切换为原生操作系统。
在本发明的一个优选方案中,所述步骤还包括:选择原生操作系统和虚拟操作系统之一作为前台操作系统运行而另一个操作系统作为后台操作系统运行,其中前台操作系统具有全部的输入和输出设备。
在本发明的一个优选方案中,所述步骤还包括:
从用户接收表示将第二操作系统切换为原生操作系统的指示;以及
将第二操作系统切换为原生操作系统。
在本发明的一个优选方案中,其中所述性能指标包括:所述虚拟操作系统的I/O访问频率、包括但不限于所述虚拟操作系统的GPU I/O访问频率。
在本发明的一个优选方案中,所述步骤还包括:
将第一操作系统切换为虚拟操作系统。
在本发明的一个优选方案中,其中所述虚拟操作系统的虚拟逻辑块地址(vLBA)等于物理逻辑块地址(pLBA)。
附图说明
下面参考附图根据多个实施例来进一步阐述本发明。附图:
图1A和1B示出了使用根据本发明的方法的移动设备在进行虚拟/原生操作系统切换以前和以后的示意图;
图2A和2B示出了根据本发明的系统架构,其中图2A示出了该系统架构在虚拟/原生操作系统切换以前的状态,而图2B示出了该系统架构在该切换以后的状态;以及
图3示出了根据本发明的用于运行多操作系统的方法的流程图。
具体实施方式
尽管在下面参考附图对本发明的实施例的描述中,以运行安卓和Windows操作系统的平板计算机为例阐述了本发明的原理,但是应当理解,本发明并不限于此,而是本发明还可以应用于诸如智能手机、个人数字助理(PDA)、上网本、膝上型计算机之类的其它便携式计算设备、诸如台式机、服务器、工作站之类的其它计算设备、以及诸如Tizen、Linux之类的其它操作系统。
此外,尽管本发明是以运行两个操作系统为例进行说明的,但是本发明也可用于运行两个以上的操作系统,即一个原生操作系统和多个虚拟操作系统。
图1A和图1B分别示出了根据本发明的系统架构在虚拟/原生操作系统切换以前的状态以及在该切换以后的状态。图1A示出了平板计算机100在以安卓操作系统为原生系统时的快照,图1B示出了该平板计算机100在将Windows操作系统切换为原生系统以后的快照。
从图1A中可以看出,平板计算机100具有典型的安卓用户界面104,该安卓操作系统直接运行在设备硬件上,因此被称为原生操作系统。在图1A中示出的作为原生操作系统运行的安卓操作系统上,还借助于虚拟化技术运行有虚拟操作系统、即在本实施例中为Windows操作系统(未示出)。而在图1B的图示中示出了原生/操作系统切换以后、即在将Windows操作系统从虚拟操作系统切换为原生操作系统以后的状态。如图1B中所示,在该切换后,平板计算机100具有拥有Metro窗格106的Windows界面105,该Window操作系统直接运行在设备硬件上,因此是原生操作系统。在图1B中,在作为原生操作系统运行的Windows操作系统上,还可以可选地借助于虚拟化技术运行虚拟操作系统、即在本实施例中为安卓操作系统(未示出)。应当指出,尽管在所切换到的原生操作系统上运行虚拟操作系统可以改善用户体验,但是这不是必需的,而是可由用户选择。
此外,在本实施例中,在同一设备上,用户可以选择原生操作系统和虚拟操作系统之一作为前台操作系统运行,而另一个则作为后台操作系统运行,其中前台操作系统具有全部的用户输入和输出设备,由此在虚拟操作系统作为前台操作系统运行时提供独占操作系统的用户体验。用户可以通过各种方式将原生操作系统或虚拟操作系统转换为前台操作系统、例如按下特定物理按键(例如平板计算机100的物理按键、如音量+键101和音量-键102、Home键103等等)、语音输入等等。
但是,在此应当指出,上述前台/后台操作系统转换并不是必需的,相反其是可选的以用于提供更好的多操作系统体验。本方案同样适用于采用传统虚拟机的多操作系统,其中在同一设备上,用户可以选择将虚拟系统的输入/出作为主机系统的一个窗口运行。针于该窗口的输入被用作该虚拟系统的输入,而该虚拟系统的输出则输出到该窗口。
在本发明中,为了实现高效的虚拟/原生操作系统切换,可以采用下列措施中的一个或多个:
(1)在运行所述双系统运行方法的计算设备上同时安装有供第二操作系统在作为原生操作系统和虚拟操作系统运行时使用的驱动程序,可选地在所述计算设备上还同时安装有供第一操作系统在作为原生操作系统和虚拟操作系统运行时使用的驱动程序。通过这样做,可以无问题地实现双启动下的原生操作系统与虚拟化下的虚拟操作系统之间的自由切换;以及
(2)使虚拟操作系统的虚拟盘等于物理盘。也就是说,分配给虚拟系统的分区与物理盘中的分区相同,即位于该盘的原始地址处(虚拟逻辑块地址vLBA=物理逻辑块地址pLBA),具体过程请参阅本发明人的名为“Supporting Multiple Operating SystemEnvironment in a Computing Device without Contents Conversion”的专利申请(案号为P69026PCT/45631-230416),该专利的公开内容通过引用并入本申请。也就是说,通过上述措施,使原生操作系统和虚拟机中的虚拟操作系统分别使用硬盘上的不同物理分区,从而使虚拟操作系统到原生操作系统的切换更直接和高效地进行,例如省去了分区内容转换、预留分区等操作。因此,通过该措施,可以实现快速和低成本的虚拟/原生操作系统切换。
在本申请中,可以通过多种方式来指示将虚拟操作系统切换到原生操作系统。一种方式是通过用户选择,例如用户在需要在虚拟系统上执行繁重任务时可以选择将虚拟操作系统切换到原生操作系统。用户可以通过各种用户输入方式来进行该切换,例如按下平板计算机100的物理按键、如音量+键101和音量-键102、Home键103等等。当然,还可以设想其它用户输入,比如语音输入、触摸输入、手势输入等等。响应于所述用户输入,用户设备将虚拟操作系统、即Windows操作系统切换到原生操作系统。附加地,在该切换后,用户还可以指示在Windows操作系统上以虚拟化技术生成虚拟机环境以运行虚拟操作系统、即安卓操作系统。从图1B中可以看出,Windows操作系统作为原生操作系统在平板计算机100上运行,并具有原生操作系统所具有的更好的性能,从而给用户提供更佳的体验。
另一种方式是系统根据性能指标进行所述切换。例如,在切换前(即图1A所示状态),虚拟操作系统例如在作为前台操作系统(或窗口)运行时检测系统和设备的性能指标、例如I/O。该检测例如可以通过虚拟操作系统中的I/O检测器来执行。当所述性能指标超过某阈值时、例如当所述访问频率超过某个极限值时,自动地或者在用户同意的情况下将虚拟操作系统切换为原生操作系统。所述阈值可以由用户设置,也可以由设备厂商预设。例如,该阈值可以设置为GPU I/O访问数占所有I/O访问数的一定百分比、如50%、优选60%、更优选80%,或者该阈值被设置为单位时间内执行的GPU I/O访问数、如每秒钟10次、100次等等。其它的阈值设置也是可能的。
通过所述切换,不仅给用户提供了更多的选项,更重要的是,虚拟操作系统在切换到原生操作系统以后,整个系统性能大大提高,例如模拟GPU I/O等操作所带来的系统开销大大降低,从而极大地提高了整体系统性能,提供了更好的用户体验。
图2A和图2B分别示出根据本发明的系统架构在虚拟/原生操作系统切换以前的状态和在该切换以后的状态。
如图2A所示,第一操作系统OS1(在本实施例中为安卓操作系统)的内核201直接运行在设备硬件上,因此是原生操作系统,而第二操作系统OS2(在本实施例中为Windows操作系统)的内核202以虚拟化技术运行在OS1上(具体而言,OS1上的虚拟机中),因此是虚拟操作系统。虚拟化技术是本领域公知的技术,为了不模糊本发明,在此不加以详细展开。关于虚拟机技术,例如可以参阅Xen和KVM虚拟机架构。
在OS1的内核201中运行有支持虚拟化的虚拟机监视程序(Virtual MachineMonitor)VMM 208。
在OS1中还运行有设备模型(device model简称DM)205。设备模型205用于处理从计算设备(在此为平板计算机100,其它计算设备、如膝上型计算机、台式机也是可能的)的输入设备(在此为触摸屏,其它的输入设备、如键盘、鼠标也是也能的)上接收到的用户点击、击键、语音、手势等输入事件。设备模型根据这些输入事件为虚拟操作系统生成相应的模拟所述输入事件的虚拟输入事件。附加地,为了提供更好的用户体验,设备模型还可以负责前台/后台操作系统转换,其具体过程如下:如果所述输入事件是表示将操作系统转换为前台操作系统的输入事件,则设备模型205执行相应的系统切换。如果不是,则设备模型205可以为虚拟操作系统202产生模拟该输入事件的虚拟输入事件,并可能产生相应的虚拟输入中断以便通知虚拟操作系统202处理这个虚拟输入事件,使得通过设备模型205,可以实现前台操作系统具有全部的输入和输入设备这一用户体验,而不管前台操作系统是作为原生操作系统还是作为虚拟操作系统运行。
在OS1中还运行有管理程序(Governor)206。管理程序206在用户请求下或者在系统发起的情况下(不管当前OS2是否在运行),主动通过设置系统的MBR或者GPT将下一次重新启动时的缺省OS设为OS2,并且通知OS2操作系统关闭,关闭OS1并重新启动系统进入原生OS2系统。通过管理程序206,可以实现简单和快速的虚拟/原生操作系统切换。
在OS1上还运行有应用203、例如用户应用、系统应用,比如安卓版微信、网页浏览器等等。同样,在OS2上也可以运行应用204,如Windows版微信、IE浏览器等等。
在OS2上还运行有I/O检测器207。I/O检测器207例如在OS2作为前台操作系统运行时检测I/O访问频率、例如GPU I/O访问频率。并且当所述I/O访问频率超过某阈值时,通知管理程序206将OS2切换为原生操作系统。例如,当GPU I/O访问数超过所有I/O访问数的50%时、或者超过每秒10次时,通知管理程序206将OS2切换为原生操作系统。
图2B示出了系统架构在执行虚拟/原生操作系统切换以后的状态。如图2B所示,此时OS2的内核202直接运行在设备硬件上,因此是原生操作系统,而OS1的内核201作为虚拟操作系统运行在OS2上。注意,OS1是以虚线框示出的,以表明OS1作为虚拟操作系统运行在OS2上不是必需的,而是可以由用户选择或者由厂家预设,以提供更好的用户体验。例如,OS1可以在原生操作系统OS2启动以后根据用户选择运行在OS2上,并且例如可选地也可以根据用户选择被转换为前台操作系统,以便提供更好的双系统用户体验。
此时,在原生操作系统OS2上运行有设备模型205’、管理程序206’,并且在OS2的内核202中运行有VMM 208’,而在OS1上运行有I/O检测器207’。这些组件的功能与在图2A中类似,在此就不加以赘述。注意,设备模型205’、管理程序206’、VMM 208’、I/O检测器207’是以带有“’”的附图标记示出的,因为这些程序组件可能因在不同操作系统中而不同,也就是说,这些组件在安卓操作系统中运行的版本可能不同于在Windows操作系统中运行的版本。
此外,在图2A和2B中,OS2同时具有供OS2作为原生操作系统和虚拟操作系统运行时使用的驱动程序(未示出)。可选地,OS1也同时具有供OS1作为原生操作系统和虚拟操作系统运行时使用的驱动程序(未示出)。例如,如果OS2应当作为原生操作系统运行,则在OS2在启动时设备会自动探测设备(主要是PCI设备)的存在并加载OS2的用于原生操作系统的驱动程序。而如果OS2应当作为虚拟操作系统运行时,则VMM通过设备模型向OS2提供等同于真实硬件的设备列举方法并加载OS2的用于虚拟操作系统的驱动程序。驱动程序的加载过程是本领域公知的,为了不模糊本发明,在此不加以详细展看。关于驱动程序的加载,例如可以参考以下参考文献:http://en.wikipedia.org/wiki/PCI_configuration_space。通过OS2和OS1同时具有所述驱动程序,可以实现虚拟/原生操作系统之间的自由切换。
而且,OS2在作为虚拟操作系统时的虚拟逻辑块地址等于物理逻辑块地址,使得OS2从虚拟操作系统切换为原生操作系统的切换可以像原生操作系统之间的切换那样直接和快速地进行,而不需要额外的操作。同理,OS1在从原生操作系统切换到虚拟操作系统以后的虚拟逻辑块地址也可以等于其作为原生操作系统运行时的物理逻辑块地址,由此实现简单、快速的切换。
图3示出了根据本发明的用于运行多操作系统的方法的流程图300。在图3中,以虚线框示出的步骤是可选的步骤。
在步骤302,将第一操作系统作为原生操作系统运行并且将第二操作系统作为虚拟操作系统运行。
在可选步骤304,由用户将作为虚拟操作系统运行的第二操作系统转换为前台操作系统,其中前台操作系统具有全部的输入和输出设备。该转换如前所述可以由用户通过按下特定物理按键进行。前台操作系统能够给用户提供独占操作系统的用户体验,而不管前台操作系统是原生操作系统还是虚拟操作系统。在此同样应当注意,前台/后台操作系统转换不是必需的,而是可选的。同样可以使用采用传统虚拟机的虚拟化技术。
在可选步骤306,由作为虚拟操作系统运行的第二操作系统检测设备和该系统的性能指标,并且在该指标超过某阈值时指示将第二操作系统切换为原生操作系统。所述性能指标例如可以是GPU I/O访问频率并且该检测例如可以由虚拟操作系统中运行的I/O检测器进行。可替代地,在步骤306可以从用户接收表示将第二操作系统切换为原生操作系统的指示。
在可选步骤308,保存第二操作系统的系统状态,并且可选地还可以保存第一操作系统的系统状态,以供在虚拟/原生操作系统切换以后将相应系统恢复到该切换以前的状态。所述系统状态例如包括用户应用的状态和相应的用户数据。
在步骤310,将第二操作系统切换为原生操作系统。该切换例如可以由管理程序206在用户请求下或者在系统发起的情况下通过主动设置系统的下一次重新启动时的缺省OS来进行。
在可选步骤312,在切换为原生操作系统的第二操作系统上以虚拟化技术生成虚拟机以运行第一操作系统。该步骤312可以根据用户输入或者自动地进行,以提供更好的多系统用户体验。
在可选步骤314,根据在步骤308保存的第一操作系统和第二操作系统的系统状态,按用户要求或者以上说明的方法,分别将作为原生操作系统运行的第二操作系统和作为虚拟操作系统运行的第一操作系统恢复到虚拟/原生切换以前的系统状态。系统状态的保存和恢复是本领域公知的,为了不模糊本发明,在此不加以详细展开。
虽然本发明的一些实施方式已经在本申请文件中予以了描述,但是对本领域技术人员显而易见的是,这些实施方式仅仅是作为示例示出的。本领域技术人员可以想到众多的变型方案、替代方案和改进方案而不超出本发明的范围。所附权利要求书旨在限定本发明的范围,并藉此涵盖这些权利要求本身及其等同变换的范围内的方法和结构。

Claims (15)

1.一种用于在计算设备上运行多操作系统的方法,该方法包括下列步骤:
将第一操作系统作为原生操作系统运行并且将第二操作系统作为虚拟操作系统运行,所述原生操作系统是直接在设备的硬件上运行的操作系统,所述虚拟操作系统是使用虚拟化技术在原生操作系统上生成的虚拟机上运行的操作系统;
第二操作系统检测设备和系统的性能指标,并且在该指标超过一阈值时指示将第二操作系统切换为原生操作系统,所述性能指标包括所述虚拟操作系统的I/O访问频率,所述虚拟操作系统的I/O访问频率包括所述虚拟操作系统的GPU I/O访问频率;以及
在切换为原生操作系统的第二操作系统上以虚拟化技术作为虚拟操作系统运行第一操作系统。
2.根据权利要求1所述的方法,其特征在于,还包括:
选择原生操作系统和虚拟操作系统之一作为前台操作系统运行而另一个操作系统作为后台操作系统运行,其中前台操作系统具有全部的输入和输出设备。
3.根据权利要求1所述的方法,其特征在于,虚拟操作系统具有后台系统输出。
4.根据权利要求1所述的方法,其特征在于,将第二操作系统切换为原生操作系统还包括:
从用户接收表示将第二操作系统切换为原生操作系统的指示;以及
将第二操作系统切换为原生操作系统。
5.根据权利要求1至4之一所述的方法,特征在于还包括:
将第一操作系统切换为虚拟操作系统。
6.根据权利要求1所述的方法,其特征在于,所述阈值设置为所述虚拟操作系统的GPUI/O访问数占所述虚拟操作系统的I/O访问数的百分比,或者,所述阈值设置为单位时间内执行的GPU I/O访问数。
7.根据权利要求6所述的方法,其特征在于,使用IO检测器IOD来确定所述I/O访问频率。
8.根据权利要求1所述的方法,其特征在于,在所述计算设备上同时安装有供第一操作系统和第二操作系统在作为原生操作系统和虚拟操作系统运行时使用的驱动程序。
9.根据权利要求1所述的方法,其特征在于,所述虚拟操作系统的虚拟逻辑块地址(vLBA)等于物理逻辑块地址(pLBA)。
10.根据权利要求1所述的方法,其特征在于,将第二操作系统切换为原生操作系统包括:
向运行在第一操作系统上的管理程序请求作为原生操作系统运行第二操作系统;
将下一次重新启动时的缺省操作系统设置为第二操作系统;
关闭操作系统;以及
重新启动系统并且作为原生操作系统运行第二操作系统。
11.根据权利要求3所述的方法,特征在于还包括:
当所述性能指标超过一阈值时询问用户是否同意将第二操作系统作为原生操作系统运行;以及
当用户同意时将第二操作系统切换为原生操作系统。
12.根据权利要求1所述的方法,其特征在于,将第二操作系统切换为原生操作系统包括:
保存第二操作系统的第二操作系统状态;以及
将第二操作系统切为原生操作系统并且将第二操作系统恢复到第二操作系统状态。
13.根据权利要求12所述的方法,特征在于还包括:
保存第一操作系统的第一操作系统状态;以及
将第一操作系统切换为虚拟操作系统并且将第一操作系统恢复到第一操作系统状态。
14.根据权利要求13所述的方法,其特征在于,第一操作系统状态和第二操作系统状态包括用户应用的状态和相应用户数据。
15.一种计算设备,该计算设备具有:
存储器,其上存储有可执行指令;
处理器,其被配置为执行可执行指令以执行根据权利要求1所述的方法的步骤。
CN201410855285.7A 2014-12-26 2014-12-26 用于进行智能系统运行环境切换的方法及其设备 Active CN104516782B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410855285.7A CN104516782B (zh) 2014-12-26 2014-12-26 用于进行智能系统运行环境切换的方法及其设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410855285.7A CN104516782B (zh) 2014-12-26 2014-12-26 用于进行智能系统运行环境切换的方法及其设备

Publications (2)

Publication Number Publication Date
CN104516782A CN104516782A (zh) 2015-04-15
CN104516782B true CN104516782B (zh) 2020-05-12

Family

ID=52792137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410855285.7A Active CN104516782B (zh) 2014-12-26 2014-12-26 用于进行智能系统运行环境切换的方法及其设备

Country Status (1)

Country Link
CN (1) CN104516782B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569842A (zh) * 2015-10-09 2017-04-19 中兴通讯股份有限公司 操作系统的启动方法及装置
CN105677463B (zh) * 2015-12-31 2019-06-14 北京元心科技有限公司 一种实现系统间协同切换的方法和装置
CN106155905B (zh) * 2016-06-28 2019-06-07 广州华多网络科技有限公司 应用环境切换方法以及装置
CN107479943B (zh) * 2017-07-03 2020-02-21 北京东土科技股份有限公司 基于工业互联网操作系统的多操作系统运行方法及装置
CN109669764B (zh) * 2017-10-13 2023-08-01 斑马智行网络(香港)有限公司 处理方法、装置、设备和机器可读介质
CN109918981B (zh) * 2018-09-18 2020-11-10 徐州轩科农业机械有限公司 Ios终端健壮维护系统
CN109947298B (zh) * 2019-03-28 2022-08-19 努比亚技术有限公司 系统调用方法、终端及计算机可读存储介质
CN110018894A (zh) * 2019-04-09 2019-07-16 西安外事学院 一种基于Android容器的多系统与单系统切换方法及装置
CN110442389B (zh) * 2019-08-07 2024-01-09 北京技德系统技术有限公司 一种多桌面环境共享使用gpu的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927227A (zh) * 2014-04-16 2014-07-16 乐视致新电子科技(天津)有限公司 多操作系统的切换方法和装置、及智能电视
CN104360900A (zh) * 2014-11-03 2015-02-18 上海迈微软件科技有限公司 用于运行多操作系统的方法以及相应的系统和移动设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927227A (zh) * 2014-04-16 2014-07-16 乐视致新电子科技(天津)有限公司 多操作系统的切换方法和装置、及智能电视
CN104360900A (zh) * 2014-11-03 2015-02-18 上海迈微软件科技有限公司 用于运行多操作系统的方法以及相应的系统和移动设备

Also Published As

Publication number Publication date
CN104516782A (zh) 2015-04-15

Similar Documents

Publication Publication Date Title
CN104516782B (zh) 用于进行智能系统运行环境切换的方法及其设备
CN104360900B (zh) 用于运行多操作系统的方法以及相应的系统和移动设备
US11307868B2 (en) Techniques for switching between operating systems
US9372711B2 (en) System and method for initiating a multi-environment operating system
CN104598294B (zh) 用于移动设备的高效安全的虚拟化方法及其设备
US20160188345A1 (en) Method of a UEFI firmware and Computer System thereof
CN105940375B (zh) 针对多操作系统设备的动态再分配
KR20120030559A (ko) 다중 환경 운영 시스템에서 환경을 전환하는 시스템 및 방법
CN101526901B (zh) 一种电脑中查看文件的方法及装置
US8103908B2 (en) Method and system for recovery of a computing environment during pre-boot and runtime phases
KR20070075162A (ko) 운영체제 스위칭 장치 및 방법
US9715267B2 (en) Method for switching operating systems and electronic apparatus
US9164788B2 (en) Apparatus and method for automatic para-virtualization of OS kernel
US20150324209A1 (en) Operating System Switching Method and Dual-Operating System Electronic Device Using the Same
CN103870295B (zh) 切换方法和电子设备
KR20130068630A (ko) 임베디드 디바이스의 초기화 방법 및 장치
KR20130067526A (ko) 가상 환경 관리 방법 및 이를 이용한 단말 장치
US20130097412A1 (en) Performing A Boot Sequence In A Multi-Processor System
CN103902317A (zh) 操作方法和电子设备
Sun et al. Supporting Multiple OSes with OS Switching.
US20180284938A1 (en) Touch screen support by emulating a legacy device
WO2016014017A1 (en) Operating system device access using a virtual machine
JP2014531099A (ja) 動作コンテキストの切り替え
KR20120001105A (ko) 단일 운영체제 시스템에서의 다중 운영체제 지원방법 및 그를 위한 장치
TW201322129A (zh) 電子裝置與其作業系統切換方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant