本申请涉及计算机技术领域,具体地,涉及一种多系统通信方法及终端。
背景技术:
目前,智能手机等移动终端的操作系统平台上可以安装很多第三方应用程序,使得手机等移动终端的功能得到扩展,但是同时使得病毒和恶意软件等容易入侵,造成用户的通话、短信、联系人等隐私数据泄漏。以手机为例,现有技术中,为了提高手机的安全性,目前出现了具有双系统的手机,其由两个系统构成,其中一个为安全系统,另一个为普通系统。用于处理普通事务的系统,一般称为普通系统;用于处理涉密或隐私的事务的系统,一般称为安全系统,例如与联系人安全有关的电话、信息(短信、彩信)、电子邮件和位置定位等通信过程都在安全系统下进行,相关数据存储在安全系统的数据存储区域。
然而,普通系统在处理一些请求时,可能需要位于安全系统下的资源,这就需要普通系统和安全系统之间进行通信。目前,移动终端可以运行多个操作系统,一个移动终端只有一套硬件资源,所述硬件资源为所述移动终端中用于与外部交互的硬件资源,其中,例如:显示屏、音视频、蓝牙、无线保真(wireless fidelity,Wifi)、全球定位系统(Global Positioning System,GPS)、通用串行总线(Universal Serial Bus,USB)、安全数码(Secure Digital,SD)卡等。在实现本发明的过程中,发明人发现目前在运行有多个操作系统的移动终端中,经常会出现多个操作系统同时对同一硬件资源进行使用的情况,导致硬件资源使用异常,甚至损坏硬件资源。
技术实现要素:
有鉴于此,本申请提供一种多系统通信方法及终端。
根据本申请实施例的一方面,提供一种多系统通信方法,应用于终端,其中,所述终端安装有至少一个第一操作系统和至少一个第二操作系统,所述第一操作系统和所述第二操作系统设置有共享内存,所述方法包括:所述第一操作系统和所述第二操作系统通过所述共享内存进行数据流的通信,其中,所述第一操作系统和所述第二操作系统对所述共享内存进行互斥访问。
进一步地,所述第一操作系统和所述第二操作系统通过所述共享内存进行数据流的通信包括:
所述第一操作系统和所述第二操作系统根据SMC指令通过所述共享内存进行数据流的通信;
其中,所述SMC指令为用于指示进行多系统通信的指令,所述第一操作系统和所述第二操作系统中一个发送SMC指令,所述第一操作系统和所述第二操作系统中的另一个响应于SMC指令对所述共享内存上锁,并获得所述共享内存的访问权限。
进一步地,所述第一操作系统和所述第二操作系统根据SMC指令通过所述共享内存进行数据流的通信包括:
当所述第一操作系统具有所述共享内存的访问权限时,所述第一操作系统执行第一操作,其中,所述第一操作包括向所述共享内存写入数据流和/或从所述共享内存读取数据流;
当所述第一操作系统完成第一操作时,所述第一操作系统向所述第二操作系统发送SMC指令;
第二操作系统响应于SMC指令对所述共享内存上锁,并获得所述共享内存的访问权限;
第二操作系统执行第二操作,其中,所述第二操作包括从所述共享内存读取所述数据流和/或向所述共享内存写入所述数据流。
进一步地,所述方法还包括:当所述第二操作系统完成第二操作时,所述第二操作系统所述第一操作系统发送SMC指令;
所述第一操作系统响应于SMC指令对所述共享内存上锁,并获得所述共享内存的访问权限。
进一步地,所述第一操作系统为普通操作系统;第二操作系统为安全操作系统。
根据本申请实施例的另一方面,提供一种终端,其中,所述终端安装有至少一个第一操作系统和至少一个第二操作系统,所述第一操作系统和所述第二操作系统设置有共享内存,所述第一操作系统和所述第二操作系统通过所述共享内存进行数据流的通信,其中,所述第一操作系统和所述第二操作系统对所述共享内存进行互斥访问。
进一步地,所述第一操作系统和所述第二操作系统根据SMC指令通过所述共享内存进行数据流的通信;其中,所述SMC指令为用于指示进行多系统通信的指令,所述第一操作系统和所述第二操作系统中一个发送SMC指令,所述第一操作系统和所述第二操作系统中的另一个响应于SMC指令对所述共享内存上锁,并获得所述共享内存的访问权限。
进一步地,当所述第一操作系统具有所述共享内存的访问权限时,所述第一操作系统执行第一操作,其中,所述第一操作包括向所述共享内存写入数据流和/或从所述共享内存读取数据流;当所述第一操作系统完成第一操作时,控制所述第一操作系统向所述第二操作系统发送SMC指令;第二操作系统响应于SMC指令对所述共享内存上锁,并获得所述共享内存的访问权限;第二操作系统执行第二操作,其中,所述第二操作包括从所述共享内存读取所述数据流和/或向所述共享内存写入所述数据流。
进一步地,当所述第二操作系统完成第二操作时,所述第二操作系统所述第一操作系统发送SMC指令;所述第一操作系统响应于SMC指令对所述共享内存上锁,并获得所述共享内存的访问权限。
进一步地,所述第一操作系统为普通操作系统,所述第二操作系统为安全操作系统。
本申请实施例提供的多系统通信方法及终端,通过一个共享内存实现数据流的通信,并且通过SMC指令对共享内存上锁,仅允许自己对共享内存访问,避免多个操作系统同时对共享内存进行读写操作导致的硬件资源异常。更进一步地,将多系统中的一个系统作为安全操作系统,处理涉密或隐私的事务的系统,提高系统的安全性能。
附图说明
通过参照以下附图对本申请实施例的描述,本申请的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1示出了根据本申请实施例的多系统通信方法的流程图;
图2示出了根据本申请实施例的终端的结构示意图。
具体实施方式
以下基于实施例对本申请进行描述,但是本申请并不仅仅限于这些实施例。在下文对本申请的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。为了避免混淆本申请的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
附图中的流程图、框图图示了本申请实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。
本申请实施例提供的多系统通信方法,适用于安装有多操作系统的终端,以下具体以双操作系统为例。
所述终端安装有至少一个第一操作系统和至少一个第二操作系统,所述第一操作系统和所述第二操作系统设置有共享内存。所述第一操作系统和所述第二操作系统通过所述共享内存进行数据流的通信。
在本实施例中,终端可以为智能手机、平板电脑等终端。第一操作系统在处理业务时,需要第二操作系统的资源,则向第二操作系统发出获取所需资源的请求;或者第二操作系统在处理业务时,需要第一操作系统的资源,则向第一操作系统发出获取所需资源的请求。其中,所述资源数据可以为存储在所述第一操作系统或第二操作系统的数据或经过第一操作系统或第二操作系统处理后的结果数据等。
其中,所述第一操作系统和所述第二操作系统对所述共享内存进行互斥访问,即当所述第一操作系统对所述共享内存进行访问时,第二操作系统对所述共享内存不能访问;当所述第二操作系统对所述共享内存进行访问时,所述第一操作系统对所述共享内存不能访问。
具体地,所述第一操作系统和所述第二操作系统根据SMC(安全监视调用)指令通过所述共享内存进行数据流的通信。
在本实施例中,所述SMC指令为用于指示进行多系统通信的指令,所述第一操作系统和所述第二操作系统中一个发送SMC指令,所述第一操作系统和所述第二操作系统中的另一个响应于SMC指令对所述共享内存上锁,并获得所述共享内存的访问权限。以第一操作系统为正在工作的操作系统为例,此时第一操作系统具有对所述共享内存的访问权限,同时锁定所述共享内存使第二操作系统无法访问,避免多系统同时从共享内存进行读写操作引起的硬件异常。
图1示出了本申请实施例提供的多系统通信方法。所述多系统通信方法应用于终端,其中,所述终端安装有至少一个第一操作系统和至少一个第二操作系统,所述第一操作系统和所述第二操作系统设置有共享内存。如图1所示,该多系统通信方法包括以下步骤。
在步骤S01中,当第一操作系统具有共享内存的访问权限时,第一操作系统执行第一操作。
在本实施例中,第一操作包括向共享内存写入数据流和/或从共享内存读取数据流。
在步骤S02中,当第一操作系统完成第一操作时,第一操作系统向第二操作系统发送SMC指令。
在本实施例中,在第一操作系统完成对共享内存的读和/写操作时,第一操作系统向第二操作系统发送SMC指令唤醒第二操作系统,同时中断第一操作系统对共享内存的控制权,即访问权限。
在步骤S03中,第二操作系统响应于SMC指令对共享内存上锁,并获得共享内存的访问权限。
在本实施例中,第二操作系统根据接收到的SMC指令获取对共享内存的访问权限,同时锁定共享内存使第一操作系统无法访问。
在步骤S04中,第二操作系统执行第二操作,其中,第二操作包括从共享内存读取数据流和/或向共享内存写入数据流。
在本实施例中,第二操作系统根据SMC指令对共享内存进行写入数据或读取数据。
在一个优选地实施例中,步骤S01还包括以下步骤。
在步骤S05中,当第二操作系统完成第二操作时,第二操作系统第一操作系统发送SMC指令。
在本实施例中,在第二操作系统完成对共享内存的读和/写操作时,第二操作系统向第一操作系统发送SMC指令唤醒第一操作系统,同时中断第二操作系统对共享内存的控制权,即访问权限。
在步骤S06中,第一操作系统响应于SMC指令对共享内存上锁,并获得共享内存的访问权限。
在本实施例中,第一操作系统根据接收到的SMC指令获取对所述共享内存的访问权限,同时锁定所述共享内存使第二操作系统无法访问。
在一个优选的实施例中,所述第一操作系统为普通操作系统;第二操作系统为安全操作系统。
具体地,以双卡双待手机为例,Modem1对应卡槽SIM1,Modem2对应卡槽SIM2,如图1所示,假设Modem1和Modem2的普通语音业务数据(如普通联系人拨号、短信或通话等)由第一操作系统处理,Modem1和Modem2的重要语音业务数据(如重要联系人拨号、短信或通话等)由第二操作系统处理,第一操作系统判断是否需要第二操作系统来处理,当第一操作系统判断该业务数据需在第二操作系统处理,则将该业务数据经过共享内存发送至第二操作系统,并向第二操作系统发送SMC指令中断第一操作系统,唤醒第二操作系统来处理该业务数据。由于,第二操作系统的安全等级高于第一操作系统,因此,可以降低重要的数据业务数据的丢失和非法泄露,进而提升了终端的安全性能。
本申请实施例提供的多系统通信方法,通过一个共享内存实现数据流的通信,并且采用SMC指令发送内存访问通知,根据所述内存访问通知对共享内存上锁,仅允许自己对共享内存访问,避免多个操作系统同时对共享内存进行读写操作导致的硬件资源异常。更进一步地,将多系统中的一个系统作为安全系统,处理涉密或隐私的事务的系统,提高系统的安全性能。
图2示出了根据本申请实施例的终端的结构示意图。如图2所示,该终端包括第一操作系统10、第二操作系统20和共享内存30。
其中,所述第一操作系统10和所述第二操作系统20通过共享内存30进行数据流的通信,其中,所述第一操作系统10和所述第二操作系统20对所述共享内存30进行互斥访问。
在本实施例中,终端可以为智能手机、平板电脑等终端。第一操作系统10在处理业务时,需要第二操作系统20的资源,则向第二操作系统20发出的获取所需资源的请求;或者第二操作系统20在处理业务时,需要第一操作系统10的资源,则向第一操作系统10发出的获取所需资源的请求。其中,所述资源数据可以为存储在所述第一操作系统10或第二操作系统20的数据或经过第一操作系统10或第二操作系统20处理后的结果数据等。
其中,所述第一操作系统10和所述第二操作系统20对所述共享内存30进行互斥访问。即当所述第一操作系统10对所述共享内存30进行访问时,第二操作系统20对共享内存30不能访问;当所述第二操作系统20对所述共享内存30进行访问时,所述第一操作系统10对所述共享内存30不能访问。
具体地,所述第一操作系统10和所述第二操作系统20根据SMC(安全监视调用)指令通过所述共享内存30进行数据流的通信。
在本实施例中,所述SMC指令为用于指示进行多系统通信的指令,所述第一操作系统10和所述第二操作系统20中一个发送SMC指令,所述第一操作系统10和所述第二操作系统20中的另一个响应于SMC指令对所述共享内存30上锁,并获得所述共享内存30的访问权限。以第一操作系统10为正在工作的操作系统为例,此时第一操作系统10具有对所述共享内存30的访问权限,同时锁定所述共享内存30使第二操作系统20无法访问,避免多系统同时从共享内存30进行读写操作引起的硬件异常。
所述第一操作系统10和所述第二操作系统20根据SMC指令通过所述共享内存30进行数据流的通信;
当所述第一操作系统10具有所述共享内存30的访问权限时,所述第一操作系统10执行第一操作,其中,所述第一操作包括向所述共享内存30写入数据流和/或从所述共享内存30读取数据流;当所述第一操作系统10完成第一操作时,所述第一操作系统10向所述第二操作系统20发送SMC指令;第二操作系统20响应于SMC指令对所述共享内存30上锁,并获得所述共享内存30的访问权限;第二操作系统20执行第二操作,其中,所述第二操作包括从所述共享内存30读取所述数据流和/或向所述共享内存30写入所述数据流。
当所述第二操作系统20完成第二操作时,所述第二操作系统20所述第一操作系统10发送SMC指令;所述第一操作系统10响应于SMC指令对所述共享内存30上锁,并获得所述共享内存30的访问权限。
在一个优选地实施例中,所述第一操作系统10为普通操作系统,所述第二操作系统20为安全操作系统。
本申请实施例提供的终端,通过一个共享内存30实现多个操作系统间的数据流的通信,并且采用SMC指令发送内存访问通知,根据所述内存访问通知对共享内存30上锁,避免多个操作系统同时对共享内存30进行读写操作导致的硬件资源异常。更进一步地,将多系统中的一个系统作为安全系统,处理涉密或隐私的事务的系统,提高系统的安全性能。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
依照本申请的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地利用本申请以及在本申请基础上的修改使用。本申请的保护范围应当以本申请权利要求所界定的范围为准。