(转)基于Linux的移动终端操作系统级虚拟化方案及优势

1 引言
Linux移动终端是指基于Linux内核的手机、移动互联网设备(MID)和上网本等便携设备。In-tel公司的MID设备、基于Google公司的Android系统的手机和基于Maemo系统的诺基亚手机等都属于Linux移动终端Linux移动终端的市场份额不断扩大。未来几年,3G通信技术、移动设备硬件技术的发展和应用程序商店模式的普及将进一步扩大移动终端的用途。
然而,移动终端所面临的安全威胁很快将超越个人电脑,成为个人信息安全的第一大隐患。2009年以来,病毒的年度增长数量将有可能超过过去10年的总和。隐私信息被盗、通话被窃听等将给个人信息安全带来极大威胁。而且,移动终端面临更多隐患,包括下载安装低品质的应用程序容易导致整机失灵和应用程序相互冲突等。此外,移动终端与情景模式相适配将是受欢迎的,这意味着用于工作时的使用环境和用于游戏时的使用环境是不同的。总而言之,移动终端需要更安全、更可用和更个性化。
针对市场份额日益扩大的Linux移动终端,本文提出了操作系统级虚拟化技术,用于隔离安全威胁和隐患,避免程序失败导致整机失灵,同时通过提供与应用情景模式相适配的使用环境来满足个性化需求。这一技术比国外普遍采用的硬件级半虚拟化技术更适用于大众用户。
2 移动终端虚拟化技术现状
国内外普遍看好移动终端虚拟化的前景。下面列出了国外四家公司在移动终端虚拟化方面的技术动态。国内尚无类似产品问世。 图1硬件级半虚拟化
硬件级半虚拟化具有以下特点:
(1)因虚拟化造成的性能损失为200^'8000
(2)不同虚拟硬件平台上可以运行不同的操作系统。
(3)操作系统要作出修改,以适配虚拟硬件平台的接口。
(4)采用“分离设备驱动模型”来实现共享设备的虚拟化。该驱动模型包含前端驱动和后端驱动,由后端驱动调用真实的驱动程序。
硬件级半虚拟化的不足在于:
(1)增加软件费用。用户须分别为运行于各个虚拟机内的操作系统和应用软件支付费用,即使应用软件的功能类似。
(2)增加用户学习成本。运行多个操作系统时,用户须学习不同操作系统的不同交互方式。
(3)实现硬件级半虚拟化技术的工程规模大,而且难度高。主要原因是实现时需要与硬件打交道;而且,移动终端广泛采用的ARM处理器不能很好地支持虚拟化;此外,运行在虚拟机上的操作系统要作出修改。
以上不足表明,采用硬件级半虚拟化技术的移动终端不适用于大众用户。因为大众用户更注重经济和好用,而运行多种操作系统的需求对多数人而言并不强烈。
本文选用操作系统级虚拟化(下简称为OS虚拟化)技术路线,一方面能够增强移动终端的安全性、可用性和个性化;另一方面既不增加软件费用也不增加用户学习成本。操作系统级虚拟化不支持运行多种不同的操作系统。对Linux移动终端而言,这意味着只能在上面运行基于Linux内核的系统。鉴于多数大众用户不需要运行多种操作系统,这一技术路线有着良好的应用价值。
3 Linux移动终端的os虚拟化
OS虚拟化的本质是在操作系统内核之上构造出隔离的运行环境。每一个运行环境与没有进行虚拟化时设备提供的运行环境是一模一样的,这一运行环境被称为虚拟运行环境,简称为虚拟环境
经过OS虚拟化Linux移动终端的软件系统包含三个部分:添加了虚拟化补丁的Linux内核、用户级管理工具和虚拟环境虚拟环境是独立的、运行移动应用程序的“沙盒”。每一个虚拟环境都有自己的根文件系统、系统库、系统软件和应用软件、用户和用户组、进程树、网络配置(如IP地址,路由规则和防火墙)、设备等。在不同虚拟环境中运行的程序,彼此互不干扰。图2中,标为VE( Virtual Environment)的圆角矩形框代表了一个虚拟环境。在用户看来,一个虚拟环境移动终端内的独立区域,其内能安装和运行程序,既不依赖其他虚拟环境,也不受其他虚拟环境内的程序的影响。 图2虚拟环境
虚拟化补丁的作用是构造隔离的虚拟环境、管理资源以及备份恢复支持。管理资源的工作包括两级的CPU调度和提供虚拟的网络设备。两级CPU调度是指先为虚拟环境分配CPU,进而在其内为进程分配CPU。虚拟的网络设备使得虚拟环境能够设定独特的网络配置。
用户级管理工具的作用是创建/删除虚拟环境、启动/关闭虚拟环境、设置虚拟环境参数和备份/恢复虚拟环境。备份和恢复虚拟环境功能利于更换手机。备份时把虚拟环境存储为一个压缩包,恢复时展开压缩包。如果在另一部移动终端上进行恢复,则用户的使用环境能完整地被保留。
为减少用户学习成本,虚拟化补丁和用户级管理工具都是预装在移动终端内,用户感受到的应当只是把移动终端分成隔离区域的能力。用户只要发一条指示即可完成创建虚拟环境的工作,期间自动把必需的运行库和公用程序复制到新虚拟环境
以上构思充分借鉴了桌面计算机/服务器的OS虚拟化技术。基于Linux内核的os虚拟化软件有开源软件OpenVZ , Linux-VServer,FreeVPS和商业软件Virtuozzo。
文献〔8〕指出OS虚拟化比半虚拟化效率更高。移动终端的OS虚拟化与服务器的OS虚拟化存在明显差别。原因主要有两方面:首先,运行的硬件平台差别大,服务器OS虚拟化面向的硬件平台多为X86 , PowerPC或IA-64,而移动终端的硬件平台多为ARM;其次,用户群不同,前者面向的用户是专业的系统管理员,后者面向的用户则是强调简单交互的大众用户。技术上,两者的不同体现在以下方面:
(1)服务器OS虚拟化提供的某些特性,如磁盘配额管理和在线迁移,对移动终端OS虚拟化而言是不需要的。
(2)服务器OS虚拟化构造而成的虚拟环境不提供图形界面,无法运行图形界面用户程序;移动终端OS虚拟化构造而成的虚拟环境内须运行图形界面。
(3)服务器OS虚拟化的用户级管理工具是命令行的;移动终端OS虚拟化的用户级管理工具须是图形化的,而且须是易操作的。
(4)服务器OS虚拟化允许不同虚拟环境内运行不同Linux发行版;移动终端OS虚拟化不需要提供类似支持,这利于提供简单的用户界面,减少用户学习成本。
由上可见,Linux移动终端的OS虚拟化的最大挑战在于用户体验方面,要被大众用户接受,虚拟化带来的学习成本接近于零。

