在多环境操作系统中多个环境之间切换的系统和方法与流程

文档序号:13145765阅读:176来源:国知局
本申请是分案申请,原案的申请日是2010年7月20日,国家申请号是201080032515.X,发明名称是“在多环境操作系统中多个环境之间切换的系统和方法”。技术领域本发明整体涉及用于在不同操作环境之间切换的多环境操作系统和方法。

背景技术:
通常基于特定应用和用户期望性能设计并优化操作系统。由于用户优选的程序可以是依赖操作系统的,通常期望具有一种类型的操作系统可应用于另一操作系统的特征。诸如LinuxTM和WindowsTM的通用计算机操作系统具有广泛的一组特征,诸如,文件系统、设备驱动器、应用、库等。这样的操作系统允许多个程序同时执行,以及与同时执行程序的服务相关的最优化响应时间(还称为等待时间)以及CPU利用率或负载的尝试。然而,不幸的是,这样的操作系统通常不适用于嵌入式实时应用,诸如,用于移动计算设备。在特定环境下,期望移动计算设备具有与移动专用嵌入式操作系统相关的性能和通用操作系统的特征。例如,Linux是众所周知的通用桌面操作系统,具有用于现代设备的许多期望特征,包括现代操作系统特征、大量开发工具、网络连接等。然而,Linux不是被设计为嵌入式或实时操作系统。很多现代设备,诸如而不限于,机顶盒、移动电话以及汽车导航系统不仅要求诸如Linux的通用操作系统的特征,而且还要求嵌入式或实时操作系统的特征,包括实时性能。历史上,在单个设备上运行多个操作环境已经通过虚拟化技术实现,诸如,例如,VMwareTM、VirtualBoxTM、QEMUTM等。然而,当使用虚拟化时,仿真整个计算机并且一个或多个软件堆栈在所仿真的计算设备中操作。仿真造成高开销成本。鉴于以上,需要一种实现单内核环境的系统,其有效地和便利地提供共存的独立操作系统的性能和特征。

技术实现要素:
根据本发明的至少一个实施例,提供一种从移动设备的第一操作环境切换至第二操作环境的方法。该方法包括:发起耦合至核心内核的至少两个共存的独立中间件操作环境,其中,中间件操作环境中的每个都具有对应的应用组件。另外,该方法包括:至少部分地基于设备操作接收模式状态初始化改变信号,释放设备的第一操作环境控制,并且启动所述设备的第二操作环境控制。根据本发明的至少一个实施例,提供了一种移动设备操作系统,该移动设备操作系统具有被配置成互连设备硬件组件和中间件组件的核心内核。该系统包括耦合至核心内核的至少两个共存的独立中间件操作环境,中间件操作环境中的每个都具有对应的应用组件。根据又一实施例,提供了一种移动计算设备,该移动计算设备具有位于公共内核上的第一独立操作系统和第二独立操作系统。该设备还包括:处理器,被配置成至少部分地基于计算机可执行指令,在第一操作环境和第二操作环境之间切换设备的主控制。根据另一实施例,操作移动计算设备的方法包括:发起具有在公共内核上的至少两个独立操作系统的移动设备的操作,以及识别主操作系统和辅助操作系统。该方法还包括:在主操作系统控制设备时,启动辅助操作系统应用。根据本发明的另一实施例,提供了一种移动计算设备,该移动计算设备具有耦合至计算机处理器的存储器存储单元。存储器存储单元包括计算机可执行指令,计算机可执行指令能够操作在公共内核上的至少两个操作系统环境。根据又一可选实施例,提供了一种移动电话,该移动电话具有被配置成接收和发送多媒体信息的图形用户界面。该电话包括具有耦合至存储器存储单元的处理器的计算系统,以及具有公共内核的多环境操作系统。存储器存储单元包括计算机可执行指令,计算机可执行指令能够管理在至少两个共存的独立操作系统环境之间共享的资源。根据可选实施例,本发明包括一种移动计算设备,该移动计算设备具有耦合至计算机存储器的计算机处理器,计算机存储器具有计算机可执行指令,计算机可执行指令被配置成发起操作系统。该设备还包括一种操作系统,该操作系统被配置成在单内核上同时运行标准Linux分布式操作系统环境和AndroidTM操作系统环境。根据又一可选实施例,本发明包括一种移动设备操作系统,该移动设备操作系统具有被配置成互连设备硬件组件和中间件组件的核心内核。该设备还包括:第一独立中间件操作环境,被配置成运行JAVA-解释的应用并且耦合至核心内核;以及第二独立中间件操作环境,被配置成运行本地应用并且耦合至核心内核。附图说明图1是移动设备的示例性透视图;图2是表示示例性操作系统的框图;图3是示例性操作系统的框图;图4是示例性操作系统的运行时共存方案的框图;图5是示例性操作系统的内部环境通信方案的框图;图6是标识用于示例性操作系统的引导序列的步骤的流程图;图7是标识用于在由第二操作环境控制示例性操作系统时,在第一操作环境中启动应用的示例性步骤的流程图;图8是标识用于在第一操作环境进行主控制时,启动第二操作环境应用的示例性步骤的消息序列图;图9是标识与从第一操作环境切换至第二操作环境相关的示例性步骤的流程图;图10是标识用于从第一操作环境切换至第二操作环境的示例性步骤的消息序列图;图11是标识用于从第二操作环境切换至第一操作环境的示例性步骤的消息序列图;图12是标识在第二操作环境进行计算设备的主控制时,由第一操作环境控制的应用的示例性使用的流程图。具体实施方式可以预想到,使嵌入式操作系统和基于Linux的操作环境与在计算设备的硬件上直接运行的单Linux内核直接通信是有利的。参考图1,提供移动电话10。该电话10包括GUI12和多个数据输入按钮14。移动设备10选自下组,该组包括但不限于:移动个人计算机(PC)、上网本、移动电话、膝上型计算机、手持计算机和智能手机。虽然设备10是移动的,但是其具有显著的计算能力,处理器速度超过500mHz,但是不排除较慢的处理器。考虑到计算能力,用户可以将设备10连接至多个外围设备(未示出)。外围设备选自下组,该组包括但不限于:计算机监视器、膝上型计算机、台式计算机、平板PC以及屏幕投影仪。现在参考图2,提供了与内核18通信的示例性操作系统(OS)16的框图。OS16可以是Linux分布式系统、基于Linux的操作系统或非基于Linux的操作系统。设备硬件20也与Linux内核18通信。操作系统16包括与单Linux内核18通信的第一操作系统环境22和第二操作系统环境24。例如,第二中间件操作系统环境24是标准Linux分布,并且第一中间件操作系统环境22是意图用于移动设备的嵌入式操作系统环境,诸如AndroidTM(开放手机联盟,www.openhandsetalliance.com)操作系统。Linux分布16与Linux内核18通信,Linux内核18与设备硬件20通信。设备硬件20可以是耦合至处理器(未示出)的存储器存储设备(未示出),其存储被配置成执行多种功能和操作的计算机可执行指令,如在此描述的。示例性操作系统16包括用于基于Linux的操作系统环境24的(CanonicalLtd.,www.ubuntu.com)。特别地,意图是多个中间件操作系统环境独立于其他共存。可以包括在操作系统16中的示例性环境包括AndroidTM、(CanonicalLtd.,www.ubuntu.com)、标准的基于Linux的环境、Symbian(SymbianFoundationLtd.,www.symbian.com)以及基于Windows的环境。在可选实施例中,可以想到多于两个操作系统环境被配置成在同一核心内核18上独立地共存。参考图3,提供了示例性操作系统的框图。在本示例性实施例中,第一OS环境22是基于AndroidTM的操作环境,并且第二OS环境24是基于Linux的。第一操作系统环境22包括门户服务模块26、门户活动模块28、OS服务模块30以及OS应用模块32。第二操作系统环境24包括资源管理器34、窗口中Android(AIW)模块、第二OS应用模块38以及第二OS服务模块40。AIW模块36被配置成在第二OS24是主操作环境时,在GUI12上显示第一OS22应用窗口。门户服务模块26包含被配置成允许用于第一OS22的服务并且指引与资源管理器34的所有通信的指令集。当设备10正在操作时,门户服务模块26优选地一直运行。另外,门户服务模块26连接至与门户活动模块28相关的活动,以及第一OS22广播事件。门户活动模块28是应用或者计算机可执行指令集,其表示位于第一OS22堆栈上的第二OS24应用。例如,如果第二OS24是则门户活动模块28可以表示特定Ubuntu应用,并且当门户活动模块28具有焦点时,通过GUI12观察Ubuntu。大量应用可以在任意给定操作环境内同时运行,也被称为运行应用的堆栈。按照逻辑上说,最上面的应用被认为具有“焦点”。内核18包括驱动器42集和AEV模块44。包括在驱动器42中的是用于硬件组件20的输入设备驱动器。AEV44是从AIW36获取绝对坐标和键盘事件并且将其传送至事件集线器的内核模块。操作系统16内的共存环境相互通信。作为第二OS24的一部分的资源管理器34与作为第一OS22的一部分的门户服务模块26直接通信。而且,作为第一OS22的一部分的门户服务模块26与资源管理器34直接通信。资源管理器34是被配置成管理由第一OS22和第二OS24共享的资源的指令集。共享的资源包括显示设备、输入设备、功率管理服务和系统状态信息。而且,资源管理器34被配置成控制OS22、24对硬件20的访问。另外,资源管理器34识别和控制哪个OS22、24用户界面通过GUI12来显示。根据本实施例,门户服务26是从第一OS22到资源管理器34的所有通信的源。另外,门户服务26是从资源管理器34到第一OS22的所有回调的信宿。资源管理器向门户服务26提供可发现状况的应用编程接口(API)。该API被配置成在任何时间由资源管理器34调用。资源管理器34被配置成获得和处理运行时状况,这允许资源管理器维护状态机。对于第一OS22,门户服务26将运行时状况提供至需要它们的处理。类似地,门户服务26要求并且接收来自提供状况信息的处理的状况更新。用于第二OS24的类似通信由资源管理器34控制,资源管理器34将运行时状况提供至需要它们的处理。资源管理器34要求和接收来自提供状况信息的多种处理的状况更新。在逻辑上与内核18相关的设备驱动器42与资源管理器34以及提供运行时状况信息的处理直接通信。例如,API仲裁访问用户界面设备,诸如,显示器、触摸屏或GUI12。又一示例,API仲裁访问功率输入设备,诸如,电池和/或AC/DC墙上插头。第一OS22和第二OS24相互独立,并且相互共存。每个OS22、24都是全功能操作系统环境,并且不需要另一个操作系统环境起作用。两个操作系统环境存在于同一设备10上,并且相互之间100%独立。如上所述,第一和第二OS22、24不以虚拟化或仿真方案共存,而实际上,在单内核18上操作。作为代替,存在运行时共存,其中,OS22、24都在各自本地环境中运行并且OS22、24都不重新编译,因为不需要利用公共C运行时环境。应用可以由用户访问,应用可以完全地被编码用于OS22、24的一个或另一个,而不中断用户的计算体验。参考图4,框图提供对于OS22和UbuntuTMOS24的示例性共存方案。每个OS22、24都在分开的运行时环境上操作,分开的运行时环境在设备10操作时提供用于程序和/或处理的软件服务。Android处理46和Android库48访问BionicC库50,BionicC库50特别对于Android环境进行了优化和修改。Ubuntu处理52和Ubuntu库54访问GlibcC库56,GlibcC库56是在许多标准台式基于Linux系统中使用的GNUC库。每个OS环境都在其各自的C库上运行,而不与另一操作环境冲突。参考图5,提供了在图4中描述的第一OS22和第二OS24之间的更详细通信路径。内部处理通信(IPC)系统被配置成管理在第一OS22和第二OS24之间的内部环境通信流。门户服务26与“DBUS绑定”58通信,“DBUS绑定”58是包含被配置成与DBUS库60通信的编程语言和可执行指令的软件包。资源管理器34与“GlibDBUS绑定”62通信,“GlibDBUS绑定”62也是包含被配置成与DBUS库64通信的编程语言和可执行指令的软件包,DBUS库64被配置用于第二OS24。第一OS22DBUS库60和第二OS24库64都通过DBUS守护进程66通信,DBUS守护进程66在逻辑上是第二OS24的一部分,并且用作两个操作环境之间的通信链路。参考图6,提供表示引导序列的流程图。引导序列包括公共步骤和操作系统环境专用步骤。实际引导序列取决于与支配引导序列的预定的设备状态相关的规则。例如,如果设备连接至外围设备,诸如,监视器,则设备状态被认为处于停驻模式,并且第二OS24为默认主环境。可替换地,如果设备10不连接至外围设备,则其处于移动模式,并且第一OS22是默认主操作环境。然而,辅助操作环境与主环境同时被启动并且在背景中操作,并且在设备10状态改变的情况下辅助环境被切换为变为主环境。例如,当设备10处于停驻模式并且拔掉外围设备时,存在到移动模式的自动切换,这导致辅助环境变为主环境,并且反之亦然。在步骤68发起引导序列,之后在步骤70启动核心Linux内核18。引导装载程序在启动内核之前初始化。在Linux内核18被初始化之后,在步骤72内核启动用户空间脚本。在步骤74启动资源管理器34,之后在步骤76识别模式状态。一旦识别出模式状态,就在步骤78访问参考库,以确定与被识别的模式状态相关和/或由其支配的准则。在步骤80,启动第一OS22和第二OS24共有的服务。在步骤82参考在步骤76确定的模式状态。如果识别出移动状态,则第一OS22是主操作环境,则在步骤84启动第一OS初始化脚本,之后在步骤86启动第二OS初始化脚本。如果在步骤82参考停驻状态,则第二OS24是主操作环境,并且然后在步骤88启动第二OS24初始化脚本,之后在步骤90启动第一OS22初始化脚本。不管哪种环境是主环境,两种环境都在步骤92设备10操作之前被启动并且运行。由于公共服务首先在步骤80被启动,为了所有意图和目的,主环境和辅助环境被并行启动。然而,基于设备状态,主环境专用服务紧接在辅助环境专用服务之前被启动。通过分离公共服务启动与环境专用启动,设备10可以以多个共存和独立操作环境快速地操作。参考图7,流程图标识用于在设备10处于移动模式94并且第一OS22进行主控制时启动第二OS24应用的步骤。在步骤96选择第二OS24应用、移动PC。在设备10在移动模式下操作并且第一OS22进行主控制时,移动PC是第一OS22中的应用,移动PC提供全PC视图,可替换地称为上网本视图。在可选实施例中,来自第二OS24的各个应用可以列在第一OS22菜单中并且被分别启动,其可以类似于上网本视图。在步骤98门户服务26将状况更新通信发送至资源管理器34,指示门户活动28获得焦点。此后,在步骤100资源管理器34禁用第一OS22输入并且切换虚拟终端。在步骤102移动PC应用被显示在GUI12上。在操作移动PC应用时,未经请求的事件可以在步骤104发生,或者用户请求事件可以在步骤106发生。未经请求的事件包括时间紧要和非时间紧要事件。例如,时间紧要未经请求的事件包括电话呼叫或安排的或非安排的警报。而且,例如,非时间紧要未经请求的事件包括SMS消息、电子邮件消息或设备更新通知。在事件104、106发生之后,门户服务26将通信发送至资源管理器34,指示在步骤108门户活动28失去焦点。在步骤110,资源管理器34请求第一OS22以启用输入事件流并且切换虚拟终端。例如,本实施例包括用于在第一OS22和第二OS24之间切换显示控制的分开的虚拟终端。一般来说,虚拟终端是Linux应用,其允许系统用户在基于Windows的视图和系统控制台之间切换显示控制。当在步骤112,未经请求的事件发生或者用户选择“主页(Home)”键时,在步骤114门户活动28被切换至背景,同时未经请求的事件继续或者用户操作来自GUI12的“主页”菜单的另一应用。可替换地,如果在步骤112用户选择“返回(Back)”键,则门户活动28退出应用并且在步骤94设备10恢复空闲主菜单。用户发起事件,诸如选择主页键、返回键或发起新应用是示例性请求的事件。当事件发生时,在步骤118做出决定,并且如果事件是未经请求的事件,则在步骤120中断第一OS22。可替换地,如果事件是请求的事件,诸如用户选择“主页”键,则在步骤94设备恢复空闲主菜单。在步骤120OS中断之后,中断应用退出并且门户活动28在步骤122重新获得焦点,并且设备10恢复到步骤98。在可选实施例中,不利用虚拟终端设施。可以通过类似VNC的应用完成当在移动模式时呈现第二OS24应用。诸如Ubuntu的第二OS24应用可以被远程呈现在VNC客户端中。另外,该实施例不从第一OS22去除物理显示控制。在又一可选实施例中,由第一OS22生成的非时间紧要通知被识别并且列在第二OS24视图内的面板中。通过在面板中列出通知,当第二OS24为主OS时,第一OS22状况信息与第二OS24视图结合。在用户空闲时,访问面板以展现非时间紧要状况通知。当面板忙碌时,第一OS22变为主OS并且允许观看通知。例如,面板可以是以滑动手势从状况区域下来的下拉列表。参考图8,提供了标识用于在第一OS22进行主控制时启动第二OS24应用的步骤的消息序列图。序列图提供在门户活动模块28和资源管理器34之间传送的信号的从上到下的步骤导向流。门户活动28接收信号124,以启动门户并且禁用输入。第一OS22在信号126使模式状态改变为第二OS24获得主控制之前进行主控制。信号126被从门户活动28发送至资源管理器34,然后资源管理器34生成被发送至门户活动28的响应信号128,响应信号128指示第二OS24是主OS。信号130由门户活动28接收,并且启用输入。信号132被从门户活动28发送至资源管理器34,其模式状态从第二OS24改变为第一OS22。在接收信号132之后,资源管理器34切换虚拟终端。然后,资源管理器34将状况更新信号134发送至门户活动28,指示第一OS22是主OS。参考图9,提供标识与从第一操作环境切换到第二操作环境相关的步骤的流程图。在步骤136,设备10在移动模式(OS122)下处于空闲。在步骤138,设备10连接至停驻站,或者连接至外围设备。例如,可以在设备10和监视器或电视机之间建立HDMI连接。在步骤140资源管理器34被通知更新的连接状况,并且响应于连接状况改变,在步骤142禁用第一OS22。在步骤144第一OS22门户切换共享的存储器帧缓冲器,之后在步骤146资源管理器34切换虚拟终端。如果在步骤148移动PC应用在视图中,则在步骤150门户活动26退出。可替换地,如果移动PC应用不在视图中,则在步骤152启用停驻模式。在步骤154设备状态改变的情况下,则在步骤156资源管理器34接收状况状态更新。例如,当用户移除HDMI电缆或类似的用于将设备10连接至外围设备的连接器时,系统的状态改变。事件状态更新156之后,启用第一OS22158并且设备在移动模式下操作。在步骤160请求帧缓冲器切换,并且在步骤162请求虚拟终端切换,两者均由门户活动26执行。在步骤162之后,在移动模式136下设备恢复到空闲状态。参考图10,提供标识当设备10从移动模式(OS1)过渡到停驻模式(OS2)时执行的步骤的消息序列图。设备10在移动模式下操作,并且第一OS22是主OS。电缆信号164由资源管理器134接收,指示HDMI或可选硬线插件已经附接至设备10。电缆信号164是示例性模式状态初始化改变信号。在可选实施例中,插件可以是设备10和外围设备之间的无线通信,并且禁用无线通信将导致生成模式状态初始化改变信号。使设备从移动模式过渡到停驻模式的信号序列被发起。信号164从资源管理器34发送至门户活动28,指示模式状况过渡并且禁用主数据输入。门户活动28将信号168发送至资源管理器34,标识第二OS24当前是主OS并且切换虚拟终端。信号170从资源管理器34发送至门户活动,标识第二OS24为主OS并且取得帧缓冲器的所有权。模式状态改变确认信号172从门户活动28发送至资源管理器34,标识设备当前处于停驻模式,并且第二OS24是主OS。系统模式更新信号从资源管理器34发送至AIW36。参考图11,提供标识当设备10从停驻模式(OS2)过渡到移动模式(OS1)时执行的步骤的消息序列图。电缆信号176由资源管理器34接收,指示HDMI或可选硬件设备插件已经从设备10移除。插件的移除指示外围设备(未示出)不再与设备10通信。在可选实施例中,插件可以是设备10和外围或可选设备(未示出)之间的无线通信。使设备从停驻模式过渡到移动模式的信号序列被发起。信号178从资源管理器34发送至门户活动28,指示模式状况过渡,并且启用主数据输入和主帧缓冲器。门户活动28将信号180发送至资源管理器34,标识第一OS22当前是主OS并且切换虚拟终端。信号182从资源管理器34发送至门户活动,标识第一OS22为主OS并且取得帧缓冲器的所有权。模式状态改变确认信号184从门户活动28发送至资源管理器34,标识设备当前处于移动模式并且第一OS22是主OS。系统模式更新信号从资源管理器34发送至AIW36。参考图12,在步骤188,设备10在停驻模式下处于空闲,并且第二OS24是主操作环境。如果在步骤190未经请求的事件发生,或者在步骤192用户选择窗口应用中的OS122,则在步骤194启动窗口应用中的OS122。例如,如果Android是移动操作环境22,则窗口中Android(AIW)应用被启动。设备在停驻模式下操作,同时AIW应用使用户能够访问Android应用。在步骤194,资源管理器34也被通知状况更新。在步骤196,启用到第一OS22的输入,之后在步骤198发送第一OS显示更新通知。在步骤200AIW应用操作并且具有焦点。如果在步骤202AIW应用退出,或者在步骤204用户从焦点移除AIW,则在步骤206禁用第一OS22输入。在步骤208停止第一OS22显示。如果在步骤210AIW应用退出,则系统恢复到空闲停驻模式188。可替换地,如果AIW应用被离焦,则在步骤212,应用在该状态下操作。如果步骤214的未经请求的事件或者在步骤216的与AIW应用交互的请求的事件发生,则在步骤218AIW重新获得焦点。虽然AIW被离焦,但是用户可以选择AIW应用,并且继续与AIW窗口交互,AIW窗口重新聚焦AIW并且通知资源管理器34状况更新。在AIW重新获得对第一OS22(对于本实施例是Android)的聚焦之后,在步骤220启用输入。在步骤222第一OS22显示更新通知被发送至资源管理器34,之后系统恢复到步骤200,在步骤200启用AIW并且对准焦点。当应用对准焦点时,该应用位于运行应用的堆栈的逻辑顶部。在可选实施例中,可以想到,设备10可以在基于除了停驻或非停驻设备10之外的事件的模式状态之间过渡。例如,如果设备10在预置时间段内是静止的,则设备10可以被编程为在能量最有效模式状态下操作,而不管设备状况如何。在又一示例中,即使设备具有与外围设备的连接,用户也可以使模式状态从停驻过渡到移动。另外,连接至设备10的外围设备的类型可以支配是否发起自动模式状态改变序列或者用户提供模式状态改变请求。从而,用户能够选择操作设备10的模式状态。在又一可选实施例中,基于特定设备10用途和在设备存储器20中可用的应用想到额外的模式状态。特别地,意图是本发明不限于在此包含的实施例和说明,而是包括那些实施例的修改形式,包括如落入以下权利要求的范围内的实施例的多个部分和不同实施例的元件的组合。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1