[发明专利]基于OS虚拟化的多模式OS的系统和其创建、切换方法在审
申请号: | 201410852021.6 | 申请日: | 2014-12-31 |
公开(公告)号: | CN104598309A | 公开(公告)日: | 2015-05-06 |
发明(设计)人: | 朱勇;耿增强 | 申请(专利权)人: | 中科创达软件股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/455 |
代理公司: | 北京华夏正合知识产权代理事务所(普通合伙) 11017 | 代理人: | 韩登营;张焕亮 |
地址: | 100191 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 os 虚拟 模式 系统 创建 切换 方法 | ||
技术领域
本发明涉及安卓系统的移动设备的安全技术领域,特别是指一种基于OS虚拟化的多模式系统和其创建、切换方法。
背景技术
在安卓设备上,例如手机、平板等移动设备,基于安全的需要,目前采用两种工作模式的操作系统(OS):普通模式OS和安全模式OS。
当安卓设备运行的是普通模式OS时,可执行安全性要求低的应用,例如用户通常的开放式的网络浏览、信息发送等日常应用。当安卓设备运行的是安全模式OS时,则可以执行安全性要求高的特殊应用,比如个人设备办公(Bring Your Own Device)或者个人隐私保护,并限制用户的某些低安全性的应用。其中,上述两种模式的运行环境从操作系统层进行隔离,使得一种模式不影响另一种模式。
为了在安卓设备上可实现运行两种不同模式OS,目前有三种技术方案:基于虚拟机的方案,这种方案占用内存多,效率低,不太适合用于移动设备;基于应用容器的方案,这种方案并未完全从操作系统层进行隔离,安全性低但占用内存较小;基于OS虚拟化的方案,这种方案处于上两者的中间状态,安全性低于虚拟机但高于应用容器,内存少于虚拟机但高于应用容器,约是应用容器占用内存的两倍。从安全性和内存占用量来看,基于OS虚拟化的方案更适用于移动设备。
如图1示出了基于OS虚拟化的双模式OS的系统构架,包括内核(Kernel)、基于内核启动的两个用户态环境。两个用户态环境,一个用于运行普通模式的OS,另一个用于运行安全模式的OS。每个用户态环境都分别包含一套安卓的本地服务(NativeService)、孵化器(Zygote)、Java服务(SystemServer)和应用(App)。其中:
应用是指在安卓系统中运行的各种应用,如:联系人,日历,各种社交应用,游戏等。
Java服务是安卓系统中为应用提供管理和服务的进程,它包含:安卓包管理,窗口管理,应用栈管理等。
孵化器是安卓系统的Java虚拟机进程,负责创建所有的应用进程和Java服务进程。
本地服务是安卓系统非Java的服务进程,主要是用来为各个应用对内核的描述的各硬件资源(如对应的驱动端口,或设备文件)的访问或调用进行管理。例如对内核提供的显示服务(SurfaceFlinger)、声音服务、视频服务、视频播放引擎(NuPlayer)服务、蓝牙(BT)服务、Wifi等服务的访问或调用进行管理,管理的内容包括根据应用的访问或调用为该应用分配内核的上述某服务,或连接或断开到内核的上述某服务等。例如根据某应用的调用请求,控制将内核提供的声音服务(如对应的驱动接口,或声音设备描述文件的接口)分配给该应用。
名称空间和分组控制器(Namespace+Control Groups)是内核提供的一套资源隔离的机制和限制资源使用的机制,各用户态环境基于该特性启动,从而实现不同模式的OS的运行环境从操作系统层进行隔离,不同模式的OS之间不相互影响。
当安卓设备启动后,依次启动所述两个用户态环境并进入一用户态环境,即进入一种模式的OS,当需要切换时,则通知内核,由内核控制切换进入另一用户态环境,即切换至另一模式的OS。
这种方式下,启动的两个用户态环境都分别包含一套安卓的本地服务、孵化器、Java服务和应用,因此其所占内存需要较大,约是启动一份用户态环境所需内存的两倍。如何能够降低其内存占用量,是有待于解决的技术问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于OS虚拟化的多模式OS的系统和其创建、切换方法,以实现降低其内存占用量。
本发明提供的一种基于OS虚拟化的多模式OS的系统,用于安卓设备,包括:内核Kernel、基于内核启动的至少三个用户态环境、域管理DomainManager;
其中所述至少三个用户态环境包括用于基础服务的一个用户态环境、用于各个不同模式OS的其他各个用户态环境;
用于基础服务的用户态环境包括:安卓的本地服务NativeService和域引擎DomainEngine;
所述安卓的NativeService用于对内核为应用提供的各服务的访问或调用进行管理;
所述DomainEngine用于控制安卓设备上的NativeService提供的各服务允许某一被选模式OS的访问和调用;
用于各个不同模式OS的各个用户态环境分别包括:孵化器Zygote、Java服务SystemServer和应用App;
所述DomainManager用于控制各个不同模式OS的创建和生命周期管理;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科创达软件股份有限公司,未经中科创达软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410852021.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:校正失效脚本的方法和设备
- 下一篇:系统确定方法、系统确定装置与终端