4 OS虚拟化的优势

(1)增强安全性。
依赖隔离特性,位于某个虚拟环境(如专用于游戏的虚拟环境)中的恶意程序无法侵害其他虚拟环境(如专用于理财的虚拟环境)的程序或数据。由此,os虚拟化限制了安全威胁的作用范围。
不同虚拟环境可以采用不同的安全设置。比如理财虚拟环境里采用高级安全设置,不安装无关软件,能显着减少被攻击的机会。而游戏虚拟环境可以采用低级安全设置,可以自由访问或下载资源。

(2)增强可用性。
①程序不稳定导致“系统没有响应”,失效的仅仅是所在的虚拟环境,其他虚拟环境内的程序的运行不受影响。因此,单个程序故障不会引起整机失灵。
②冲突的程序分派至不同虚拟环境即可互不干扰地运行。
③把虚拟环境备份存储为一个文件。一旦移动终端遗失或损坏,亦或者换移动终端,启用备份即可恢复原有的个性化使用环境。

(3)增强个性化。
根据应用情景模式(工作、理财或游戏等)定制虚拟环境,选用不同主题,安装不同的程序集合,满足多样的个性需求。此即“一机多环境”,就像使用多部移动终端一样。例如,用一个虚拟环境运行工作业务程序,选择保守风格主题;在另一个虚拟环境中运行游戏程序,使用炫丽风格主题。
借助这一特性,企业可以定制一个已经配装好企业应用软件栈的虚拟环境分发给员工,由此减少管理维护压力。银行可以发布为用户定制的、配装有数字证书以及软件的虚拟环境发布给公众,公众不需要安装和配置即可使用。

5 OS虚拟化与半虚拟化的对比

OS虚拟化和硬件级半虚拟化都能够使移动设备更安全、更可用和更个性化。表i列出了移动设备的OS虚拟化与硬件级半虚拟化之间的对比。硬件级半虚拟化的优势在于支持运行多操作系统。但是,在运行多系统不是必须的情形下(大众用户多数倾向于这么做),OS虚拟化有着明显优势。主要三项优势说明如下:

(1)基于OS虚拟化,多个虚拟环境共享OS内核和应用程序,节约软件费用。
借助类似于Virtuozzo的应用程序共享的功能,对于公用软件(如防火墙),各个虚拟环境共享同一份拷贝(各自维护私有数据),不必分别安装,也就是说,用户只需支付一份拷贝的费用。硬件级半虚拟化做不到这一点,用户须为各个虚拟机上的同样软件拷贝分别支付费用。

(2)基于OS虚拟化,不增加用户学习成本,更适用于大众用户。
基于OS虚拟化,用户界面的风格是统一的,也不需要用户自行安装操作系统,因虚拟化产生的学习成本在理论上可以减到零(当然这离不开良好的用户体验设计)。所以,在易用性方面,OS虚拟化移动终端会比半虚拟化移动终端更适用于大众用户。

表1 OS虚拟化与半虚拟化的对比

(3)与半虚拟化技术路线相比,研发成本更低,难度更小,周期更短。
缘由在于OS虚拟化的实现与硬件无关,并且不涉及驱动程序。与底层硬件的交互,包括调用设备驱动程序,都由OS内核负责。硬件级半虚拟化的实现直接与硬件打交道,底层细节繁多,成本和难度显着增大。

6 结束语
以手机为代表的移动终端功能越来越丰富,对人越来越重要。基于Linux移动终端的市场份额日益增大,移动终端所面临的安全威胁很快将超越个人电脑,成为个人信息安全的第一大隐患。移动终端需要更安全、更可用和更个性化。本文提出的操作系统级虚拟化技术用于构造隔离的虚拟环境,能够隔离安全威胁和隐患,避免程序失败导致整机失灵,同时通过提供与应用情景模式适配的个性化使用环境来满足个性化需求。US虚拟化不支持运行多种操作系统,硬件级半虚拟化允许运行多种操作系统。然而,US虚拟化技术比硬件级半虚拟化技术更适用于大众用户。原因在于它既不增加软件费用也不增加用户学习成本,这是硬件级半虚拟化做不到的。(转自CIO时代网(www.ciotimes.com),原文链接:http://www.ciotimes.com/infrastructure/fwq/83389_2.html)

不错,学习了

OS虚拟化(如QEMU/KVM)比起半虚拟化来(如VirtualBox)最少在理论上是有很多优势,但实际用起来(对我个人而言),因为它缺少驱动器(尤其是3D显示器),几乎无法作为桌面的虚拟系统。即使勉强把它作为桌面环境,因为使用的人没有后者多也没有后者容易用,有问题的话,常常找不到答案。:frowning:

对于第一个问题,下一代的Intel 及 AMD 的CPU都计划把GPU放到CPU里,因此,对显示器的指令,应该可以从Linux核心直接执行,这样第一个问题应该就可以解决了。

第二个问题,则要看Linux的大牛(们)是否愿意花个功夫,写个教材,帮我们解惑解惑了。:stuck_out_tongue: