CN103677989B - 一种利用linux内核实现多***的装置及方法 - Google Patents
一种利用linux内核实现多***的装置及方法 Download PDFInfo
- Publication number
- CN103677989B CN103677989B CN201310677376.1A CN201310677376A CN103677989B CN 103677989 B CN103677989 B CN 103677989B CN 201310677376 A CN201310677376 A CN 201310677376A CN 103677989 B CN103677989 B CN 103677989B
- Authority
- CN
- China
- Prior art keywords
- module
- device file
- user
- different
- linux kernel
- 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
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种利用linux内核实现多***的装置及方法,其中,装置包括:用于不同***共用的底层模块;设置在底层模块之上的用于在不同***之间进行切换的***切换模块;及设置在***切换模块之上的不同***;所述***切换模块包括虚拟终端模块及事件模块;所述虚拟终端模块包括用于对不同***进行显示的多个虚拟终端,且***与虚拟终端一一对应;所述事件模块,用于根据用户的切换指令,将底层模块的设备文件提供给不同***进行访问。
Description
技术领域
本发明涉及移动终端多***领域,尤其涉及一种利用linux内核实现多***的装置及方法。
背景技术
随着科技的发展和社会的进步,越来越多的智能设备走进了千家万户,智能手机、智能平板、智能电视等智能产品极大地方便了人们的工作和生活。目前,这些设备上一般只有一个操作***,例如Android、ios、firefox os等。如可以在一台设备上同时安装两个或多个操作***,那么将极大的提高用户的体验,使得用户在一台设备上就可以体验多种***,满足了用户体验不同***的需求。
目前主流的Android设备硬件强大,CPU基本上是双核以及四核,这也为打造多操作***提供了坚实的硬件基础,现有技术也实现了在一台设备上安装两种操作***的方案,但现有的双操作***,如需要切换***,需要重新启动***,才能实现***切换,切换起来不方便;并且,现有的双操作***容易造成屏幕同时显示两个***的问题,易导致屏幕混乱。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种利用linux内核实现多***的装置及方法,旨在解决现有多***实现技术需要重启才能切换***导致***切换不方便以及容易导致屏幕混乱的问题。
本发明的技术方案如下:
一种利用linux内核实现多***的装置,其中,包括:
用于不同***共用的底层模块;
设置在底层模块之上的用于在不同***之间进行切换的***切换模块;
及设置在***切换模块之上的不同***;
所述***切换模块包括虚拟终端模块及事件模块;
所述虚拟终端模块包括用于对不同***进行显示的多个虚拟终端,且***与虚拟终端一一对应;
所述事件模块,用于根据用户的切换指令,将底层模块的设备文件提供给不同***进行访问。
所述的利用linux内核实现多***的装置,其中,所述不同***至少包括第一***和第二***,所述第一***为Android***。
所述的利用linux内核实现多***的装置,其中,所述事件模块包括:
删除单元,用于当根据用户切换指令从Android***切换至第二***时,删除linux内核的设备文件;
设备文件节点创建单元,用于创建新的设备文件节点,用来存储设备文件;
读取单元,用于从新的设备文件节点读取设备文件,捕获用户的操作,并进行响应。
所述的利用linux内核实现多***的装置,其中,所述事件模块还包括:
恢复单元,用于当根据用户切换指令从第二***切回至Android***时,恢复linux内核下已删除的设备文件。
所述的利用linux内核实现多***的装置,其中,所述切换指令为用户通过按下指定热键实现。
所述的利用linux内核实现多***的装置,其中,所述指定热键为组合键。
一种利用linux内核实现多***的方法,其中,包括步骤:
在底层模块之上设置用于在不同***之间进行切换的***切换模块;
在***切换模块之上设置不同***的应用层;
在***切换模块中设置用于对不同***进行显示的多个虚拟终端,且***与虚拟终端一一对应;
当接收到用户的切换指令时,将底层模块的设备文件提供给不同***进行访问;
并通过与***一一对应的虚拟终端对切换后的***进行显示。
所述的利用linux内核实现多***的方法,其中,所述将底层模块的设备文件提供给不同***进行访问的步骤具体包括步骤:
查询并记录当前***使用的虚拟终端,并获取一个空闲的虚拟终端,通过所述空闲虚拟终端进行显示。
所述的利用linux内核实现多***的方法,其中,所述不同***至少包括第一***和第二***,所述第一***为Android***,所述将底层模块的设备文件提供给不同***进行访问的步骤具体包括:
当根据用户切换指令从Android***切换至第二***时,删除linux内核的设备文件;
创建新的设备文件节点,用来存储设备文件;
从新的设备文件节点读取设备文件,捕获用户的操作,并进行响应。
所述的利用linux内核实现多***的方法,其中,所述将底层模块的设备文件提供给不同***进行访问的步骤还包括:
当根据用户切换指令从第二***切回至Android***时,恢复linux内核下已删除的设备文件。
有益效果:本发明通过在底层模块之上设置***切换模块,并在***切换模块中设置虚拟终端模块及事件模块,通过该事件模块使得不同***可以共用一内核,并且能够使当前使用的***响应用户的操作,同时其他***不会进行响应;通过该虚拟终端模块对不同***进行显示,从而避免了多个***同时在屏幕上显示导致的屏幕混乱的问题。
附图说明
图1为本发明一种利用linux内核实现多***的装置较佳实施例的结构框图。
图2为本发明中事件模块的结构框图。
图3为本发明一种利用linux内核实现多***的方法较佳实施例的流程图。
图4为本发明一种利用linux内核实现多***的方法具体实施例的流程图。
具体实施方式
本发明提供一种利用linux内核实现多***的装置及方法,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供的一种利用linux内核实现多***的装置,其包括:
用于不同***共用的底层模块;
设置在底层模块之上的用于在不同***之间进行切换的***切换模块;
及设置在***切换模块之上的不同***;
所述***切换模块包括虚拟终端模块及事件模块;
所述虚拟终端模块包括用于对不同***进行显示的多个虚拟终端,且***与虚拟终端一一对应;
所述事件模块,用于根据用户的切换指令,将底层模块的设备文件提供给不同***进行访问。
本发明的原理是在linux内核的基础上建立一个新的***(当然可以不止一个新的***),新的***和原有的***共享一个linux内核,这就可以达到快速切换***的目的,因为这两个***都具有同一个核心,所以不需要重启才能切换至另一个***,切换起来非常方便。同时,由于本发明中的事件模块可以根据用户的切换指令将底层模块的设备文件提供给不同***的应用层访问,所以避免了两个***同时在屏幕上显示导致屏幕混乱的问题。
下面以一具体实施例来对本发明的装置进行具体说明。
如图1所示,该装置包括:用于web os***以及Android***共用的底层模块,用于在web os***以及Android***之间进行***切换的***切换模块,设置在***切换模块之上的不同***。底层模块包括linux内核、文件***及各种驱动,通过该***切换模块将两个不同的***隔离开来,在***切换模块之上就是不同的***:Android***和web os***,这两个***共享一个linux内核、驱动及文件***,由于linux内核是一个开源的***,所以可以通过修改其代码,来按照本发明的需求进行修改,来实现双***切换。
由于在一个内核上运行两个***,会造成两个***同时显示到屏幕导致***显示混乱的问题,为了解决上述问题,本实施例中的虚拟终端模块设置有用于对不同***进行显示的多个虚拟终端(即图形虚拟终端),且***与虚拟终端一一对应。这样将每一个虚拟终端当成一个虚拟出来的屏幕,不同的***使用不同的虚拟终端,例如在一个虚拟终端上画图,并不会影响到另外的虚拟终端上进行画图等操作,所以两个***分别运行在不同的虚拟终端下即可解决屏幕显示混乱的问题。
假如Android***使用的虚拟终端编号为7,那么web os***使用编号不为7的虚拟终端即可,例如编号为1。当***启动时,默认是切换到了虚拟终端7上进行显示,也即显示Android***,当用户需要切换***时,只需切换到虚拟终端1,显示web os***,当用户需要切换回Android***时,再切换回虚拟终端7即可。
虚拟终端的设备驱动文件路径是/dev/tty,只需对这个文件进行操作,并通过调用ioctl函数(用于向设备发出控制和配置命令的函数)即可实现切换虚拟终端的目的。由于linux内核最大支持63个虚拟终端,所以理论上在linux内核上可以同时安装63个***。
在本实施例中,事件模块其具有读取用户的输入操作功能,并能够将用户操作指令传递给上层,交由上层进行响应处理。事件模块的功能需要linux内核的Input Driver(输入驱动)来支持。在linux内核中,任何设备(外设输入设备)包括遥控器、鼠标等都是被当成文件来访问的,在路径/dev/input/下以event开头的文件就是设备文件,只需对这些设备文件进行读取,并存放在一个队列中,并由上层的应用层进行读取,作出相应的处理,即可完成相应的功能,所以Android***就是利用/dev/input/下的dev设备来读取用户的输入操作。本发明中,为了隔离不同***,如图2所示,在事件模块100中设置了:
删除单元110,用于当根据用户切换指令从Android***切换至第二***时,删除linux内核的设备文件;例如当用户将***从Android***切换至web os***时,就删除linux内核的设备文件,即删除dev/input/下相关的设备文件;
设备文件节点创建单元120,用于创建新的设备文件节点,用来存储设备文件;即在其他路径下创建新的设备文件节点,用来存储设备文件;
读取单元130,用于从新的设备文件节点读取设备文件,捕获用户的操作,并进行响应。web os***可从新的设备文件节点来读取设备文件,这样就能捕获用户的输入操作,并传递给上层进行响应;
恢复单元140,用于当根据用户切换指令从第二***切回至Android***时,恢复linux内核下已删除的设备文件;这是因为原有的设备文件被删除,所以Android***无法获取用户输入操作,所以当用户将***从web os***切换回至Android***时,就需要再恢复这些已删除的设备文件,从而达到控制两个***分别读取用户输入操作的目的。
较优选的,所述切换指令为用户通过按下指定热键实现,即用户通过按下某个指定热键即可实现***切换,对于不同的设备其指定热键可能不同,所以需对不同的设备进行不同的定义,例如对于手机和带有遥控器的电视其定义是不同的。更优选的,所述指定热键为组合键,这样能够避免用户错按或误按影响用户使用的问题。指定热键的定义,可以在linux内核中修改事件驱动,来接受相应的指定按键切换到不同的***中。
修改的代码文件路径是/kernel /drivers/input/input.c,在该文件中,增加对指定热键的接收以及处理函数。当接受到切换指定热键后,调用***切换模块的接口去进行***切换。
上述实施例是以设备同时安装Android***和web os***为例进行说明,显然,本发明还可安装目前流行的其他***,例如firefox web os等***,或者基于现有的硬件基础,同时安装三个或以上的***,同样能实现三***切换操作的目的。另外,本发明中,假如设备上的某个***出现故障,还可切换到另外一个***上去进行修复,这也方便了用户解决故障。
基于上述装置,本发明还提供一种利用linux内核实现多***的方法,如图3所示,其包括步骤:
S101、在底层模块之上设置用于在不同***之间进行切换的***切换模块;
S102、在***切换模块之上设置不同***的应用层;
S103、在***切换模块中设置用于对不同***进行显示的多个虚拟终端,且***与虚拟终端一一对应;
S104、当接收到用户的切换指令时,将底层模块的设备文件提供给不同***进行访问;
S105、并通过与***一一对应的虚拟终端对切换后的***进行显示。
进一步,所述步骤S104具体包括:
查询并记录当前***使用的虚拟终端,并获取一个空闲的虚拟终端,通过所述空闲虚拟终端进行显示。
进一步,所述不同***至少包括第一***和第二***,所述第一***为Android***,所述步骤S104具体包括:
当根据用户切换指令从Android***切换至第二***时,删除linux内核的设备文件;
创建新的设备文件节点,用来存储设备文件;
从新的设备文件节点读取设备文件,捕获用户的操作,并进行响应。
进一步,所述步骤S104还包括:
当根据用户切换指令从第二***切回至Android***时,恢复linux内核下已删除的设备文件。
下面提供一利用linux内核实现多***的方法具体实施例,如图4所示,其包括:
开始;
S201、用户开机;
S202、默认进入到Android***;
S203、接收到用户的切换指令时,准备切换至第二***;
S204、内核接收热键,启动切换进程;
S205、查询当前Android***使用的虚拟终端,并记录其编号,同时查询一个空闲的虚拟终端,并切换至该空闲虚拟终端;
S206、删除linux内核的设备文件,同时创建新的设备文件节点,用来存储设备文件;
S207、调用第二***的初始化进程,并将控制权交给第二***;
S208、当用户按下切换回Android***的热键时,使用之前记录的Android***的虚拟终端;
S209、恢复原有的linux内核的设备文件,同时删除当前第二***使用的设备文件;
结束。
关于上述方法的具体技术细节在前面的方法中已有详述。
综上所述,本发明通过在底层模块之上设置***切换模块,并在***切换模块中设置虚拟终端模块及事件模块,通过该事件模块使得不同***可以共用一内核,并且能够使当前使用的***响应用户的操作,同时其他***不会进行响应;通过该虚拟终端模块对不同***进行显示,从而避免了多个***同时在屏幕上显示导致的屏幕混乱的问题。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (6)
1.一种利用linux内核实现多***的装置,其特征在于,包括:
用于不同***共用的底层模块;
设置在底层模块之上的用于在不同***之间进行切换的***切换模块;
及设置在***切换模块之上的不同***;
所述***切换模块包括虚拟终端模块及事件模块;
所述虚拟终端模块包括用于对不同***进行显示的多个虚拟终端,且***与虚拟终端一一对应;
所述事件模块,用于根据用户的切换指令,将底层模块的设备文件提供给不同***进行访问;
所述不同***至少包括第一***和第二***,所述第一***为Android***;
所述事件模块包括:
删除单元,用于当根据用户切换指令从Android***切换至第二***时,删除linux内核的设备文件;
设备文件节点创建单元,用于创建新的设备文件节点,用来存储设备文件;
读取单元,用于从新的设备文件节点读取设备文件,捕获用户的操作,并进行响应。
2.根据权利要求1所述的利用linux内核实现多***的装置,其特征在于,所述事件模块还包括:
恢复单元,用于当根据用户切换指令从第二***切回至Android***时,恢复linux内核下已删除的设备文件。
3.根据权利要求1所述的利用linux内核实现多***的装置,其特征在于,所述切换指令为用户通过按下指定热键实现。
4.根据权利要求3所述的利用linux内核实现多***的装置,其特征在于,所述指定热键为组合键。
5.一种利用linux内核实现多***的方法,其特征在于,包括步骤:
在底层模块之上设置用于在不同***之间进行切换的***切换模块;
在***切换模块之上设置不同***的应用层;
在***切换模块中设置用于对不同***进行显示的多个虚拟终端,且***与虚拟终端一一对应;
当接收到用户的切换指令时,将底层模块的设备文件提供给不同***进行访问;
并通过与***一一对应的虚拟终端对切换后的***进行显示;
所述将底层模块的设备文件提供给不同***进行访问的步骤具体包括步骤:
查询并记录当前***使用的虚拟终端,并获取一个空闲的虚拟终端,通过所述空闲虚拟终端进行显示;
所述不同***至少包括第一***和第二***,所述第一***为Android***,所述将底层模块的设备文件提供给不同***进行访问的步骤具体包括:
当根据用户切换指令从Android***切换至第二***时,删除linux内核的设备文件;
创建新的设备文件节点,用来存储设备文件;
从新的设备文件节点读取设备文件,捕获用户的操作,并进行响应。
6.根据权利要求5所述的利用linux内核实现多***的方法,其特征在于,所述将底层模块的设备文件提供给不同***进行访问的步骤还包括:
当根据用户切换指令从第二***切回至Android***时,恢复linux内核下已删除的设备文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310677376.1A CN103677989B (zh) | 2013-12-13 | 2013-12-13 | 一种利用linux内核实现多***的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310677376.1A CN103677989B (zh) | 2013-12-13 | 2013-12-13 | 一种利用linux内核实现多***的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103677989A CN103677989A (zh) | 2014-03-26 |
CN103677989B true CN103677989B (zh) | 2017-10-24 |
Family
ID=50315644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310677376.1A Active CN103677989B (zh) | 2013-12-13 | 2013-12-13 | 一种利用linux内核实现多***的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103677989B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791991B (zh) * | 2014-12-22 | 2018-07-17 | Tcl集团股份有限公司 | 基于Firefox OS平台的电视***及其实现方法 |
CN104732165B (zh) * | 2015-03-06 | 2018-11-06 | 西安酷派软件科技有限公司 | 一种应用的管理方法和终端 |
CN104794395A (zh) * | 2015-05-13 | 2015-07-22 | 上海瓶钵信息科技有限公司 | 基于体系结构特性的轻量级多***安全管理架构 |
CN106529228A (zh) * | 2015-09-02 | 2017-03-22 | 北京壹人壹本信息科技有限公司 | 个人信息安全操作方法及装置 |
CN106548084A (zh) * | 2015-09-02 | 2017-03-29 | 北京壹人壹本信息科技有限公司 | 文件安全防护方法及装置 |
CN105511920B (zh) * | 2015-12-08 | 2019-05-14 | 北京元心科技有限公司 | 一种基于容器的移动终端操作***升级方法和装置 |
CN105511947B (zh) * | 2015-12-11 | 2020-05-01 | 北京元心科技有限公司 | 多***中事件信息处理的方法及装置 |
CN107341407B (zh) * | 2017-07-26 | 2021-03-23 | 惠州Tcl移动通信有限公司 | 基于终端的多安卓***实现方法、存储介质及终端 |
CN109982145B (zh) * | 2017-12-28 | 2021-08-24 | 深圳Tcl新技术有限公司 | 一种智能电视***、智能电视及其控制方法 |
CN109033429A (zh) * | 2018-08-10 | 2018-12-18 | 北京小米移动软件有限公司 | 文件的访问方法、装置及访问接口 |
CN110018894A (zh) * | 2019-04-09 | 2019-07-16 | 西安外事学院 | 一种基于Android容器的多***与单***切换方法及装置 |
CN111625293B (zh) * | 2020-05-15 | 2023-04-11 | 武汉蓝星科技股份有限公司 | 一种基于linux内核的终端双***及其硬件访问管理方法 |
CN112799521B (zh) * | 2021-03-29 | 2021-08-27 | 上海捷勃特机器人有限公司 | 电子设备及操作电子设备的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02297636A (ja) * | 1989-05-11 | 1990-12-10 | Nec Corp | 仮想計算機システムにおけるos制御方式 |
JPH0922365A (ja) * | 1995-07-05 | 1997-01-21 | Fujitsu Ltd | 仮想計算機システム |
US7370324B2 (en) * | 2003-09-30 | 2008-05-06 | Intel Corporation | Switching between a service virtual machine and a guest virtual machine in a virtual machine monitor environment |
CN101256503A (zh) * | 2006-12-22 | 2008-09-03 | 英特尔公司 | 通过多线程主虚拟机监视器来实现多线程客户操作***执行的方法和装置 |
CN101894047A (zh) * | 2010-06-24 | 2010-11-24 | 北京航空航天大学 | 一种基于内核虚拟机调度策略的实现方法 |
-
2013
- 2013-12-13 CN CN201310677376.1A patent/CN103677989B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02297636A (ja) * | 1989-05-11 | 1990-12-10 | Nec Corp | 仮想計算機システムにおけるos制御方式 |
JPH0922365A (ja) * | 1995-07-05 | 1997-01-21 | Fujitsu Ltd | 仮想計算機システム |
US7370324B2 (en) * | 2003-09-30 | 2008-05-06 | Intel Corporation | Switching between a service virtual machine and a guest virtual machine in a virtual machine monitor environment |
CN101256503A (zh) * | 2006-12-22 | 2008-09-03 | 英特尔公司 | 通过多线程主虚拟机监视器来实现多线程客户操作***执行的方法和装置 |
CN101894047A (zh) * | 2010-06-24 | 2010-11-24 | 北京航空航天大学 | 一种基于内核虚拟机调度策略的实现方法 |
Non-Patent Citations (1)
Title |
---|
基于KVM的虚拟机调度方法研究;崔泽永;《中国优秀硕士学位论文全文数据库》;20110815(第8期);说明书第14-15页,20-22页,图3-1,3-6,4-3 * |
Also Published As
Publication number | Publication date |
---|---|
CN103677989A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103677989B (zh) | 一种利用linux内核实现多***的装置及方法 | |
CN102595244B (zh) | 基于多点触摸手势切换电视界面的人机交互方法及*** | |
CN103955329A (zh) | 智能终端、移动终端及其操作方法 | |
CN103634169A (zh) | 一种基于智能终端实现的家用电器控制*** | |
CN105573753B (zh) | 多***切换的方法及装置 | |
CN103648045A (zh) | 通过侧边导航栏切换显示界面的方法及装置 | |
CN104615402B (zh) | 一种车联网屏幕分割显示的方法 | |
CN102420911A (zh) | 智能手机双***切换装置及切换方法 | |
EP3190499A1 (en) | Method and apparatus for switching key functions of touchscreen terminal | |
CN103491434B (zh) | 一种基于安卓的机顶盒的应用程序切换方法 | |
CN104536648A (zh) | 智能终端、移动终端及其操作方法 | |
JP2016164769A (ja) | ユーザ装置間で複数の画面を分配して、入力インターフェースを共有するマルチスクリーン具現方法、及びマルチスクリーン設定を実行するユーザ装置。 | |
CN105407216A (zh) | 实现按键自定义的方法及*** | |
CN102306101A (zh) | 一种应用程序作为桌面的方法和装置 | |
CN104536795A (zh) | 一种应用程序的启动方法及装置 | |
CN103744653A (zh) | 移动终端及应用图标的管理方法 | |
CN105335178A (zh) | 一种启动控制方法,及装置 | |
CN104754310A (zh) | 终端设备摄像头接入目标设备的方法和装置 | |
CN103020068B (zh) | 一种同步方法及同步装置 | |
CN104579889A (zh) | 一种用于调用网络功能的方法及装置 | |
CN105005440A (zh) | 一种移动终端显示界面滚动条切换的方法、装置及终端 | |
CN110543264B (zh) | 基于分屏模式下应用交互的方法、设备和存储介质 | |
EP3048858B1 (en) | Wireless customer premise equipment and accessing method therefor | |
CN101739364A (zh) | 一种基于usb接口的通信设备及实现业务配置的方法 | |
CN203133787U (zh) | 一种新型分布式触控面板 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |