一种云手机启动虚拟操作系统的方法、存储介质和处理器与流程

文档序号:13821237阅读:577来源:国知局
一种云手机启动虚拟操作系统的方法、存储介质和处理器与流程

本发明涉及网络技术领域,特别涉及一种云手机启动虚拟操作系统的方法、存储介质和处理器。



背景技术:

云手机,是一个基于云计算强大虚拟应用和移动互联网的智能手机应用云平台。基于云计算在大规模计算、强大的存储能力、虚拟化应用等方面突出的优势,云平台为智能手机用户提供多元化、全方位的虚拟手机应用和服务,全面支持各种手机应用程序的展示、下载、应用与管理服务,并卓越实现全天候云端智能托管应用,让用户脱离移动终端的状态下,也能将各种应用程序托管到到云端,保持全天候在线状态,全面实现智能手机应用虚拟化。

lxc,其名称来自linux软件容器(linuxcontainers)的缩写,一种操作系统层虚拟化(operatingsystem–levelvirtualization)技术,为linux内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(container),内含应用软件本身的代码,以及所需要的操作系统核心和库。通过统一的名字空间和共用api来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得linux用户可以容易的创建和管理系统或应用容器。

目前有手机厂商,譬如华为和魅族实现了一个手机“多操作系统”,但是他们其实用的是一套操作系统,只是在一套操作系统之上开通多个用户来实现虚拟多开,这种方法的弊端是用户之前的操作不够隔离,存在非常大的安全隐患,很容易被病毒或者黑客攻破,并且程序之前的运行有可能存在冲突的情况和数据共享的情况。



技术实现要素:

本发明的实施方式旨在至少解决现有技术中存在的技术问题之一。为此,本发明的实施方式需要提供一种云手机启动虚拟操作系统的方法、存储介质和处理器。

本发明实施方式的云手机启动虚拟操作系统的方法,包括:

在云手机上配置至少一个用于安装操作系统的虚拟机;

当监测到对任一所述虚拟机中安装的操作系统的启动操作时,获取与所述云手机的设备属性信息不同的虚拟设备属性信息;

利用所述虚拟设备属性信息为所述操作系统创建运行环境,并在所述运行环境下启动所述操作系统。

一个实施例中,云手机的底层运行linux系统,所述方法还包括:预先在linux系统上利用linux软件容器技术创建至少一个虚拟机。

另一个实施例中,所述操作系统为安卓操作系统,所述云手机包含通信模块,该通信模块用于linux系统和安卓操作系统之间的双向通信,该通信模块包含一个目录结构;

所述方法还包括:

在通信模块当前的目录结构下增加至少一个子目录;

则在云手机上配置至少一个用于安装操作系统的虚拟机包括:

在所述子目录中配置至少一个用于安装安卓操作系统的虚拟机。

进一步地,所述安卓操作系统为去除包括蓝牙、wifi、sim卡和视频输出在内的一项或多项功能的安卓操作系统。

在一个实施例中,所述获取与所述云手机的设备属性信息不同的虚拟设备属性信息包括:

获取云手机的设备属性信息;

按照预设规则对云手机的设备属性信息中的指定位置数据进行修改,得到修改后的设备属性信息;

确定所述修改后的设备属性信息为所述虚拟设备属性信息。

进一步地,所述设备属性信息和/或虚拟设备属性信息包括以下至少一项:国际移动设备识别码imei号、硬件地址。

在又一个实施例中,所述方法还包括:

当接收到在所述虚拟机中安装所述操作系统的安装指令时,判断所述虚拟机中是否已安装有相同的操作系统;

若是,则拒绝在所述虚拟机中安装所述操作系统;否则,则根据所述安装指令在所述虚拟机中安装所述操作系统。

本发明实施方式还提出一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现前述任一项的云手机启动虚拟操作系统的方法。

本发明实施方式还提出一种处理器,其上存储有可被该处理器运行的计算机程序,计算机程序被运行时可执行前述任一项的云手机启动虚拟操作系统的方法。

本发明由于在物理机上面创建了多个虚拟机来运行操作系统,各个操作系统的运行具有高度的隔离性,每个操作系统的运行相对独立,程序可以不做修改正常运行,并且数据也是独立的不互相干扰,具有高度的数据安全性。

本发明的附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的实施方式的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:

图1是本发明实施方式的一种云手机启动虚拟操作系统的方法的流程示意图;

图2是本发明实施方式的另一种云手机启动虚拟操作系统的方法的流程示意图。

具体实施方式

下面详细描述本发明的实施方式,实施方式的示例在附图中示出,其中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅可用于解释本发明的实施方式,而不能理解为对本发明的实施方式的限制。

请参阅图1,图1是本发明实施方式的一种云手机启动虚拟操作系统的方法的流程示意图。

本发明实施方式的一种云手机启动虚拟操作系统的方法,在该实施方式中,以云手机作为步骤的执行对象为例。该方法包括:

步骤11,在云手机上配置至少一个用于安装操作系统的虚拟机;

步骤12,当监测到对任一虚拟机中安装的操作系统的启动操作时,获取与云手机的设备属性信息不同的虚拟设备属性信息;

步骤13,利用虚拟设备属性信息为操作系统创建运行环境,并在运行环境下启动操作系统。

利用本发明的技术方案,可以在云手机上配置多个虚拟机,当云手机监测到要启动某个操作系统时,可以通过获取虚拟设备属性信息,然后来创建运行环境,完成虚拟操作系统,即运行在云手机的虚拟机上的操作系统的启动。以此达到真正的可启动多个操作系统的功能,通过不同虚拟机上独立的操作系统,为用户实现数据隔离,保证了数据的安全。

具体地,云手机的底层运行的是linux系统,该方法还包括:预先在linux系统上利用linux软件容器技术创建至少一个虚拟机。linux软件容器技术,即lxc,其名称来自linux软件容器(linuxcontainers)的缩写,一种操作系统层虚拟化(operatingsystem–levelvirtualization)技术,为linux内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(container),内含应用软件本身的代码,以及所需要的操作系统核心和库。通过统一的名字空间和共用api来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得linux用户可以容易的创建和管理系统或应用容器。

在linux内核中,提供了cgroups功能,来达成资源的区隔化。cgroups,其名称源自控制组群(controlgroups)的简写,是linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如cpu、内存、磁盘输入输出等)。它同时也提供了名称空间区隔化的功能,使应用程序看到的操作系统环境被区隔成独立区间,包括进程树,网络,用户id,以及挂载的文件系统。但是cgroups并不一定需要引导任何虚拟机。lxc利用cgroups与名称空间的功能,提供应用软件一个独立的操作系统环境。lxc不需要hypervisor这个软件层,软件容器(container)本身极为轻量化,提升了创建虚拟机的速度。

本实施例中,通过在linux系统上面创建好多个虚拟机后,在虚拟机上运行起多个操作系统。

该操作系统可以是安卓(android)系统,但对于官方的安卓系统,是不适应这种lxc虚拟机的运行方式,所以需要对官方binder驱动模块做了修改。官方的binder驱动模块是用于linux系统和安卓操作系统之间的双向通信的通信模块,该通信模块包含一个目录结构。本实施方式提出的方法还包括:在通信模块当前的目录结构下增加至少一个子目录;则在云手机上配置至少一个用于安装操作系统的虚拟机包括:在子目录中配置至少一个用于安装安卓操作系统的虚拟机。这种修改可以是在原有binder源码的基础上新增了0-n的子目录,并在0-n的子目录内存放原本binder驱动模块的目录结构,实现了物理机可以通过修改过的binder驱动和不同的虚拟机进行通信。

由于本实施方式中安卓系统是运行在虚拟机上,所以该安卓系统不一定要求是官方完整的操作系统,可以是去除包括蓝牙、wifi、sim卡和视频输出在内的一项或多项功能的安卓操作系统。这样,操作系统更加精简,进一步降低运行的内存使用。

具体地,获取与云手机的设备属性信息不同的虚拟设备属性信息包括:

获取云手机的设备属性信息;

按照预设规则对云手机的设备属性信息中的指定位置数据进行修改,得到修改后的设备属性信息;

确定修改后的设备属性信息为虚拟设备属性信息。

上述设备属性信息和/或虚拟设备属性信息包括以下至少一项:国际移动设备识别码imei号、硬件地址。

以具体数据为例说明:假设云手机的硬件地址为00-05-5d-e8-0f-a3,预设规则为随机规则,且指定位置数据为云手机的硬件地址的正数第3位数据,则将云手机的硬件地址的正数第3位数据(即0)随机修改为任意与真实数据不同的数据,假设修改为a,可得到修改后的硬件地址为00-a5-5d-e8-0f-a3,那么,该修改后的硬件地址即为虚拟硬件地址。

该实施例中,通过预设规则对云手机设备属性信息中的指定位置数据进行修改来生成虚拟设备属性信息,使得虚拟设备属性信息更加接近于云手机的设备属性信息,且符合设备属性信息的规则,因此既能够实现为安装操作系统生成与云手机设备属性信息不同的虚拟设备属性信息,还能够避免虚拟设备属性信息与云手机设备属性信息差异太大所导致的无法正常使用的情况。

在一个实施例中,本实施例提出的方法还包括:

当接收到在虚拟机中安装操作系统的安装指令时,判断虚拟机中是否已安装有相同的操作系统;

若是,则拒绝在虚拟机中安装操作系统;否则,则根据安装指令在虚拟机中安装操作系统。

例如,在虚拟机中安装flyme操作系统(魅族手机定制的安卓操作系统)时,首先判断该虚拟机中是否已安装flyme操作系统;若已安装,则拒绝在该虚拟机中重复安装flyme操作系统,此时可输出提示信息以提示用户当前虚拟机中已安装有flyme操作系统;若未安装,则根据安装指令在该虚拟机中安装flyme操作系统。

该实施例中,通过判断虚拟机中是否已安装有相同的操作系统,且在已安装相同的操作系统时拒绝在该虚拟机中重复安装,确保了一个虚拟机中只有一个操作系统,从而更好地实现保障系统可靠运行的目的。

根据本发明其中一实施例,还提供了一种存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(epro或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

同理,根据本发明其中一实施例,还提供了一种处理器,其上存储有可被该处理器运行的计算机程序,在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。

请参阅图2,图2是本发明实施方式的另一种云手机启动虚拟操作系统的方法的流程示意图。

该实施方式中,云手机的底层运行linux系统,下面会利用linux软件容器技术(lxc技术)在linux系统上面创建和管理容器,并在容器内运行安卓操作系统。

本实施方式提出的方法包括:

步骤21,预先在linux系统上利用linux软件容器技术创建至少一个虚拟机;

步骤22,在通信模块当前的目录结构下增加至少一个子目录;

步骤23,在子目录中配置至少一个用于安装安卓操作系统的虚拟机;

步骤24,当监测到对任一虚拟机中安装的安卓操作系统的启动操作时,获取与云手机的设备属性信息不同的虚拟设备属性信息;

步骤25,利用虚拟设备属性信息为安卓操作系统创建运行环境,并在运行环境下启动安卓操作系统。

linux软件容器技术在前面表述中已有介绍,在此不再赘述。但对于官方的安卓系统,是不适应这种lxc虚拟机的运行方式,所以需要对官方binder驱动模块做了修改。官方的binder驱动模块是用于linux系统和安卓操作系统之间的双向通信的通信模块,该通信模块包含一个目录结构。这种增加若干个子目录的方式的修改可以是在原有binder源码的基础上新增了0-n的子目录,并在0-n的子目录内存放原本binder驱动模块的目录结构,实现了物理机可以通过修改过的binder驱动和不同的虚拟机进行通信。

由于本实施方式中安卓系统是运行在虚拟机上,所以该安卓系统不一定要求是官方完整的操作系统,可以是去除包括蓝牙、wifi、sim卡和视频输出在内的一项或多项功能的安卓操作系统。这样,操作系统更加精简,进一步降低运行的内存使用。

其中,获取与云手机的设备属性信息不同的虚拟设备属性信息包括:

获取云手机的设备属性信息;

按照预设规则对云手机的设备属性信息中的指定位置数据进行修改,得到修改后的设备属性信息;

确定修改后的设备属性信息为虚拟设备属性信息。

上述设备属性信息和/或虚拟设备属性信息包括以下至少一项:国际移动设备识别码imei号、硬件地址。

以具体数据为例说明:假设云手机的硬件地址为00-05-5d-e8-0f-a3,预设规则为随机规则,且指定位置数据为云手机的硬件地址的正数第3位数据,则将云手机的硬件地址的正数第3位数据(即0)随机修改为任意与真实数据不同的数据,假设修改为a,可得到修改后的硬件地址为00-a5-5d-e8-0f-a3,那么,该修改后的硬件地址即为虚拟硬件地址。

该实施例中,通过预设规则对云手机设备属性信息中的指定位置数据进行修改来生成虚拟设备属性信息,使得虚拟设备属性信息更加接近于云手机的设备属性信息,且符合设备属性信息的规则,因此既能够实现为安装操作系统生成与云手机设备属性信息不同的虚拟设备属性信息,还能够避免虚拟设备属性信息与云手机设备属性信息差异太大所导致的无法正常使用的情况。

在本发明的实施方式的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明的实施方式和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的实施方式的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的实施方式的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

在本发明的实施方式的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明的实施方式中的具体含义。

在本发明的实施方式中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。

下文的公开提供了许多不同的实施方式或例子用来实现本发明的实施方式的不同结构。为了简化本发明的实施方式的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明的实施方式可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本发明的实施方式提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的应用和/或其他材料的使用。

在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理模块的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的实施方式的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明的各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1