智汇工业-智慧工业、智能制造及工业智能、工业互联门户网站,专业的工业“互联网+”传媒

利用虛擬化簡化Android遷移

來源:網絡

點擊:1106

A+ A-

所屬頻道:新聞中心

關鍵詞: 虛擬化,Android,遷移,Beagle Board與OKL,Microvisor

      在不到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 (http://beagleboard.org)擁有非常活躍的開發人員社區,為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,以優化對客戶操作系統環境的支持。

      原地虛擬化:現有驅動程序仍保留在其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之類的應用操作系統進一步加深了癡迷性能的工程師、產品經理和最終用戶的不快。

      而如今,移動/嵌入式虛擬化又形成了一個抽象層。它雖然提高了生產效率,但卻使開發人員及其代碼進一步“遠離”底層硬件,使開發人員無法深入發掘他認為的通過“裸機執行所具有的性能優勢”。

      說起來也許令人難以置信,但在許多應用方面,虛擬化不僅只產生極小的性能開銷,而且還能夠提高吞吐量和響應速度,這主要得益于內存利用率的提升和對microvisor IPC的利用。使用了GTKPerf基準測試套件針對常見GTK+ UI框架執行的測試結果如表1所示。GTKPerf提供了一個通用測試平臺,運行預定義的GTK+窗口小部件(打開組合框、切換按鈕、滾動文本等)來衡量設備或平臺的運行速度。有關詳細信息,請訪問http://gtkperf.sourceforge.net/。

      下表是我們在原始環境和虛擬化環境中運行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這一流行平臺的捷徑。請盡情暢想,它能夠為您的下一設計帶來哪些令人贊嘆的功能。

    (審核編輯: 智匯小新)

    聲明:除特別說明之外,新聞內容及圖片均來自網絡及各大主流媒體。版權歸原作者所有。如認為內容侵權,請聯系我們刪除。

    主站蜘蛛池模板: 开拓者喷雾设备有限公司专业生产喷嘴,喷雾设备,清洗,喷涂,降温,除尘,润滑等喷雾系统的方案解决商 | 上海钧尚电器有限公司 - Faulhaber电机 AMETEK pittman电机 AMETEK ROTRON军用航空风机 Exlar电动缸 MAE电机 MCG电机 CP电动工具 马头工具 AMCI驱动器 直流电机 减速箱 直流伺服电机,无刷电机,直线电机 直流防爆电机 防爆电机 汽车助力转向电机 EPS电机 faulhaber motor faulhaber gearbox NANOTEC电机 ELWOOD电机 PHYTRON电机 EXLAR伺服电动缸 高力矩、高性能直流电机,音圈电机,风机,直流风机,航空风机 | 消防排烟风机|3C排烟风机|正压送风机|高温排烟风机|柜式排烟风机-山东锦松环境设备有限公司 | 耐磨钢板_复合耐磨板_KN60耐磨钢板-北京耐默公司 | 新密耐火材料厂家价格-河南郑州荣盛窑炉耐火材料有限公司 | 专业生产安检门-X光机-防爆罐-金属探测门-中警思创军警装备厂家 专业色素炭黑生产厂家,提供各种用途色素炭黑价格-枣庄鑫源化工 专业护工_医院护工_护工陪护_住家护工- 心陪护 | 铱金供应-上海钌合金-氯铱酸厂家-上海庞势新材料科技有限公司 | 浙江日新电气有限公司| 矿用精确定位系统,井下4G无线通讯系统,工作面集控系统,皮带保护系统-山东新云鹏电气有限公司 | 天之水网_新时代主流门户网站 十大文明网,主流新媒 、 值得信赖、关注我、温暖你! | 西门子伺服电机维修_西门子变频器维修_西门子伺服驱动器维修_数控系统维修_PL维修-上海仰光电子 西克制冷官网│制冷机组冷风机冷库设备厂家-西克制冷(无锡)有限公司_西克制冷(无锡)有限公司 | 雅兰床垫-会呼吸的床垫-中国高端床垫-国潮床垫品牌 | 惠声电子、广州市惠声电子科技有限公司、VBS、VBS惠声电子、VBS公共广播生产厂家、VBS广播功放生产厂家、VBS会议系统设备批发、VBSIP网络对讲系统厂家、VBS会议系统厂家、VBS智能中控厂家、VBS专业扩声厂家 | 上海航空货运,上海空运,东方航空快递,机场物流,航空快运,上海东方航空托运公司 | 企好网 - 中国B2B产业互联网践行者|百度爱采购官方授权一级服务商 | 心心床垫_睡眠床垫-安徽瑶海心心工贸有限公司 | 兰州职业学校-新华互联网学校咨询平台中心 | 山西洗煤设备_山西洗煤机_山西离心机-山西东鑫昶机械科技股份有限公司 | 装盒机|装箱机|封箱机|全自动化包装生产线尽在利悦包装机械 | 首页 -北京博智建达软件开发有限公司| 芜湖净水设备-纯水设备-无负压供水设备-不锈钢水箱-芜湖市百川给水设备有限责任公司 | 视频监控|安防监控|智能防火|智慧城市-浩海科技 | 聊城市城乡规划设计研究院官方网站 | 汽车标签|医疗标签|电子标签|手机电池标签|电脑电池标签|电源标签|耐高温标签|防静电标签|手机出厂膜|手机全裹膜|手机包裹膜|手机卖点膜|热转印标签|遮阳板标签|天势科技|-标签印制专家! | 湖南净声源环保科技有限公司是一家专业从事噪声治理和建筑声学设计生态环境综合治理服务的企业,专业从事株洲电梯隔音治理,湘潭中央空调降噪处理,衡阳邵阳冷却塔噪音治理,岳阳常德大型风机噪声隔音降噪,张家界空压机噪声治理,益阳配电房变压器噪声治理,专业郴州永州工厂企业车间噪声治理,怀化娄底专业机械设备减振降治理,武汉噪音治理隔音降噪公司,孝感噪音治理,立式球磨机的噪声控制,专业隔音降噪公司,、以及各类机械动力设备减振降噪噪声治理的公司,同时为客户提供咨询与解决方案 | 双层恒温培养箱|智能振荡培养箱-常州市仪都百科 | 日本国际高中学校招生【立学仕日本留学服务】日语中学学校|美术生|艺术生|高中生|本科|研究生|语言学校留学择校申请 | 江门市东信科技 - 江门小程序开发,江门网站制作,江门软件开发,江门app开发 | 无尘投料站-真空上料机-旋振筛|超声波振动筛|摇摆筛|筛分机-新乡市欧霖佳机械有限公司 | 重庆污水处理设备_废气处理设备_纯净水设备-山艺环保 | 全自动烫金机-全自动移印机-全自动丝印机-全自动平面机-东莞联昌实业供应各种丝印机和移印机 | 塑料模具公司,塑料包装桶厂家,PET打包带厂家,缠绕膜厂家-新疆福吉亚工贸有限公司 | 长春网站优化,网络推广,seo快速排名,1.8元/词/天-同信长春网络公司 | 嘉兴中诚环保科技股份有限公司_PVC_润滑剂_抗氧剂_辅助热稳定剂 嘉兴市南湖斋食品股份有限公司_南湖斋 | 郑州房产律师|专业房地产纠纷律师热线_河南锦盾律师事务所 | 吉林人才网_吉林招聘网_求职找工作平台 | 临沂网站建设,临沂网站制作,临沂网络公司,临沂小程序开发,临沂网站设计,沂水网站建设,沂南网站建设,蒙阴网站建设,平邑网站建设,费县网站建设,兰陵网站建设,郯城网站建设,临沭网站建设,莒南网站建设,兰山网络公司 | 烟台天昊矿业有限公司、滑石、滑石粉、微细粉、滑石矿-烟台天昊矿业有限公司 | 远东齿轮泵|高粘度齿轮泵|三螺杆油泵|沥青保温泵|高粘度稠油泵-远东泵业官网 | 全自动视觉点胶机|在线式点胶机|精密点胶阀设备厂家-杭州迈伺特科技有限公司 | 频谱矢量网络分析仪_鼎阳数字示波器-苏州东伟元电子有限公司 |