CN108235759A - 基于多操作系统的输入处理方法、装置及电子设备 - Google Patents
基于多操作系统的输入处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN108235759A CN108235759A CN201780003332.7A CN201780003332A CN108235759A CN 108235759 A CN108235759 A CN 108235759A CN 201780003332 A CN201780003332 A CN 201780003332A CN 108235759 A CN108235759 A CN 108235759A
- Authority
- CN
- China
- Prior art keywords
- operating system
- client operating
- incoming event
- client
- front stage
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及虚拟化技术领域,特别是涉及基于多操作系统的输入处理方法、装置及电子设备。该方法包括:当监测到所述宿主操作系统接收到输入事件时,判断当前是否存在客户操作系统处于前台运行状态;若存在,通过预设的数据传输通道将所述输入事件从所述宿主操作系统的内核空间注入处于前台运行状态的所述客户操作系统的内核空间,以使所述前台运行状态的所述客户操作系统响应所述输入事件。该实施方式缩短了输入事件的注入时长,提升了客户操作系统中输入系统的性能。
Description
【技术领域】
本发明涉及虚拟化技术领域,特别是涉及基于多操作系统的输入处理方法、装置及电子设备。
【背景技术】
基于虚拟化技术,多个操作系统或者虚拟机可以同时运行在电子设备上,多个操作系统或者虚拟机之间共享硬件设备提供的处理器、内存以及输入输出设备。当基于多个操作系统实现输入的方法时,通常是在宿主操作系统的用户空间中打开输入设备节点,接收输入事件,然后判断该事件是否需要转发至客户操作系统;如果该事件需要转发至客户操作系统,则将该事件注入到客户操作系统内核输入设备模块中;客户操作系统的应用程序通过读取其用户空间中的输入设备节点获取注入的输入事件。
发明人发现相关技术存在以下问题:注入给客户操作系统的输入事件经历了从宿主操作系统内核空间上报到用户空间,再由用户空间传递到宿主操作系统内核空间,再注入到客户操作系统内核空间的一个过程,以至于输入事件注入的过程较长,对客户操作系统输入系统的性能造成影响。
【发明内容】
本发明实施例提供一种基于多操作系统的输入处理方法、装置及电子设备,主要用于解决基于多操作系统处理输入事件时存在输入事件注入时间长的问题。
为解决上述技术问题,本发明实施例采用的一个技术方案是:提供一种基于多操作系统的输入处理方法,所述操作系统包括宿主操作系统和至少一个客户操作系统,所述方法包括:
当监测到所述宿主操作系统接收到输入事件时,判断当前是否存在客户操作系统处于前台运行状态;
若存在,通过预设的数据传输通道将所述输入事件从所述宿主操作系统的内核空间注入处于前台运行状态的所述客户操作系统的内核空间,以使所述处于前台运行状态的所述客户操作系统响应所述输入事件。
为解决上述技术问题,本发明实施例采用的另一个技术方案是:提供一种基于多操作系统的输入处理装置,所述操作系统包括宿主操作系统和至少一个客户操作系统,所述装置包括判断模块和第一处理模块;
所述判断模块,用于当监测到所述宿主操作系统接收到输入事件时,判断当前是否存在客户操作系统处于前台运行状态;
所述第一处理模块,用于若当前存在客户操作系统处于前台运行状态,通过预设的数据传输通道将所述输入事件从所述宿主操作系统的内核空间注入处于前台运行状态的所述客户操作系统的内核空间,以使所述处于前台运行状态的所述客户操作系统响应所述输入事件。
为解决上述技术问题,本发明实施例采用的又一个技术方案是:提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令程序,所述指令程序被所述至少一个处理器执行,以使所述至少一个处理器执行如上所述的方法。
为解决上述技术问题,本发明实施例采用的还一个技术方案是:提供一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如上所述的方法。
为解决上述技术问题,本发明实施例采用的再一个技术方案是:提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行如上所述的方法。
本发明实施例提供了一种基于多操作系统的输入处理方法和装置,通过在监测到宿主操作系统接收到输入事件时,判断当前是否存在客户操作系统处于前台运行状态,如果存在处于前台运行状态的客户操作系统,则通过预设的数据传输通道将输入事件从宿主操作系统注入到处于前台运行状态的客户操作系统的内核空间,从而使该客户操作系统响应所述输入事件。由于输入事件可以直接从宿主操作系统的内核空间注入到客户操作系统的内核空间,从而缩短了输入事件的注入时长,提升了客户操作系统中输入系统的性能。
【附图说明】
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明方法和装置的应用场景示意图;
图2是本发明实施例提供的一种基于多操作系统的输入处理方法的流程示意图;
图3是本发明实施例提供的一种基于多操作系统的输入处理方法中判断当前是否存在客户操作系统处于前台运行状态的方法的流程示意图;
图4是本发明实施例提供的一种基于多操作系统的输入处理方法中宿主操作系统内核空间中的内核加速器的功能结构示意图;
图5是本发明另一实施例提供的一种基于多操作系统的输入处理方法的流程示意图;
图6是本发明又一实施例提供的一种基于多操作系统的输入处理方法的流程示意图;
图7是本发明实施例提供的一种基于多操作系统的输入处理方法中所述客户操作系统的后端程序的功能结构示意图;
图8是本发明再一实施例提供的一种基于多操作系统的输入处理方法的流程示意图;
图9是本发明实施例提供的一种基于多操作系统的输入处理装置的结构示意图;
图10是本发明实施例提供的一种电子设备的硬件结构示意图。
【具体实施方式】
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置示意图中的模块划分,或流程图中的顺序执行所示出或描述的步骤。
图1是本发明实施例提供的基于多操作系统的输入处理方法和装置的应用场景示意图。该应用场景可以是运行在某一智能终端上的计算机系统环境。具体地,如图1所示,该应用场景包括:宿主操作系统10、客户操作系统11、模拟器12以及物理硬件设备13。
其中,宿主操作系统10和客户操作系统11均属于管理和控制物理硬件设备13以及相应的软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在宿主操作系统10或客户操作系统11的支持下才能运行。在本发明实施例中,宿主操作系统10和客户操作系统11均可以是任何合适类型的操作系统,如:Linux、Unix、IOS、Android、Windows等,用以接收用户指令并据此输出对应的处理结果向用户展示。
宿主操作系统10以及客户操作系统11之间共享所述物理硬件设备13。在实际运行时,宿主操作系统10可以直接使用所述物理硬件设备13中的硬件设备,而客户操作系统11则使用由驱动该客户操作系统11的虚拟机提供的虚拟设备。其中,所述“虚拟机”是指通过软件模拟的具有完整硬件系统功能的,运行在一个完全隔离环境中的计算机系统。所述虚拟机可以基于物理硬件设备13或者软件程序形成多个模拟出来的硬件设备(比如,本发明实施例所述的虚拟输入设备)供客户操作系统11使用。一个虚拟机对应驱动一个客户操作系统11,每一所述虚拟机可以作为宿主操作系统10中的其中一个应用程序运行。
不同的操作系统之间存在有内存隔离,即便是宿主操作系统10也不能够访问客户操作系统11的内存空间。这样,当计算机系统中存在两个或以上的客户操作系统11时,若其中一个客户操作系统11因为异常重新启动,宿主操作系统10和其它客户操作系统11还可以正常运行,相互隔离。然而,由于虚拟机是作为宿主操作系统10中的应用程序运行的,因此,若宿主操作系统10因为异常重新启动,那么所有的客户操作系统11都需要重新启动才可以运行。
模拟器12也可以作为宿主操作系统10中的其中一个应用程序运行。在本实施例中,模拟器12与所述客户操作系统11对应,当包含多个客户操作系统11时,每一个客户操作系统11分别对应一个模拟器12。在本实施例中,模拟器12用于运行虚拟输入设备的后端程序,所述虚拟输入设备的后端程序即是所述客户操作系统11的后端程序。
物理硬件设备13是实际存在的硬件设备,可以包括任何合适的,组成完整计算机系统的设备组件,包括但不限于:处理器、存储介质、输入/输出设备以及通信模组等。具体地,处理器可以是任何合适类型的,具有一定逻辑运算能力的处理器,例如:CPU、图形处理器等。处理器还可以包括用于多线程或并行处理的多个核心。存储介质可以包括内存模块,例如:ROM、RAM、闪存模块,以及大容量存储器,例如光盘和硬盘。存储介质中存储有计算机程序,当处理器执行这些计算机程序时,可以实现各种相应方法步骤或流程。输入/输出设备可以是任何合适类型的,提供一种或者多种用户交互方式的外围设备,例如接收用户动作操作指令的鼠标、键盘或者触摸输入屏,用于采集图像信息的体感摄像机、用于采集声音信息的麦克风或者向用户展示图像信息的显示屏或者用于输出音频的扬声器。所述输入/输出设备可以选择使用有线或者无线的外围设备与其他物理硬件设备连接。通信模组可以包括某些通过有线或者无线通信网络建立连接的网络接口设备。例如,网线接口、总线接口、USB接口、WiFi模组或者蓝牙通信模组等。
在实际应用过程中,所述物理硬件设备13还可以添加或者减少一个或者多个设备,用以满足不同的实际应用情况需求,例如增加数据库或者服务器设备等。
在本发明实施例中,基于上述宿主操作系统10、客户操作系统11、模拟器12以及物理硬件设备13实现多操作系统的输入实现方法。具体地,宿主操作系统10监测自身是否接收到输入事件,如果接收到输入事件,判断当前是否存在处于前台运行状态的客户操作系统11,如果存在,宿主操作系统10将所述输入事件注入模拟器12中,由所述模拟器12中虚拟输入设备的后端程序,将所述输入事件写入所述客户操作系统11的内核空间。需要说明的是,在输入事件注入模拟器12后,所述客户操作系统11也可以主动读取所述模拟器12中的输入事件。
此外,可以理解的是,当该智能终端的计算机系统中所有的客户操作系统11均处于休眠状态时,所述宿主操作系统10响应所述输入事件。
再者,需要说明的是,本发明实施例提供的基于多操作系统的输入处理方法还可以进一步的拓展到其他合适的应用环境中,而不限于图1中所示的应用环境。在实际应用过程中,该应用环境还可以包括更多的客户操作系统以及更多或者更少物理硬件设备类型。
基于上述应用场景,提供一种基于多操作系统的输入处理方法,具体地,图2是本发明实施例提供的一种基于多操作系统的输入处理方法的流程示意图,请参阅图2,该方法包括:
201:当监测到所述宿主操作系统接收到输入事件时,判断当前是否存在客户操作系统处于前台运行状态;
其中,所述宿主操作系统通过预设的程序监测自身是否接收到输入事件,所述输入事件指的是在操作人员操作键盘、鼠标等输入/输出设备时,所产生的操作指令,一条操作指令可以对应一个输入事件,这些操作指令可以是打开某个页面或者输入某个字母或者删除某个符号,等等。在监测到所述宿主操作系统接收到输入事件后,判断当前是否存在客户操作系统处于前台运行状态,具体地,请参阅图3,所述判断当前是否存在客户操作系统处于前台运行状态,包括:
2011:从所述至少一个客户操作系统对应的虚拟切换设备中,读取所述至少一个客户操作系统的前/后台运行状态;
2012:根据获取到的所述至少一个客户操作系统的前/后台运行状态,判断当前是否存在客户操作系统处于前台运行状态。
在本实施例中,所述宿主操作系统与虚拟机中的虚拟切换设备通信,获得其支持的客户操作系统的前/后台运行状态,并将所述客户操作系统的前/后台运行状态设置给所述宿主操作系统内核空间中的虚拟输入设备的内核加速器,从而使所述宿主操作系统获取处于前台运行状态的客户操作系统。
其中,所述宿主操作系统与虚拟机中的虚拟切换设备通信是通过所述客户操作系统的后端程序实现的,也即是虚拟输入设备的后端程序。
其中,所述虚拟切换设备主要用于控制虚拟机的前/后台运行状态。比如,所述虚拟切换设备接收包含源虚拟机信息的切换请求,根据所述切换请求中的源虚拟机信息判断所述切换请求是否合法,如果合法,则将所述切换请求对应的虚拟机由后台运行状态切换至前台运行状态。此外,所述虚拟切换设备还可以将处于休眠状态的虚拟机切换至前台运行状态。在这里,切换虚拟机也即是切换客户机,因此,所述虚拟切换设备能够获取其支持的全部客户操作系统的前/后台运行状态。其中,虚拟机的后台运行状态指的是虚拟机正在运行,但是其人机交互的相关服务程序被关闭了,因此其人机交互界面对用户不可见,即后台运行状态的虚拟机可以调用网络通信等模块,但是已经不能调用涉及用户交互的输入输出模块,比如键盘或者显示屏。虚拟机的前台运行状态即与所述后台运行状态相反的状态。需要说明的是,所述虚拟切换设备获取其支持的客户操作系统的前/后台运行状态的具体过程还可以参考相关技术中的记载,并不仅限制于上述实施方式。
202:若存在,通过预设的数据传输通道将所述输入事件从所述宿主操作系统的内核空间注入处于前台运行状态的所述客户操作系统的内核空间,以使所述处于前台运行状态的所述客户操作系统响应所述输入事件。
其中,所述预设的数据传输通道配置在宿主操作系统和处于前台运行状态的客户操作系统之间,具体是模拟器中运行的客户操作系统的后端程序(即虚拟输入设备的后端程序)来建立的。所述客户操作系统的后端程序将所述数据传输通道的信息传递给宿主操作系统内核空间中的虚拟输入设备的内核加速器,通过运行于所述宿主操作系统内核空间中的内核加速器,将所述输入事件从所述宿主操作系统的内核空间注入运行于前台运行状态的所述客户操作系统的后端程序,再由所述后端程序将所述输入事件写入所述客户操作系统的内核空间,从而使所述客户操作系统响应所述输入事件。该实施方式,当客户操作系统在前台运行时,宿主操作系统决定注入给客户操作系统的输入事件经虚拟输入设备的后端程序,由宿主操作系统内核中的加速器直接注入给客户操作系统,从而缩短了输入事件注入所述客户操作系统的事件,使得客户操作系统能够尽快响应所述输入事件,提升了客户操作系统的性能。
其中,所述宿主操作系统内核空间中的内核加速器可以实现两项功能:
功能一,在接收到客户操作系统的后端程序设置的系统间传递数据的通道信息之后,当宿主操作系统内核空间中的输入子系统有新的输入事件时,如果该输入事件需要传递给客户操作系统,则通过数据传输通道将该事件注入给客户操作系统;
功能二,当客户操作系统由后台转为前台运行状态时,使能系统间的数据传递通道,内核加速器进入活跃状态;当客户操作系统由前台运行状态转为后台时,不使能系统间的数据传递通道,内核加速器进入休眠状态。客户操作系统默认是在后台的,因此数据传输通道默认是关闭的。其功能结构如附图4所示。
需要说明的是,上述过程中,所述后端程序将所述输入事件写入所述客户操作系统的内核空间,在其他一些实施例中,也可以是所述客户操作系统主动从所述后端程序中读取所述输入事件至内核空间。
此外,当存在多个客户操作系统时,可以在每一个客户操作系统与宿主操作系统之间建立所述预设的数据传输通道。并且将处于前台运行状态的客户操作系统对应的数据传输通道调整为使能状态,将处于后台运行状态或者后台休眠状态的客户操作系统对应的数据传输通道调整为关闭状态。其中,在两个客户操作系统之间进行切换时,被切换到后台的客户操作系统其所对应的虚拟输入设备进入休眠状态,切换到前台的客户操作系统其所对应的虚拟输入设备进入活跃状态。
在其他一些实施例中,请参阅图5,所述方法还包括:
203:当所述输入事件从所述宿主操作系统的内核空间注入处于前台运行状态的所述客户操作系统的内核空间之后,将所述输入事件从所述宿主操作系统的事件列表中清除。其中,可以通过预设的程序将所述输入事件从所述事件列表中清除。通过删除事件列表中的输入事件可以不需要将输入设备在虚拟机程序操作时设置为独占,就能避免用户空间中其他应用程序读取所述输入事件,从而降低了所述输入事件被泄露的风险。
在其他一些实施例中,请参阅图6,在执行图2所示的方法之前,所述方法还包括:
204:读取输入设备在所述宿主操作系统中的设备文件;
205:根据所述设备文件获取所述输入设备的配置信息;
206:将所述配置信息发送至所述客户操作系统的内核空间,以使所述客户操作系统中与所述输入设备对应的虚拟输入设备的驱动程序,根据所述配置信息配置所述虚拟输入设备。
上述步骤是在将输入事件注入客户操作系统之前,就预先配置好客户操作系统对应的虚拟输入设备。其中,所述输入设备是宿主操作系统对应的物理输入设备,比如键盘、鼠标等。在宿主操作系统中,每一输入设备都有其对应的设备文件,该设备文件包含了所述输入设备的属性等配置信息,将这些配置信息传递至客户操作系统的内核空间,从而使客户操作系统中的虚拟输入设备的驱动程序根据所述配置信息在客户操作系统中注册相应的虚拟输入设备,并且设置这些虚拟输入设备的配置信息。通过这种配置,可以使宿主操作系统和客户操作系统共享相同的输入设备。
其中,配置所述虚拟输入设备也是由所述客户操作系统的后端程序,即模拟器中虚拟输入设备的后端程序来实现。基于上述实施例,请参阅图7,所述客户操作系统的后端程序主要实现三项功能:功能一,配置在宿主操作系统和客户操作系统之间传递数据的通道,并将这些通道的信息传递给在宿主操作系统内核空间中的虚拟输入设备的内核加速器;功能二,通过输入设备在宿主操作系统中的设备节点获得输入设备的属性等配置信息,将这些配置信息传递到客户操作系统的内核空间,客户操作系统中的虚拟输入设备的驱动程序根据这些配置信息在客户操作系统中注册相应的输入设备,并设置相应的配置信息;功能三,与虚拟机中的虚拟切换设备通信,获得其支持的客户操作系统的前后台状态,并将当前的前后台状态设置给在宿主操作系统内核空间中的虚拟输入设备的内核加速器。
在其他一些实施例中,请参阅图8,所述方法还包括:
207:若当前不存在客户操作系统处于前台运行状态,所述宿主操作系统响应所述输入事件。
本发明实施例提供了一种基于多操作系统的输入处理方法,该方法通过在监测到宿主操作系统接收到输入事件时,判断当前是否存在客户操作系统处于前台运行状态,如果存在处于前台运行状态的客户操作系统,则通过预设的数据传输通道将输入事件从宿主操作系统注入到处于前台运行状态的客户操作系统的内核空间,从而使该客户操作系统响应所述输入事件。由于输入事件可以直接从宿主操作系统的内核空间注入到客户操作系统的内核空间,从而缩短了输入事件的注入时长,提升了客户操作系统中输入系统的性能。另外,将注入客户操作系统后的输入事件从事件列表中清除,从而降低了所述输入事件被泄露的风险。
请参阅图9,图9是本发明实施例提供的一种基于多操作系统的输入处理装置的结构示意图,所述操作系统包括宿主操作系统和至少一个客户操作系统,如图9所示,该装置30包括:判断模块31和第一处理模块32。
其中,所述判断模块31,用于当监测到所述宿主操作系统接收到输入事件时,判断当前是否存在客户操作系统处于前台运行状态;所述第一处理模块32,用于若当前存在客户操作系统处于前台运行状态,通过预设的数据传输通道将所述输入事件从所述宿主操作系统的内核空间注入处于前台运行状态的所述客户操作系统的内核空间,以使所述处于前台运行状态的所述客户操作系统响应所述输入事件。
其中,所述判断模块31包括数据读取单元311和状态判断单元312。所述数据读取单元311,用于从所述至少一个客户操作系统对应的虚拟切换设备中,读取所述至少一个客户操作系统的前/后台运行状态;所述状态判断单元312,用于根据获取到的所述至少一个客户操作系统的前/后台运行状态,判断当前是否存在客户操作系统处于前台运行状态。
其中,所述第一处理模块32具体用于:若当前存在客户操作系统处于前台运行状态,通过运行于所述宿主操作系统内核空间中的内核加速器,将所述输入事件从所述宿主操作系统的内核空间注入运行于前台运行状态的所述客户操作系统的后端程序,由所述后端程序将所述输入事件写入所述客户操作系统的内核空间,以使所述前台运行状态的所述客户操作系统响应所述输入事件。
在其他一些实施例中,同样请参阅图9,所述装置30还包括删除模块33。所述删除模块33,用于当所述输入事件从所述宿主操作系统的内核空间注入处于前台运行状态的所述客户操作系统的内核空间之后,将所述输入事件从所述宿主操作系统的事件列表中清除。
在其他一些实施例中,同样请参阅图9,所述装置30还包括第一获取模块34、第二获取模块35以及发送模块36。所述第一获取模块34,用于读取输入设备在所述宿主操作系统中的设备文件;所述第二获取模块35,用于根据所述设备文件获取所述输入设备的配置信息;所述发送模块36,用于将所述配置信息发送至所述客户操作系统的内核空间,以使所述客户操作系统中与所述输入设备对应的虚拟输入设备的驱动程序,根据所述配置信息配置所述虚拟输入设备。
在其他一些实施例中,同样请参阅图9,所述装置30还包括第二处理模块37。所述第二处理模块37,用于若当前不存在客户操作系统处于前台运行状态,所述宿主操作系统响应所述输入事件。
需要说明的是,由于所述基于多操作系统的输入处理装置与上述方法实施例中的基于多操作系统的输入处理方法基于相同的发明构思,因此,上述方法实施例的相应内容以及有益效果同样适用于本装置实施例,此处不再详述。
本发明实施例提供了一种基于多操作系统的输入处理装置,该装置通过在监测到宿主操作系统接收到输入事件时,判断当前是否存在客户操作系统处于前台运行状态,如果存在处于前台运行状态的客户操作系统,则通过预设的数据传输通道将输入事件从宿主操作系统注入到处于前台运行状态的客户操作系统的内核空间,从而使该客户操作系统响应所述输入事件。由于输入事件可以直接从宿主操作系统的内核空间注入到客户操作系统的内核空间,从而缩短了输入事件的注入时长,提升了客户操作系统中输入系统的性能。另外,将注入客户操作系统后的输入事件从事件列表中清除,从而降低了所述输入事件被泄露的风险。
请参阅图10,图10是本发明实施例提供的一种电子设备的硬件结构示意图。该电子设备40可以是任意类型的智能终端,如:手机、平板电脑、笔记本电脑、台式计算机、服务器、机器人等,能够执行如上所述的基于多操作系统的输入处理方法。如图10所示,该电子设备40包括:
一个或多个处理器41以及存储器42,图10中以一个处理器41为例。
处理器41和存储器42可以通过总线或者其他方式连接,图10中以通过总线连接为例。
执行基于多操作系统的输入处理方法的电子设备还可以包括:输入装置43和输出装置44。
存储器42作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的基于多操作系统的输入处理方法对应的程序指令/模块(例如,附图9中所示的各个模块)。处理器41通过运行存储在存储器42中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例基于多操作系统的输入处理方法。
存储器42可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据基于多操作系统的输入处理装置的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器42可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至基于多操作系统的输入处理装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置43可接收输入的数字或字符信息,以及产生与基于多操作系统的输入处理装置的用户设置以及功能控制有关的键信号输入。输出装置44可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器42中,当被所述一个或者多个处理器41执行时,执行上述任意方法实施例中的基于多操作系统的输入处理方法,例如,执行以上描述的图2中的方法步骤201至步骤202,图3中的方法步骤2011至步骤2012,图5中的方法步骤201至步骤203,图6中的方法步骤201至步骤206,图8中的方法步骤201至步骤207,实现图9中的模块31-37,单元311-312的功能。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
本发明实施例提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被电子设备执行上述任意方法实施例中的基于多操作系统的输入处理方法,例如,执行以上描述的图2中的方法步骤201至步骤202,图3中的方法步骤2011至步骤2012,图5中的方法步骤201至步骤203,图6中的方法步骤201至步骤206,图8中的方法步骤201至步骤207,实现图9中的模块31-37,单元311-312的功能。
本发明实施例提供了一种计算机程序产品,包括存储在非易失性计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时时,使所述计算机执行上述任意方法实施例中的基于多操作系统的输入处理方法,例如,执行以上描述的图2中的方法步骤201至步骤202,图3中的方法步骤2011至步骤2012,图5中的方法步骤201至步骤203,图6中的方法步骤201至步骤206,图8中的方法步骤201至步骤207,实现图9中的模块31-37,单元311-312的功能。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (15)
1.一种基于多操作系统的输入处理方法,所述操作系统包括宿主操作系统和至少一个客户操作系统,其特征在于,所述方法包括:
当监测到所述宿主操作系统接收到输入事件时,判断当前是否存在客户操作系统处于前台运行状态;
若存在,通过预设的数据传输通道将所述输入事件从所述宿主操作系统的内核空间注入处于前台运行状态的所述客户操作系统的内核空间,以使所述处于前台运行状态的所述客户操作系统响应所述输入事件。
2.根据权利要求1所述的方法,其特征在于,所述判断当前是否存在客户操作系统处于前台运行状态,包括:
从所述至少一个客户操作系统对应的虚拟切换设备中,读取所述至少一个客户操作系统的前/后台运行状态;
根据获取到的所述至少一个客户操作系统的前/后台运行状态,判断当前是否存在客户操作系统处于前台运行状态。
3.根据权利要求1所述的方法,其特征在于,所述通过预设的数据传输通道将所述输入事件从所述宿主操作系统的内核空间注入处于前台运行状态的所述客户操作系统的内核空间,具体包括:
通过运行于所述宿主操作系统内核空间中的内核加速器,将所述输入事件从所述宿主操作系统的内核空间注入运行于前台运行状态的所述客户操作系统的后端程序,由所述后端程序将所述输入事件写入所述客户操作系统的内核空间。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
当所述输入事件从所述宿主操作系统的内核空间注入处于前台运行状态的所述客户操作系统的内核空间之后,将所述输入事件从所述宿主操作系统的事件列表中清除。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
读取输入设备在所述宿主操作系统中的设备文件;
根据所述设备文件获取所述输入设备的配置信息;
将所述配置信息发送至所述客户操作系统的内核空间,以使所述客户操作系统中与所述输入设备对应的虚拟输入设备的驱动程序,根据所述配置信息配置所述虚拟输入设备。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若当前不存在客户操作系统处于前台运行状态,所述宿主操作系统响应所述输入事件。
7.一种基于多操作系统的输入处理装置,所述操作系统包括宿主操作系统和至少一个客户操作系统,其特征在于,所述装置包括判断模块和第一处理模块;
所述判断模块,用于当监测到所述宿主操作系统接收到输入事件时,判断当前是否存在客户操作系统处于前台运行状态;
所述第一处理模块,用于若当前存在客户操作系统处于前台运行状态,通过预设的数据传输通道将所述输入事件从所述宿主操作系统的内核空间注入处于前台运行状态的所述客户操作系统的内核空间,以使所述处于前台运行状态的所述客户操作系统响应所述输入事件。
8.根据权利要求7所述的装置,其特征在于,所述判断模块包括数据读取单元和状态判断单元;
所述数据读取单元,用于从所述至少一个客户操作系统对应的虚拟切换设备中,读取所述至少一个客户操作系统的前/后台运行状态;
所述状态判断单元,用于根据获取到的所述至少一个客户操作系统的前/后台运行状态,判断当前是否存在客户操作系统处于前台运行状态。
9.根据权利要求7所述的装置,其特征在于,所述第一处理模块具体用于:
若当前存在客户操作系统处于前台运行状态,通过运行于所述宿主操作系统内核空间中的内核加速器,将所述输入事件从所述宿主操作系统的内核空间注入运行于前台运行状态的所述客户操作系统的后端程序,由所述后端程序将所述输入事件写入所述客户操作系统的内核空间,以使所述前台运行状态的所述客户操作系统响应所述输入事件。
10.根据权利要求7至9任一项所述的装置,其特征在于,所述装置还包括删除模块;
所述删除模块,用于当所述输入事件从所述宿主操作系统的内核空间注入处于前台运行状态的所述客户操作系统的内核空间之后,将所述输入事件从所述宿主操作系统的事件列表中清除。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括第一获取模块、第二获取模块以及发送模块;
所述第一获取模块,用于读取输入设备在所述宿主操作系统中的设备文件;
所述第二获取模块,用于根据所述设备文件获取所述输入设备的配置信息;
所述发送模块,用于将所述配置信息发送至所述客户操作系统的内核空间,以使所述客户操作系统中与所述输入设备对应的虚拟输入设备的驱动程序,根据所述配置信息配置所述虚拟输入设备。
12.根据权利要求1所述的方法,其特征在于,所述装置还包括第二处理模块;
所述第二处理模块,用于若当前不存在客户操作系统处于前台运行状态,所述宿主操作系统响应所述输入事件。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令程序,所述指令程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1至6任一项所述的方法。
14.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1至6任一项所述的方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行权利要求1至6任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2017/117557 WO2019119315A1 (zh) | 2017-12-20 | 2017-12-20 | 基于多操作系统的输入处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108235759A true CN108235759A (zh) | 2018-06-29 |
CN108235759B CN108235759B (zh) | 2022-09-16 |
Family
ID=62644765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780003332.7A Active CN108235759B (zh) | 2017-12-20 | 2017-12-20 | 基于多操作系统的输入处理方法、装置及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108235759B (zh) |
WO (1) | WO2019119315A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825606A (zh) * | 2019-11-08 | 2020-02-21 | 北京金山云网络技术有限公司 | 数据操作方法、装置和中台系统 |
CN111666167A (zh) * | 2020-06-05 | 2020-09-15 | 北京元心科技有限公司 | 一种对输入事件读取处理优化方法、非易失性存储器及终端设备 |
CN112394872A (zh) * | 2020-11-30 | 2021-02-23 | 北京麟卓信息科技有限公司 | Linux平台支持安卓系统多点触摸的优化方法及装置 |
CN112394871A (zh) * | 2020-11-30 | 2021-02-23 | 北京麟卓信息科技有限公司 | 一种Linux平台支持安卓系统多点触摸的方法及装置 |
CN113791875A (zh) * | 2021-11-18 | 2021-12-14 | 北京鲸鲮信息系统技术有限公司 | 输入设备虚拟化的方法、装置、电子设备和存储介质 |
CN115657879A (zh) * | 2022-12-09 | 2023-01-31 | 北京小米移动软件有限公司 | 基于异构操作系统的输入控制方法、装置、设备及介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115567634B (zh) * | 2022-09-05 | 2024-03-29 | 青岛海信移动通信技术有限公司 | 一种网络管理方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140121216A (ko) * | 2013-04-05 | 2014-10-15 | 국방과학연구소 | 가상머신 환경에서 가상화 시스템의 장치 복제 시스템 및 그 방법 |
CN105335241A (zh) * | 2015-10-27 | 2016-02-17 | 联想(北京)有限公司 | 信息处理方法及电子设备 |
CN105573817A (zh) * | 2015-12-11 | 2016-05-11 | 北京奇虎科技有限公司 | 虚拟输入控制的方法、装置及系统 |
CN106462448A (zh) * | 2015-02-24 | 2017-02-22 | 华为技术有限公司 | 多操作系统设备、通知设备及其方法 |
CN107278294A (zh) * | 2017-05-12 | 2017-10-20 | 深圳前海达闼云端智能科技有限公司 | 输入设备实现方法及其实现装置 |
US20170351558A1 (en) * | 2016-06-02 | 2017-12-07 | Brocade Communications Systems, Inc. | Method and Apparatus for Determining System Information in a Device Having a Plurality of Processors, each Including Virtual Machines and some Located on Separate Insertable Boards |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100428164C (zh) * | 2006-01-23 | 2008-10-22 | 联想(北京)有限公司 | 一种虚拟机系统及其设备访问方法 |
CN106796531A (zh) * | 2016-12-27 | 2017-05-31 | 深圳前海达闼云端智能科技有限公司 | 内核配置信息的管理方法、装置和电子设备 |
-
2017
- 2017-12-20 CN CN201780003332.7A patent/CN108235759B/zh active Active
- 2017-12-20 WO PCT/CN2017/117557 patent/WO2019119315A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140121216A (ko) * | 2013-04-05 | 2014-10-15 | 국방과학연구소 | 가상머신 환경에서 가상화 시스템의 장치 복제 시스템 및 그 방법 |
CN106462448A (zh) * | 2015-02-24 | 2017-02-22 | 华为技术有限公司 | 多操作系统设备、通知设备及其方法 |
CN105335241A (zh) * | 2015-10-27 | 2016-02-17 | 联想(北京)有限公司 | 信息处理方法及电子设备 |
CN105573817A (zh) * | 2015-12-11 | 2016-05-11 | 北京奇虎科技有限公司 | 虚拟输入控制的方法、装置及系统 |
US20170351558A1 (en) * | 2016-06-02 | 2017-12-07 | Brocade Communications Systems, Inc. | Method and Apparatus for Determining System Information in a Device Having a Plurality of Processors, each Including Virtual Machines and some Located on Separate Insertable Boards |
CN107278294A (zh) * | 2017-05-12 | 2017-10-20 | 深圳前海达闼云端智能科技有限公司 | 输入设备实现方法及其实现装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825606A (zh) * | 2019-11-08 | 2020-02-21 | 北京金山云网络技术有限公司 | 数据操作方法、装置和中台系统 |
CN110825606B (zh) * | 2019-11-08 | 2023-04-07 | 北京金山云网络技术有限公司 | 数据操作方法、装置和中台系统 |
CN111666167A (zh) * | 2020-06-05 | 2020-09-15 | 北京元心科技有限公司 | 一种对输入事件读取处理优化方法、非易失性存储器及终端设备 |
CN112394872A (zh) * | 2020-11-30 | 2021-02-23 | 北京麟卓信息科技有限公司 | Linux平台支持安卓系统多点触摸的优化方法及装置 |
CN112394871A (zh) * | 2020-11-30 | 2021-02-23 | 北京麟卓信息科技有限公司 | 一种Linux平台支持安卓系统多点触摸的方法及装置 |
CN113791875A (zh) * | 2021-11-18 | 2021-12-14 | 北京鲸鲮信息系统技术有限公司 | 输入设备虚拟化的方法、装置、电子设备和存储介质 |
CN115657879A (zh) * | 2022-12-09 | 2023-01-31 | 北京小米移动软件有限公司 | 基于异构操作系统的输入控制方法、装置、设备及介质 |
CN115657879B (zh) * | 2022-12-09 | 2023-04-07 | 北京小米移动软件有限公司 | 基于异构操作系统的输入控制方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108235759B (zh) | 2022-09-16 |
WO2019119315A1 (zh) | 2019-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108235759A (zh) | 基于多操作系统的输入处理方法、装置及电子设备 | |
US10459772B2 (en) | System, method and computer program product for capturing touch events for a virtual mobile device platform | |
CN106575243A (zh) | 管理程序托管的虚拟机取证 | |
US10831331B2 (en) | Window control for simultaneously running applications | |
CN110554831B (zh) | 操作同步方法、装置、设备及存储介质 | |
CN107463369A (zh) | 一种虚拟桌面的接入设备控制方法与装置 | |
US20220058772A1 (en) | Image Processing Method and Device | |
US10346284B1 (en) | Feature usage prediction using shell application feature telemetry | |
CN104091102B (zh) | 一种基于安卓系统的多用户管理方法及其装置 | |
CN113990354B (zh) | 基于Linux的音频控制方法、装置、设备和存储介质 | |
CN109885781B (zh) | 混合页面统一浏览方法、装置、设备和存储介质 | |
WO2018129269A1 (en) | Execution of multiple applications on a device | |
CN107278294A (zh) | 输入设备实现方法及其实现装置 | |
CN107844248A (zh) | 一种智能平板的控制方法、装置、智能平板和存储介质 | |
CN107704228A (zh) | 一种多显示器切换方法与装置 | |
CN108551429A (zh) | 应用程序的流量控制方法、电子装置及计算机可读存储介质 | |
CN108235757A (zh) | 一种操作系统屏幕锁定的方法、装置及电子设备 | |
CN115357829A (zh) | 一种页面控件的曝光埋点方法、装置及存储介质 | |
KR102225414B1 (ko) | 클라우드 컴퓨팅 기반의 컨텐츠 관리를 위한 시스템 및 장치 | |
CN104090818A (zh) | 信息处理方法、装置和系统 | |
CN111400137B (zh) | 监测事件的存储方法、装置、移动终端和存储介质 | |
CN110096325B (zh) | 社交动态信息展示方法、计算机设备及存储介质 | |
CN109144844A (zh) | 追踪方法、装置、设备和机器可读介质 | |
WO2020064000A1 (zh) | 一种消息框的显示方法及装置、终端、存储介质 | |
CN112684965A (zh) | 动态壁纸状态变更方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |