<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 醫療電子 > 設計應用 > 利用虛擬化簡(jiǎn)化Android遷移

利用虛擬化簡(jiǎn)化Android遷移

作者: 時(shí)間:2012-05-23 來(lái)源:網(wǎng)絡(luò ) 收藏

在不到18個(gè)月的時(shí)間里,Google 平臺已從一名“新生兒”成長(cháng)為全球移動(dòng)市場(chǎng)乃至移動(dòng)領(lǐng)域之外其他智能設備領(lǐng)域內的重要成員。越來(lái)越多的手持設備開(kāi)始部署平臺,到2010年末,預計還會(huì )誕生數十種采用的手機設計,除此以外,Android在其他領(lǐng)域的應用也日益廣泛。

本文引用地址:http://dyxdggzs.com/article/199028.htm

Android 平臺具有兩大吸引力:Android為OEM提供了一個(gè)功能豐富的開(kāi)源移動(dòng)操作系統,讓設備不僅做到“開(kāi)箱即用”,而且能夠支持第三方應用程序;Android Market應用程序商店中第三方應用程序的產(chǎn)品組合不斷增加,拉升了對基于A(yíng)ndroid的設備的需求,同時(shí)為整個(gè)生態(tài)系統帶來(lái)了新的商機。但另一方面,以Android為目標的設備硬件也為開(kāi)發(fā)人員帶來(lái)了一系列挑戰:內核對CPU及SoC的支持、驅動(dòng)程序開(kāi)發(fā)、性能優(yōu)化、與其他系統軟件的整合等等。

本文將探討這些難題,并著(zhù)重講述移動(dòng)/嵌入式如何能夠幫助OEM及其他開(kāi)發(fā)人員簡(jiǎn)化Android支持和。特別地,本文將結合使用流行的Beagle Board與OKL4 Microvisor。此外,文中還將以安全VoIP作為應用示例,演示hypervisor技術(shù)如何幫助開(kāi)發(fā)人員構建和部署更加穩健的Android設備及運行于其上的軟件和服務(wù)。

在BeagleBoard及其他硬件上支持Android

Beagle Board (

圖1:圖中架構包含Beagle Board OMAP CPU“裸機”上運行的OKL4 Microvisor。啟動(dòng)時(shí),系統引導進(jìn)入OKL4,然后由OKL4加載并協(xié)調Android及其他客戶(hù)機軟件的執行。

在特定安全單元(虛擬機)中,microvisor托管:

Android。該組件與其他應用關(guān)鍵型組件完全隔離,以確保添加至該開(kāi)放操作系統平臺中的軟件不會(huì )影響到整個(gè)系統的穩定性或安全性。事實(shí)上,即使Android發(fā)生崩潰或死鎖,OKL4仍可以重新加載/重新啟動(dòng) Android,而不影響其他安全單元中正在運行的軟件(如Linphone)。

Linphone(或其他VoIP棧和應用程序)。在我們的參考設計中,我們移植了Linphone以便直接在OKL4 Microvisor上運行,但如果資源允許的話(huà),Linphone可以駐留在安全單元中的Linux實(shí)例上。我們的設計有意地將Linphone與 Android隔離開(kāi)來(lái),以確保Linphone的穩定性和安全性;另一方面,將Linphone托管在OKL4 Microvisor之上還能夠節約內存并提高性能。

音頻及串口驅動(dòng)程序。Android與Linphone共享音頻驅動(dòng)程序,即使用戶(hù)禁用了Android,該驅動(dòng)程序仍能夠為VoIP通話(huà)提供音頻輸入/輸出。串口驅動(dòng)程序是隔離共享的,以支持系統控制臺和調試。

運行系統功能如下:Android作為主操作系統,通過(guò)Beagle Board上的OMAP顯示硬件提供標準的Android用戶(hù)界面呈現給客戶(hù)。用戶(hù)可以使用基于A(yíng)ndroid的VoIP“撥號”應用程序或 Android下運行的Linphone控制臺服務(wù)器來(lái)啟動(dòng)安全的VoIP通話(huà)。通話(huà)啟動(dòng)后,用戶(hù)可以運行其他Android應用程序(游戲、網(wǎng)頁(yè)瀏覽等),而不影響VoIP通話(huà)的質(zhì)量或安全性。此時(shí),即使Android進(jìn)入睡眠模式甚至死機,都不會(huì )導致通話(huà)中斷。

和性能優(yōu)化

嵌入式開(kāi)發(fā)人員總是不信任“阻擋其與硬件親密接觸”的軟件。 在智能設備發(fā)展初期,面向硬件的開(kāi)發(fā)人員不喜歡使用高級語(yǔ)言,而偏好匯編代碼,以期從“裸機”中獲取更多性能。不久,實(shí)時(shí)操作系統便成了一種“感知瓶頸”。再之后,Linux和Android之類(lèi)的應用操作系統進(jìn)一步加深了癡迷性能的工程師、產(chǎn)品??理和最終用戶(hù)的不快。

而如今,移動(dòng)/嵌入式又形成了一個(gè)抽象層。它雖然提高了生產(chǎn)效率,但卻使開(kāi)發(fā)人員及其代碼進(jìn)一步“遠離”底層硬件,使開(kāi)發(fā)人員無(wú)法深入發(fā)掘他認為的通過(guò)“裸機執行所具有的性能優(yōu)勢”。

說(shuō)起來(lái)也許令人難以置信,但在許多應用方面,虛擬化不僅只產(chǎn)生極小的性能開(kāi)銷(xiāo),而且還能夠提高吞吐量和響應速度,這主要得益于內存利用率的提升和對 microvisor IPC的利用。使用了GTKPerf基準測試套件針對常見(jiàn)GTK+ UI框架執行的測試結果如表1所示。GTKPerf提供了一個(gè)通用測試平臺,運行預定義的GTK+窗口小部件(打開(kāi)組合框、切換按鈕、滾動(dòng)文本等)來(lái)衡量設備或平臺的運行速度。

下表是我們在原始環(huán)境和虛擬化環(huán)境中運行GTKPerf時(shí)得到的實(shí)際耗時(shí)及開(kāi)銷(xiāo)結果。對于A(yíng)ndroid圖形及平臺中的其他子系統,結果應該與此類(lèi)似。

下面我們來(lái)探討一些更深入的microvisor實(shí)現示例,這些實(shí)現真實(shí)提高了Android等客戶(hù)操作系統的性能,這種性能提升在A(yíng)RM9系列低成本芯片上尤為明顯。

快速地址空間切換

像 OKL4這樣設計精良的microvisor并不依賴(lài)于其托管的客戶(hù)操作系統,并且能夠在不同客戶(hù)機和客戶(hù)機進(jìn)程間提供快速、低延遲的上下文切換。 Android軟件架構構建于相互隔離的組件之上,這些組件借助自定義IPC機制進(jìn)行通信。與傳統基于Linux的環(huán)境相比,該架構會(huì )產(chǎn)生更多的進(jìn)程間通信,每次切換進(jìn)程上下文都需要刷新全部緩存。如果常規Linux中的上下文切換會(huì )產(chǎn)生延遲和內存總線(xiàn)占用,那么Android的情形可想而知。

為提高Android的性能,OKL4會(huì )維護此類(lèi)上下文切換的相關(guān)高速緩存狀態(tài),以提高高速緩存利用率,這樣不僅縮短了上下文切換延遲,而且還提高了整體性能。

將內存占用降至最小

OKL4 Microvisor針對性能和內存使用進(jìn)行了優(yōu)化。對于A(yíng)ndroid與Linux或OKL4 Microvisor這類(lèi)基于微內核的環(huán)境,直接比較滿(mǎn)棧占用的內存大小非常困難。顯然,Android與Linux就連提供的服務(wù)范圍都各不相同。

不過(guò),值得注意的是,OKL4微內核本身只占用幾十KB,而Android和Linux的內核都是以MB來(lái)衡量的。雖然OKL4與生俱來(lái)的小尺寸并不能將系統占用降至最小,但是這個(gè)小尺寸基礎平臺與一系列附加組件相互集成就形成了一個(gè)輕量級準虛擬化平臺──OK:Android。與Xen或KVM之類(lèi)的企業(yè)和桌面hypervisor(包含整個(gè)Linux內核)相比,OKL4真的非常小巧。

擴展架構及其應用

本文介紹的系統架構旨在演示在虛擬化環(huán)境中運行Android及相關(guān)軟件的簡(jiǎn)單和實(shí)用之處。這一結構有可能為Android以外的其他客戶(hù)操作系統提供同樣的支持。 為方便操作系統集成,OK Labs提供了多種常見(jiàn)移動(dòng)/嵌入式操作系統的準虛擬化版本,其中包括OK:Linux和OK:Symbian,以及協(xié)助開(kāi)發(fā)人員準虛擬化幾乎任何開(kāi)源操作系統的工具和服務(wù)。

除此以外,該設計類(lèi)型并不局限于移動(dòng)應用或Beagle Board。為方便在廣泛的移動(dòng)設備上使用,OKL4支持ARMv5、ARMv6和ARMv7架構。這種廣泛支持使得能夠輕松將Android及其他受支持操作系統到其他CPU和SoC,以及Beagle Board開(kāi)發(fā)環(huán)境或移動(dòng)應用以外的設備類(lèi)型;如今,已有超過(guò)5億部設備采用了OKL4。

由于OKL4使用了相同的虛擬化架構,因此能夠輕松地支持在以下設備上運行的高級操作系統(如Android、實(shí)時(shí)操作系統及針對特定目的構建的平臺):上網(wǎng)本,Webpad、機頂盒與數字錄像機、高清電視、車(chē)載系統、醫療設備──實(shí)際上是支持任何基于A(yíng)RM的設備。

本文小結

借助虛擬化設計,OEM及開(kāi)發(fā)人員不但能夠簡(jiǎn)化和集成,還能夠享受軟件組件之間高度隔離所帶來(lái)的穩定性和安全性。在Beagle Board上,OKL4 Microvisor提供了一個(gè)穩定、可靠托管Android這一流行平臺的捷徑。請盡情暢想,它能夠為您的下一設計帶來(lái)哪些令人贊嘆的功能。

更多醫療電子信息請關(guān)注:21ic醫療電子頻道



關(guān)鍵詞: Android 虛擬化 遷移

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>