利用虚拟化简化Android迁移

发布者:EternalBliss最新更新时间:2011-06-04 关键字:Android  内存  ARMv7 手机看文章 扫描二维码
随时随地手机看文章

  在不到18个月的时间里,Google Android平台已从一名“新生儿”成长为全球移动市场乃至移动领域之外其他智能设备领域内的重要成员。越来越多的手持设备开始部署Android平台,到2010年末,预计还会诞生数十种采用Android的手机设计,除此以外,Android在其他领域的应用也日益广泛。

  Android平台具有两大吸引力:Android为OEM提供了一个功能丰富的开源移动操作系统,让设备不仅做到“开箱即用”,而且能够支持第三方应用程序;Android Market应用程序商店中第三方应用程序的产品组合不断增加,拉升了对基于Android的设备的需求,同时为整个生态系统带来了新的商机。但另一方面,以Android为目标的设备硬件也为开发人员带来了一系列挑战:内核对CPU及SoC的支持、驱动程序开发、性能优化、与其他系统软件的整合等等。

  本文将探讨这些难题,并着重讲述移动/嵌入式虚拟化如何能够帮助OEM及其他开发人员简化Android支持和迁移。特别地,本文将结合使用流行的Beagle Board与OKL4 Microvisor。此外,文中还将以安全VoIP作为应用示例,演示hypervisor技术如何帮助开发人员构建和部署更加稳健的Android设备及运行于其上的软件和服务。

  在BeagleBoard及其他硬件上支持Android

  Beagle Board拥有非常活跃的开发人员社区,为Beagle Board硬件及在其上运行的软件提供支持。基于ARM Cortex-A8 CPU架构的TI OMAP3530亦受益于强大的开源社区和商业支持,从而使得该平台成为专业人士及业余爱好者的理想测试环境。

  Android和Beagle Board汇集了应用广泛的软硬件技术,并且Android曾多次被移植到Beagle Board上,结果各不相同。特别是Open Kernel Labs(OK Labs)团队发现了一系列的问题,如驱动程序支持有限、稳定性不够高、内核频繁紊乱或完全无法启动。这些故障不一定表明软硬件平台本身存在问题,而是由于Android项目迅速发展和研发精力分散所造成的。

  使用虚拟化作为迁移工具

  在企业数据中心和桌面领域,虚拟化的应用越来越普遍,其支持的使用案例和应用数不胜数,其中包括硬件整合、负载平衡、安全和沙箱、配置、多操作系统支持、交叉开发和旧软件迁移等。在嵌入式特别是移动应用领域,虚拟化在开发和部署方面的应用亦日益广泛。OK Labs公司为移动手持设备制造商(OEM)提供“microvisor”──OKL4,用于在某些情况下实现有些特殊的镜像服务器及桌面虚拟化应用,如CPU整合、多核支持、安全分区和固件升级,支持多操作系统(实时操作系统和应用操作系统,如Android、Linux和 Symbian等),以及嵌入式/移动平台迁移。将microvisor(基于微内核的嵌入式hypervisor)引入到现有设计中时绝不可影响该项设计的具体细节。microvisor应该隔离新旧的子系统,但同时让其能够像在原始环境中那样使用现有软件组件(例如Android),从而赋予系统设计人员灵活性。基于这一理念,一个结构良好的microvisor环境应支持简单且直接的迁移流程:

  1.Microvisor与目标硬件的集成

  在Beagle Board与OKL4的搭配中,OKL4 Microvisor已支持大多数常用的嵌入式/移动CPU,其中包括TI OMAP3530,使集成更加方便。

  2.Android与Microvisor的集成

  对于集成了虚拟化支持(如Intel VT和AMD-V) 的企业和桌面系统,对重要资源(如中断控制、MMU和高速缓存配置)的访问限制是通过硬件机制实现的。由于缺乏这些构件,Android(或其他“客户” 操作系统)必须进行“准虚拟化”,即通过修改让microvisor拦截并重新实现此类操作。为简化Android支持,OK Labs提供了一种现成的Android准虚拟化实现──OK:Android。

  3.设备驱动程序迁移

  显然,应用平台必须要与设备硬件进行交互。在最初的移动手持设备实现中,Android必须驱动LCD显示屏、触摸屏或键盘、音频输入/输出、USB、WiFi及3G网络接口、数字摄像头和加速器等。对于移动领域以外的应用,如数字视频、家庭娱乐及其他领域,还必须开发高清电视、红外和无线电遥控器、以太网、家居自动化总线(如X10)等的驱动程序。

  将驱动程序迁移到虚拟化环境是一种投资回报率的问题──有多种选择,每种方案都有相对于其投资水平的优势:

  原地:旧驱动程序以其原始设置保留在Host操作系统(Linux、实时操作系统等)中。这种情况下的迁移主要是集成和配置microvisor,以优化对客户操作系统环境的支持。[page]

        原地虚拟化:现有驱动程序仍保留在其Host操作系统环境中,并借助额外的配置来让其他客户机能够通过OKL4 Microvisor虚拟设备框架访问这些驱动程序。

  独立:将旧驱动程序重新托管到称作设备服务器的专用轻量级虚拟机(安全单元)中,并直接在microvisor上运行。所有客户机均使用虚拟设备,然后由microvisor强制策略进行管理。因此,独立驱动程序是目前及未来客户操作系统中最为安全和最便携的驱动程序。

  4.通信栈

  通信栈(3G、WiFi等)通常运行于旧实时操作系统之上,可以随同其原始Host操作系统原封不动地重新托管到microvisor环境中。在移动应用中,这种能力可避免需要重新获取网络运营商或其他监管机构的认证,而失去抢占市场先机这一巨大优势。

  5.其他旧组件

  其他旧组件(中间件、实用程序、原始应用程序)可以借助OKL4兼容库直接迁移至microvisor,并作为一个单元集成到最终系统中。一个典型应用示例是自定义GUI/应用程序栈,可以原封不动地移植过来,一方面节约了时间,另一方面还保留了产品的多样化特性。

  Beagle Board上的虚拟化Android──软件架构

  根据上述流程,我们可以搭建这样一种架构:在Beagle Board上构建一个托管Android的虚拟化环境,同时具备安全VoIP功能,如图1所示。

 

