论文部分内容阅读
随着移动智能终端数量的爆炸式增长以及穿戴式设备的兴起,如何有效地利用智能终端的资源并应对不同应用场合成为了当前研究的热点。将传统的虚拟化技术和移动智能终端结合起来将成为一个崭新的发展方向--移动虚拟化。移动虚拟化不仅可以满足单一移动终端上运行不同操作系统的需要,从而节省不同平台下开发相同功能的软件成本,还能通过虚拟化技术带来的隔离性实现单一终端上企业系统和个人系统的分离,防范个人系统上的进程给企业带来的潜在危害,满足一些具有安全要求的企业对“自带设备”的需求。从市场角度来看,虚拟化技术大大降低低端手机的成本,使得低廉的单核手机能承载更多的功能。基于以上的研究背景,本文首先介绍了传统虚拟化以及移动虚拟化的一般实现方式,作为方式之一的操作系统级虚拟化与Hypervisor架构的虚拟化方式的相比较具有性能、部署上的优势。然后从操作系统级虚拟化的层次出发研究Linux容器技术,剖析容器技术中最关键的两个部分:Cgroup系统和命名空间的架构和实现原理,研究内容包括:(1)通过结合通用数据结构的分析,给出Cgroup系统的节点层级结构;(2)重点分析Cgroup系统中子系统控制器的实现原理,包括CPU控制器、内存控制器、设备资源控制器等;(3)通过Cgroup文件系统的挂载和查看修改资源管理信息的过程分析,给出Cgroup文件系统挂载和功能接口的实现原理。之后,本文会描述Linux系统中命名空间的各个子模块,从源码级别分析各个命名空间的结构和其作用于进程资源隔离的实现原理。基于以上对于容器技术关键部分的研究成果,本文给出基于Linux容器技术的Android终端移动虚拟化方案。在此方案中,通过修改Android系统内核适配LXC用户空间工具的功能,并在SD卡上构建Debian OS作为虚拟化管理的宿主环境。在此环境中,通过配置容器内Android根文件系统、网络、设备等资源,构建一个用于运行Android系统的容器环境,使得经过改造的Android系统运行于其中,实现操作系统级的移动虚拟化方案。最后通过分析运行结果,给出Android系统使用容器技术进行操作系统级虚拟化具有效率和隔离相平衡的优势的结论。