你不知道的移动设备虚拟化

云计算 虚拟化
在过去的几年里,软硬件厂商们已经开始对大家能想象到的几乎各个方面进行虚拟化。服务器虚拟化、网络虚拟化、应用程序虚拟化,甚至桌面虚拟化,这些技术都已变得司空见惯。

  在过去的几年里,软硬件厂商们已经开始对大家能想象到的几乎各个方面进行虚拟化。服务器虚拟化、网络虚拟化、应用程序虚拟化,甚至桌面虚拟化,这些技术都已变得司空见惯。不过最近,像VMware和Red Bend Software这些公司已开始推出移动设备虚拟化这个概念。

  移动设备虚拟化是什么东东?

  眼下,有两种不同的新兴的移动设备虚拟化模式。其中一种模式类似服务器虚拟化。其基本理念是,移动设备(如智能手机或平板电脑)能够同时运行多个移动操作系统。比如说,单单一个移动设备就可以运行Android OS以及Windows Phone 7。

  另一种新兴的移动设备虚拟化模式其工作方式类似应用程序虚拟化。其基本理念是,每一个应用程序在孤立的沙盒里面运行;沙盒把该应用程序与移动操作系统及可能安装的其他任何应用程序隔离开来。

  尽管这两种不同的移动设备虚拟化方案存在不同之处,但这两种模式都提供了类似的好处:加强了安全性和灵活性。本文着重讨论操作系统级别的虚拟化。

  在我们开始探讨之前,不妨分析一下推动移动设备虚拟化这项技术发展的动因。移动设备虚拟化会变得很重要的一个主要原因就是,因为它有效地解决了IT专业人员多年以来一直在竭力对付的问题。

  毫无疑问,凡是在过去几年担任过网络管理员的人都遇到过这种情形:员工带着一部自掏钱包的崭新智能手机步入办公室。员工势必想要把他的新设备连接到企业网络,希望能够充分发挥其功效。至少,他可能希望能够访问所在企业的电子邮件,但是还可能希望访问移动应用程序或SharePoint网站。

  这种情形面临的问题在于,IT专业人员面临巨大的压力,确保网络安全可靠。在许多行业,还有政府法规需要遵守。最终结果是,网络管理员通常不太情愿允许员工通过个人设备来访问企业网络。实际上,我对客户通常给予的忠告是,只允许公司采购的设备连接到企业网络。我之所以给出这个忠告,主要出于两个原因。

  首先,面对你无法完全控制的东西,休想对它采取足够有效的保护措施。要是有人通过移动设备连接到贵企业的网络,那么你就能够实施组策略(Group Policies)及其他安全机制,以便控制如何使用该设备。如果用户将自己的个人设备连接到网络上,就很难完全控制这些设备的配置。比如说,许多企业坚持要求禁用内置在移动设备中的摄像头。然而,要是你禁用了用户个人智能手机上的摄像头,他们可能会很不高兴。

  其次,允许随便使用个人移动设备对技术支持人员来说势必会变成一场恶梦。毕竟,市面上有无数不同的智能手机,每一款手机又预装了各自的操作系统和一套默认的应用程序。指望你的技术支持人员能够全面支持用户带入到办公室的每一种移动设备,那是不切实际的。

  针对移动设备的操作系统虚拟化同时解决了上述两个问题。移动设备虚拟化让用户有可能并行运行相同或不同的操作系统。比如说,某一个设备可能安装了Android的两个实例(instance)。这两个实例将彼此完全独立,谁也不知道另一个实例的存在。从理论上来说,移动设备还可以并行运行Android和塞班。

  能够在移动设备上运行多个操作系统有助于想把个人设备连接到企业网络的最终用户,但同时也有助于IT部门。因为网络管理员只需部署完全遵守企业IT安全政策的替用操作系统,没必要试图为用户的个人设备提供足够保护,同时尽量不惹毛用户。那样网络资源就完全通过该操作系统来加以访问,不会暴露在替用操作系统面前(替用操作系统留给用户个人使用)。

  除了解决为用户个人设备提供足够的安全这个问题外,移动设备虚拟化还有助于降低技术支持成本。尽管从理论上来说每一个用户都可以拥有不同型号和款式的移动设备,但移动设备虚拟化将使得物理硬件无关紧要,正如服务器虚拟化产品允许安装服务器操作系统那样,不管底层硬件是什么(当然,假设硬件符合某些最起码的规格)。

  换句话说,移动设备虚拟化平台将允许IT部门在虚拟机管理程序上部署移动操作系统和一套完全配置好的应用程序,从而为技术支持人员减轻负担,不必了解每一种设备的基本细节。相反,每个用户可以通过外观和行为完全一样的统一的访客操作系统(guest OS)来访问企业网络,不管访客操作系统安装在哪种型号或款式的设备上。

  移动设备虚拟化是怎样工作的?

  眼下,有几家厂商在开发移动设备虚拟化解决方案。比如说,在西班牙巴塞罗那召开的移动世界大会上,VMware公司最近就在一款LG智能手机上演示了其移动设备虚拟化平台。

  移动设备虚拟化这个新兴市场的另一家主要厂商是Red Bend Software,这家公司开发了一款名为VLX的移动虚拟机管理程序,旨在与ARM和x86架构兼容。VLX在功能上类似服务器虚拟机管理程序和桌面虚拟机管理程序。与其他任何的类型1虚拟机管理程序一样,VLX其实只是在裸机层面与设备硬件进行交互的一个薄薄的抽象层。这样一来,VLX让多个访客操作系统可以在单单一个移动设备上同时运行。

  VLX通过为访客操作系统分配硬件资源来工作。与大多数其他虚拟机管理程序一样,这种操作以两种不同的方式来实现:一些硬件资源进行了分区,另一些硬件资源则进行了虚拟化。

  内存是硬件资源进行分区的一个典例。两个不同的操作系统无法同时使用相同的内存区,所以对内存进行了分区,那样每一个访客操作系统被分配了特定数量的内存。访客操作系统完全掌管这部分内存,享有独家使用权。

  目前,处理器是无法进行分区的资源。如今的移动设备只有一个处理器,因而不可能对系统资源进行分区,以便每一个访客操作系统都有专用的处理器。然而,配备双核处理器的第一代移动设备正开始出现在市场上,所以似乎有理由认为:硬件最终会含有数量足够多的处理器核心,以便针对每个访客操作系统来管理专用处理器核心。不过眼下,VLX使用自己的内置调度程序来控制每个访客操作系统收到多少处理器周期。

  鉴于移动设备虚拟化的工作方式类似服务器虚拟化,Red Bend Software等公司已经拥有移动设备虚拟化解决方案,你可能会想为什么还没有看到虚拟化技术使用在消费级设备上。

  移动设备虚拟化还没有广泛应用的原因与硬件访问方面的限制有关。不妨考虑一下VMware ESXi和微软Hyper-V等服务器虚拟化产品的工作方式。如果管理员想要创建几个虚拟机,他们先要购买一台物理服务器和某款服务器虚拟化产品。然后将虚拟化产品(Hyper-V、ESXi和思杰XenServer等)安装到服务器上。一旦虚拟化产品部署到位,管理员就可以自由地开始创建虚拟机,并将操作系统安装到那些虚拟机上。

  说到移动设备虚拟化,情况有点不一样。毕竟,你跑到商店后,根本买不到里面什么都没有装的移动设备。手机和平板电脑都预装有Android或Windows Phone 7之类的操作系统。当然,个人电脑也是同样这种情况。在零售店销售的个人电脑几乎全部装有一款操作系统,但是没有什么阻止得了消费者对硬盘进行格式化、安装自己选择的另一款操作系统。

  遗憾的是,普通消费者几乎不可能把移动设备的操作系统更换成自己选择的另一款操作系统。移动操作系统软件并非唾手可得;就算那样,每一款移动设备也不一样,需要针对特定设备的操作系统版本。而问题就出在这里。

  VLX是一种低层虚拟机管理程序,必须由设备制造商来安装。消费者无法以后来下载和安装它。(VMware移动设备虚拟化产品也面临同样的限制。)

  即使部署了VLX虚拟机管理程序,消费者也无法轻松下载移动操作系统。每一款移动设备都使用独特的硬件,移动操作系统针对每一款设备的独特规格进行了专门定制。虽说VLX可以防止访客操作系统与设备的大多数硬件直接联系,但是访客操作系统必须能够在VLX软件上运行才行。移动操作系统将VLX视为物理硬件,因而每一款移动操作系统需要特殊的版本,才能确保与VLX兼容。

  这就带来了哪些操作系统能够充分利用VLX的问题;答案是,只有开放的操作系统才能与VLX结合使用。Red Bend Software已经为Android、Linux和塞班等操作系统开发了经过改动的硬件抽象层,好让这些操作系统可以在VLX环境下工作。但你可能不会很快就会看到iPad OS或Windows Phone 7的虚拟化实例在VLX虚拟机管理程序上运行这一幕。即便如此,Red Bend Software声称已改动了几款不同的移动操作系统,以便与VLX兼容。

  不确定的未来

  移动设备虚拟化最终在实际环境下工作起来效果有多好将值得拭目以待。虽然基本的技术很可靠,但我怀疑早期采用者最终会在充分利用设备的硬件方面遇到问题。比如说,假设某个移动设备配备了硬件键盘。除非虚拟机管理程序能够识别该键盘,否则键盘无法在访客操作系统里面正常使用。

  当然,如今市面上现有的移动设备虚拟化产品要求虚拟机管理程序出厂安装。因此,貌似可以针对每一款移动设备来改动虚拟机管理程序,以便全面支持该设备的硬件。正由于如此,除非VMware和Red Bend Software等公司要开始提供一款通用的虚拟机管理程序,而不是针对每一款设备的独特功能提供专门定制的虚拟机管理程序,否则硬件支持根本不是个问题。

  文章出处:http://virtualizationreview.com/articles/2011/07/01/a-first-look-at-mobile-virtualization.aspx

责任编辑:何巍 来源: 51cto.com
相关推荐

2013-09-09 09:59:39

虚拟化云计算

2018-05-08 14:24:50

虚拟化服务器网络

2014-11-28 09:33:10

2020-06-12 09:20:33

前端Blob字符串

2020-07-28 08:26:34

WebSocket浏览器

2009-12-10 09:37:43

2021-02-01 23:23:39

FiddlerCharlesWeb

2011-09-15 17:10:41

2022-10-13 11:48:37

Web共享机制操作系统

2010-08-23 09:56:09

Java性能监控

2022-11-04 08:19:18

gRPC框架项目

2020-09-15 08:35:57

TypeScript JavaScript类型

2020-08-11 11:20:49

Linux命令使用技巧

2012-11-23 10:57:44

Shell

2015-06-19 13:54:49

2021-10-17 13:10:56

函数TypeScript泛型

2021-12-29 11:38:59

JS前端沙箱

2021-12-22 09:08:39

JSON.stringJavaScript字符串

2015-11-02 09:16:08

2023-03-26 08:15:04

代码配置Spring
点赞
收藏

51CTO技术栈公众号