图1:图中架构包含Beagle Board OMAP CPU“裸机”上运行的OKL4 Microvisor。启动时,系统引导进入OKL4,然后由OKL4加载并协调Android及其他客户机软件的执行。

  在特定安全单元(虚拟机)中,microvisor托管:

  Android。该组件与其他应用关键型组件完全隔离,以确保添加至该开放操作系统平台中的软件不会影响到整个系统的稳定性或安全性。事实上,即使 Android发生崩溃或死锁,OKL4仍可以重新加载/重新启动Android,而不影响其他安全单元中正在运行的软件(如Linphone)。

  Linphone(或其他VoIP栈和应用程序)。在我们的参考设计中,我们移植了Linphone以便直接在OKL4 Microvisor上运行,但如果资源允许的话,Linphone可以驻留在安全单元中的Linux实例上。我们的设计有意地将Linphone与 Android隔离开来,以确保Linphone的稳定性和安全性;另一方面,将Linphone托管在OKL4 Microvisor之上还能够节约内存并提高性能。

  音频及串口驱动程序。Android与Linphone共享音频驱动程序,即使用户禁用了Android,该驱动程序仍能够为VoIP通话提供音频输入/输出。串口驱动程序是隔离共享的,以支持系统控制台和调试。

  运行系统功能如下:Android作为主操作系统,通过Beagle Board上的OMAP显示硬件提供标准的Android用户界面呈现给客户。用户可以使用基于Android的VoIP“拨号”应用程序或 Android下运行的Linphone控制台服务器来启动安全的VoIP通话。通话启动后,用户可以运行其他Android应用程序(游戏、网页浏览等),而不影响VoIP通话的质量或安全性。此时,即使Android进入睡眠模式甚至死机,都不会导致通话中断。

  虚拟化和性能优化

  嵌入式开发人员总是不信任“阻挡其与硬件亲密接触”的软件。在智能设备发展初期,面向硬件的开发人员不喜欢使用高级语言,而偏好汇编代码,以期从“裸机”中获取更多性能。不久,实时操作系统便成了一种“感知瓶颈”。再之后,Linux和Android之类的应用操作系统进一步加深了痴迷性能的工程师、产品??理和最终用户的不快。[page]

  而如今,移动/嵌入式虚拟化又形成了一个抽象层。它虽然提高了生产效率,但却使开发人员及其代码进一步“远离”底层硬件,使开发人员无法深入发掘他认为的通过“裸机执行所具有的性能优势”。

  说起来也许令人难以置信,但在许多应用方面,虚拟化不仅只产生极小的性能开销,而且还能够提高吞吐量和响应速度,这主要得益于内存利用率的提升和对 microvisor IPC的利用。使用了GTKPeRF基准测试套件针对常见GTK+ UI框架执行的测试结果如表1所示。GTKPerf提供了一个通用测试平台,运行预定义的GTK+窗口小部件(打开组合框、切换按钮、滚动文本等)来衡量设备或平台的运行速度/。

        下表是我们在原始环境和虚拟化环境中运行GTKPeRF时得到的实际耗时及开销结果。对于Android图形及平台中的其他子系统,结果应该与此类似。

 


  表1:原始环境与虚拟化环境下的GTK执行性能。

  下面我们来探讨一些更深入的microvisor实现示例,这些实现真实提高了Android等客户操作系统的性能,这种性能提升在ARM9系列低成本芯片上尤为明显。

  快速地址空间切换

  像OKL4这样设计精良的microvisor并不依赖于其托管的客户操作系统,并且能够在不同客户机和客户机进程间提供快速、低延迟的上下文切换。Android软件架构构建于相互隔离的组件之上,这些组件借助自定义IPC机制进行通信。与传统基于Linux的环境相比,该架构会产生更多的进程间通信,每次切换进程上下文都需要刷新全部缓存。如果常规Linux中的上下文切换会产生延迟和内存总线占用,那么Android的情形可想而知。

  为提高Android的性能,OKL4会维护此类上下文切换的相关高速缓存状态,以提高高速缓存利用率,这样不仅缩短了上下文切换延迟,而且还提高了整体性能。

  将内存占用降至最小

  OKL4 Microvisor针对性能和内存使用进行了优化。对于Android与Linux或OKL4 Microvisor这类基于微内核的环境,直接比较满栈占用的内存大小非常困难。显然,Android与Linux就连提供的服务范围都各不相同。

  不过,值得注意的是,OKL4微内核本身只占用几十KB,而Android和Linux的内核都是以MB来衡量的。虽然OKL4与生俱来的小尺寸并不能将系统占用降至最小,但是这个小尺寸基础平台与一系列附加组件相互集成就形成了一个轻量级准虚拟化平台──OK:Android。与Xen或KVM之类的企业和桌面hypervisor(包含整个Linux内核)相比,OKL4真的非常小巧。

  扩展架构及其应用

  本文介绍的系统架构旨在演示在虚拟化环境中运行Android及相关软件的简单和实用之处。这一结构有可能为Android以外的其他客户操作系统提供同样的支持。为方便操作系统集成,OK Labs提供了多种常见移动/嵌入式操作系统的准虚拟化版本,其中包括OK:Linux和OK:Symbian,以及协助开发人员准虚拟化几乎任何开源操作系统的工具和服务。

  除此以外,该设计类型并不局限于移动应用或Beagle Board。为方便在广泛的移动设备上使用,OKL4支持ARMv5、ARMv6和ARMv7架构。这种广泛支持使得能够轻松将Android及其他受支持操作系统迁移到其他CPU和SoC,以及Beagle Board开发环境或移动应用以外的设备类型;如今,已有超过5亿部设备采用了OKL4。

  由于OKL4使用了相同的虚拟化架构,因此能够轻松地支持在以下设备上运行的高级操作系统(如Android、实时操作系统及针对特定目的构建的平台):上网本,Webpad、机顶盒与数字录像机、高清电视、车载系统、医疗设备──实际上是支持任何基于ARM的设备。

  本文小结

  借助虚拟化设计,OEM及开发人员不但能够简化迁移和集成,还能够享受软件组件之间高度隔离所带来的稳定性和安全性。在Beagle Board上,OKL4 Microvisor提供了一个稳定、可靠托管Android这一流行平台的捷径。请尽情畅想,它能够为您的下一设计带来哪些令人赞叹的功能。

 

关键字:Android  内存  ARMv7 引用地址:利用虚拟化简化Android迁移

上一篇:LED数字电子钟的设计
下一篇:楼道中的智能化照明系统设计

推荐阅读最新更新时间:2024-05-02 21:25

Android超越Windows 成市场份额第一操作系统
    eeworld网报道 北京时间4月3日晚间消息,互联网分析公司Statcounter今日发布报告称,随着移动设备的快速普及,Android如今首次超越Windows,成为消费者接入互联网使用最广泛的操作系统。   Statcounter数据显示,今年3月份,在全部上网设备中(Statcounter所监测的网络上),Android的市场份额为37.93%,而微软Windows的份额为37.91%。   分析人士称,虽然两者市场份额差距不大,但这却是一个意义重大的转折点。在过去的数年中,随着移动设备的普及,超越传统的台式机已经是大势所趋。   在过去的五年中,全球PC销量一直处于下滑趋势,并回落到2008年的水平。而智能手机
[手机便携]
由于美国禁令,中兴可能失去Android部分服务授权
   ndroid Police引用路透社报道,知情人士透露,谷歌母公司Alphabet与中兴通讯之间正进行讨论,目前两家公司仍然不确定中兴是否能继续使用Android操作系统。   Android是一款开源系统,政府或其它机构无法通过行政压力防止第三方使用,中兴可以构建自己的源代码分支,就像亚马逊Fire OS。   路透社的报道实际指出的是中兴与Alphabet之间的Android GMS服务授权问题,中兴将受到影响的的是一些谷歌旗下的Android应用程序以及服务。例如Play商店等也包含在内,因为这些应用是闭源的,如果在海外市场没有GMS,中兴将在安卓手机领域承受巨大竞争压力。   如果Alphabet最终决定取消中兴通讯
