利用虚拟化简化Android迁移

分享到:

       在不到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,以优化对客户操作系统环境的支持。

继续阅读
超低功耗的 Apple W1 芯片为 iOS 用户带来的无缝蓝牙音频体验,安卓阵营该如何应对

苹果的生态相对 Android 阵营而言相当封闭,因此希望更开放的机友基本不会考虑 iPhone。不过,也正因为苹果对其生态严格的控制,在过去多年时间里,苹果刮起了手机芯片行业的革命风暴,如今 A 系列芯片已经成为了手机芯片史上最强大的芯片。其实不只有 A 系列芯片,超低功耗的 Apple W1 芯片亦是如此。

2018 Google I/O精彩直击:给AI加上人性

5月9日凌晨消息,为期三天的Google I/O开发者大会今日在美国开幕。

盘点11种基于ARM的嵌入式操作系统

TinyOS是一个开源的嵌入式操作系统,它是由加州大学的伯利克分校开发出来的,主要应用于无线传感器网络方面。程序采用的是模块化设计,所以它的程序核心往往都很小,一般来说核心代码和数据大概在400 Bytes左右,能够突破传感器存储资源少的限制。TinyOS提供一系列可重用的组件,一个应用程序可以通过连接配置文件(A Wiring Specification)将各种组件连接起来,以完成它所需要的功能。

内存涨价短期内不会停止,三星是否垄断还有待调查

  对于媒体有关发改委约谈三星的报道,证券时报记者向发改委新闻办发去采访函。发改委回复仅表示,一般来说,这类案件一般会等到所有事项都查清楚,有定论后才会对外公布,并建议记者等待进一步的消息。

DRAM的极限在哪里?

过去二十年来,基于 DRAM 的计算机内存的存取带宽已经提升了 20 倍,容量增长了 128 倍。但延迟表现仅有 1.3 倍的提升,卡内基梅隆大学的研究者 Kevin Chang 如是说,他提出了一种用于解决该问题的新型数据通路。

精彩活动