[手机便携]
加州理工开发出可瞬间存储数据的光量子内存芯片
        据外媒报道,加州理工大学的研究人员们,已经开发出了一款能够以“光的形式”、“纳米级速度”存储量子信息的计算机芯片。这标志着量子计算机和网络的一项最新突破,在更小的设备上实现更快的信息处理和数据传输。传统计算机系统中的内存部件,只能将信息以“0”或“1”的形式存储。尽管仍处于实验阶段,但量子计算机的基本原理还是一样的,即以“量子比特”来存储数据 —— 除了“0”和“1”,量子比特还允许两种状态共存。 Caltech光量子内存芯片的想象图   类似 Caltech 开发的这种光量子设备,能够以光子的形式存储和携带信息。因其没有电荷或质量,所以更快速、更安全。论文一作 Tian Zhong 表示:   这项技术不仅可
[家用电子]
三星放弃Bada背后 操作系统之争容不下更多参与者
Android份额从零到一半以上 移动互联融合带来变革 刚刚取代诺基亚成为全球最大手机厂商的三星,在一周前宣布放弃Bada操作系统,转而专注Android,这一则并不起眼的新闻打破了业界的幻想。操作系统平台的竞争已经对巨头外的参与者关上了大门。 IDC刚刚公布的数据显示,2012年第一季度,全球手机市场56%出货量被Android占据,而这距离第一个Android发布第一个成熟版本(1.5版本)的2009年来说只有近三年的时间。而在智能手机市场,Android占到了80%的份额。 除此之外还有大量的平板电脑在使用Android操作系统。同样来自IDC的预测,2016年,基于Android的各类设备市场占有率将达到31.1%,
[手机便携]
三星放弃Bada背后 操作系统之争容不下更多参与者
Broadcom取得ARM Cortex M3处理器授权以开发其下一代无线应用
ARM Cortex-M3处理器降低Broadcom未来蓝牙SoC设计方案的功耗与尺寸 ARM于日前宣布,Broadcom已取得其ARM Cortex-M3处理器之授权,并将整合该技术至新一代无线与网络解决方案。此款多用途(multi-use)授权协议,将进一步协助Broadcom开发其先进的蓝牙产品。Broadcom在取得ARM Cortex-M3处理器授权后,将用来支持高阶无线SoC设计,以开发出更小、更低功耗,以及成本更低廉的平台,并针对各种新兴蓝牙应用与产品的特殊需求进行改良。 Broadcom事业群副总裁暨无线连结事业群总经理Robert A. Rango表示:“ARM Cortex-M3处理器优异的程序代码密度,不
[焦点新闻]
全美最快5G手机前25全是安卓 苹果在天线设计上仍需努力
  5G网络下载速度排名前25的手机,蓝色的都是三星品牌。橙色是非三星,虚线的是折叠/双屏幕等新形态手机   新浪数码讯 3月16日上午消息,数据公司Opensignal的一份新报告粗略描绘了美国市场主流智能手机在5G网络下的速度表现,结论是,最快5G手机中排名前25位的大多数都是由三星生产的,而苹果的首批5G iPhone整体下载速度比安卓手机慢。   Opensignal分享了美国主流手机们的5G性能报告,以5G网络下下载速度而论,三星的新款Galaxy S21 5G以平均56Mbps的5G/4G下载速度名列榜首。   前25名中有60%都是三星手机,当然这原因之一也是测试背景是美国手机市场,三星品牌在有较大占有率。TCL
[手机便携]
全美最快5G手机前25全是<font color='red'>安卓</font> 苹果在天线设计上仍需努力
MediaTek针对高端市场发布迅鲲™900T,坐稳安卓平板第一位
MediaTek发布迅鲲™900T,是MediaTek迅鲲™系列移动计算平台的又一个新成员,丰富了MediaTek在移动计算市场的产品组合,助力平板电脑、便携式笔记本电脑等产品的移动计算体验全方位升级。据了解,目前已发布的迅鲲™1300T和900T定位在旗舰和高端市场,未来会持续丰富迅鲲产品组合,满足市场多元化的需求。 近年移动计算设备市场快速发展,消费者对平板电脑的功能和体验需求也日趋多元化。MediaTek面向移动计算市场推出了迅鲲™系列平台,通过整合计算、通信、多媒体、AI、游戏、无线连接等多领域技术优势,为移动计算设备带来强劲计算力和超低功耗特性,更进一步赋能设备制造商,打造更加符合用户和市场需求的生产力工具。
[嵌入式]
MediaTek针对高端市场发布迅鲲™900T,坐稳<font color='red'>安卓</font>平板第一位
MOTO X确认支持升级Android L系统
   谷歌在6月底I/O大会上推出 Android   L开发预览版后,便有 摩托罗拉 的“有关方面”发出消息声称 MOTO   X和 MOTO   G将会在未来支持 Android   L的系统更新。不过随后经 摩托罗拉 德国方面证实,该账号为假冒。这也又让 MOTO   X/G究竟能否获得 Android   L升级再次打上问号。   而近日有一名国外用户在Google+上再次询问“ MOTO  X到底会不会支持 Android  L更新?”没曾想,他的这个问题竟然得到了摩托罗拉移动产品高管Punit Soni的回复,并且还非常肯定地写了下“Yup(是的)”的回复。现在相信持有 MOTO  X设备的小伙伴一定很高兴吧?  
[手机便携]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved