<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 移動(dòng)操作系統(tǒng)帶來差異化設(shè)計(jì)

          移動(dòng)操作系統(tǒng)帶來差異化設(shè)計(jì)

          作者: 時(shí)間:2012-02-17 來源:網(wǎng)絡(luò) 收藏

          設(shè)備市場(chǎng)一直以來都非?;鸨?,特別是具有蘋果的iPhone和Verizon Wireless公司的Droid的智能手機(jī)市場(chǎng)。這些平臺(tái)上的硬件技術(shù)令人印象深刻,但事實(shí)上,圍繞系統(tǒng)的軟件和服務(wù)基礎(chǔ)架構(gòu)使得這些產(chǎn)品實(shí)現(xiàn)了。

          本文引用地址:http://www.ex-cimer.com/article/149641.htm

          大量iPhone應(yīng)用程序顯然說明了一個(gè)好的開發(fā)平臺(tái)能使應(yīng)用程序的普及非常容易。iPhone也許很流行,但它的軟件平臺(tái)是為有限數(shù)量的硬件平臺(tái)的,并且全部是蘋果公司的平臺(tái)。Symbian和框架用于與iPhone相同的領(lǐng)域,但Symbian可以用于更廣泛的平臺(tái),包括基于ARM的智能手機(jī)。Symbian現(xiàn)在是由Symbian FoundaTIon負(fù)責(zé)的一個(gè)開源項(xiàng)目。

          Android與這些框架非常類似,它的最初應(yīng)用目標(biāo)也是智能手機(jī)。這也就不奇怪它的贊助商是Open Handset了。Android與眾不同的一點(diǎn)是,很多人將它用于智能手機(jī)以外的平臺(tái)。如果開發(fā)人員想充分發(fā)揮Android的優(yōu)勢(shì),那么他們就需要了解它的工作原理。為了與Android進(jìn)行比較,先看看能夠滿足這一領(lǐng)域中硬件要求的另外兩種平臺(tái)。

          最流行的平臺(tái)之一是微軟的Windows CE,在智能手機(jī)市場(chǎng)被稱為Windows Mobile。但它的基本框架架構(gòu)與微軟的臺(tái)式機(jī)和服務(wù)器平臺(tái)上的是一樣的,包括最新的臺(tái)式機(jī)版本W(wǎng)indows 7。

          另外一個(gè)平臺(tái)是就像Android一樣基于Linux的Moblin,它適用于使用Intel Atom處理器的上網(wǎng)本和互聯(lián)網(wǎng)設(shè)備(MID)。從這個(gè)角度講,Moblin與蘋果和Symbian解決方案非常相似。

          所有這些平臺(tái)都很獨(dú)特,但它們共享許多類型的公共組件。例如,Android和微軟的.NET框架都是基于虛擬機(jī)(VM)技術(shù)創(chuàng)建的。

          Android的優(yōu)勢(shì)

          “Android在Linux基礎(chǔ)上削繁就簡(jiǎn),向開發(fā)人員提供源自谷歌的易用和著名環(huán)境用于圖形化用戶界面(GUI)創(chuàng)建,使它們專注于針對(duì)遠(yuǎn)不止手機(jī)的嵌入式系統(tǒng)開發(fā)有競(jìng)爭(zhēng)力的解決方案。”德州儀器(TI)公司開放平臺(tái)技術(shù)專家Jason Kridner表示,“這使得Android成為一種強(qiáng)大的操作系統(tǒng),能用于基于OMAP3處理器的,例如TI的OMAP35x*估模塊或非常流行并且擁有眾多支持者的BeagleBoard,可以幫助開源創(chuàng)新公司建立具有高性能和低功耗且基于ARM Cortex-A8的小型低成本系統(tǒng)。”

          圖1:Android應(yīng)用程序是用Java編寫的,運(yùn)行在Dalvik虛擬機(jī)(DVM)上。

          基于Linux的Android使用固有設(shè)備驅(qū)動(dòng)程序向Android基本框架提供整套服務(wù)。固有應(yīng)用程序可以運(yùn)行在這個(gè)系統(tǒng)上,并且可以訪問這些服務(wù),但大多數(shù)應(yīng)用程序?qū)⒂肑ava編寫,目標(biāo)是Dalvik VM(圖1)。這些應(yīng)用程序還能充分發(fā)揮應(yīng)用程序框架的優(yōu)勢(shì),提供Verizon Wireless Droid用戶熟悉的用戶界面。Droid就是一款A(yù)ndroid智能手機(jī) (圖2)。

          圖2:Verizon Wireless的Droid手機(jī)采用Android 2.0,有許多亮點(diǎn)。

          Dalvik VM(DVM)運(yùn)行Dalvik可執(zhí)行(.dex)文件。這些編譯過的Java應(yīng)用程序類似Sun Java虛擬機(jī)(JVM)使用的類文件。從概念上講,DVM和JVM的應(yīng)用層幾乎沒有區(qū)別。但從架構(gòu)上講,基于寄存器的DVM和基于堆棧的JVM有很大的差異。

          DVM和JVM都使用VM代碼模型。然而,DVM使用基于寄存器的操作碼,相當(dāng)于大多數(shù)目標(biāo)平臺(tái)已經(jīng)執(zhí)行的基于寄存器的字節(jié)碼指令。DVM包括了許多架構(gòu),如ARM和MIPS架構(gòu)以及英特爾(Intel)、AMD和威盛的x86兼容架構(gòu)。

          谷歌開發(fā)Android和選用DVM的原因有幾個(gè),首先大多數(shù)JVM具有許可問題;其次DVM在內(nèi)存使用和執(zhí)行基于寄存器的機(jī)器方面更加高效,而且在執(zhí)行多個(gè)DVM實(shí)例時(shí)也被認(rèn)為更加高效。應(yīng)用程序有自己的實(shí)例,因此多個(gè)有效應(yīng)用程序要求多個(gè)DVM實(shí)例。與大多數(shù)Java實(shí)現(xiàn)一樣,DVM有一個(gè)自動(dòng)垃圾收集器。

          有趣的是要看到這些優(yōu)勢(shì)在長(zhǎng)期運(yùn)行時(shí)是否能保持,特別是隨著目標(biāo)上的內(nèi)存容量和處理器性能的不斷提高。在這個(gè)方面,DVM不支持及時(shí)(just-in-time)編譯。另一方面,dex文件在加載進(jìn)系統(tǒng)時(shí)可以針對(duì)硬件進(jìn)行優(yōu)化。

          如上所述,Android針對(duì)自己提供的服務(wù)有自己的Java類,這些類與Sun公司的Java SE或Java ME提供的類服務(wù)類型相當(dāng),但不完全一致。Android不支持Sun風(fēng)格平臺(tái)常用的圖形化AWT和Swing庫(kù)。相反,Android有它自己的用戶界面類,包括對(duì)OpenGL的支持。類的基集可以在包括像藍(lán)牙和電話這種接口的智能手機(jī)平臺(tái)上找到,但在其它嵌入式Android平臺(tái)上可能不作要求。

          Android軟件開發(fā)套件(SDK)可以從Android網(wǎng)站上免費(fèi)下載,并且可以和許多開發(fā)工具一起使用。Android開發(fā)工具(ADT)Eclipse插件允許開發(fā)人員使用開源Eclipse平臺(tái)開發(fā)Android應(yīng)用程序,包括基于Eclipse的大量第三方工具集,如Mentor Graphics的ESD。

          Mentor Graphics還提供Android支持服務(wù)。這也了許多Android開發(fā)人員忽視的另外一個(gè)問題:Android平臺(tái)支持。應(yīng)用軟件開發(fā)人員需要Android SDK。將Android用于新的平臺(tái)是另外一個(gè)問題。Android確實(shí)運(yùn)行在Linux上,但這將同樣的支持問題。這正是像MontaVista、Lynuxworks和Mentor Graphics等操作系統(tǒng)供應(yīng)商做大部分Linux移植的原因。

          管理和支持更改是一項(xiàng)艱巨的工作,對(duì)運(yùn)行在Linux上的Android來說也是如此。目前Android的更改和增強(qiáng)源自谷歌公司,今后也許會(huì)有改變,但仍意味著任*版本都需要對(duì)定制、缺陷修復(fù)和其它修改進(jìn)行集成和測(cè)試。

          適合Atom使用的Moblin

          圖3:基于Linux的Moblin主要用于上網(wǎng)本和互聯(lián)網(wǎng)設(shè)備(MID)。

          Moblin和Intel的Atom幾乎形影不離。Moblin建立在x86 Linux堆棧基礎(chǔ)之上,增加了一個(gè)用戶界面和用于簡(jiǎn)化與系統(tǒng)交互的應(yīng)用程序(圖3)。它的顯示功能有益于觸摸屏,并以中等尺寸的屏幕為主要應(yīng)用對(duì)象,比如在上網(wǎng)本、MID和汽車儀表臺(tái)等目標(biāo)平臺(tái)上使用的屏幕(圖4)。

          圖4:Moblin界面設(shè)計(jì)用于簡(jiǎn)化用戶交互和解決觸摸界面。

          與臺(tái)式機(jī)和全尺寸筆記本相比,Moblin的中等大小應(yīng)用對(duì)象通常使用較小的屏幕和較低功耗并且處理能力較有限的處理器,因此電源管理是關(guān)鍵。應(yīng)用程序需要有良好的響應(yīng)能力,而且要能充分利用較有限的資源。

          應(yīng)用程序和應(yīng)用服務(wù)是固有的Linux應(yīng)用,允許使用已有的Linux開發(fā)成果。QT和GTK GUI庫(kù)已被用來搭建主要的Linux GUI、Gnome和KDE。這意味著大多數(shù)現(xiàn)有應(yīng)用程序無需重大修改就能移植到Moblin上。當(dāng)然,從Gnome或KDE這樣的通用視窗環(huán)境轉(zhuǎn)移到像Moblin這樣有更多限制的框架極具挑戰(zhàn)性,具體還要取決于應(yīng)用程序及其架構(gòu)。Moblin支持Linux上使用的眾多圖形界面,包括X Windows和OpenGL。

          Moblin的不止是一個(gè)用戶界面和渲染庫(kù)。它的通信子系統(tǒng)提供電話、蜂窩和VoIP之類的IP(互聯(lián)網(wǎng)協(xié)議)服務(wù)?;谖恢玫姆?wù)、設(shè)備同步和內(nèi)容管理只是可供Moblin應(yīng)用程序使用的眾多庫(kù)中的一些。例如,mojito提供社區(qū)網(wǎng)頁服務(wù)支持。多媒體支持包括用于管理多媒體元數(shù)據(jù)的bickley和用于管理多媒體播放列表的bognor-regis。

          基于庫(kù)服務(wù)方法考慮,C是選用的編程語言。C++同樣可以使用,但Linux支持每種主流的編程語言,Moblin也如此。針對(duì)核心Moblin應(yīng)用編程接口(API)的綁定產(chǎn)品適合像Ruby和Python這樣的語言。

          Intel收購(gòu)風(fēng)河對(duì)Moblin來說不應(yīng)感到太驚訝。風(fēng)河Linux和相關(guān)開發(fā)工具與Moblin有極好的匹配。在這個(gè)收購(gòu)事件發(fā)生前,風(fēng)河公司已經(jīng)在與Intel和Moblin一起開展工作。

          Moblin不是只能用于Atom或風(fēng)河產(chǎn)品,它還能用于其它Linux平臺(tái),如Ubuntu和Xandros。Ubuntu Moblin Remix加入了Canonical公司的Ubuntu Netbook Remix。戴爾公司將提供Ubuntu Moblin Remix,用于采用Atom處理器的戴爾Inspiron Mini 10v上網(wǎng)本。

          Moblin吸收了Linux最新的增強(qiáng)性能,它的快速啟動(dòng)時(shí)間是一大特色,此外還支持觸摸屏和手勢(shì)等特性。隨著新的x86處理器繼續(xù)降低功耗要求,手機(jī)將成為Moblin的應(yīng)用目標(biāo)。Moblin還得到了Intel以外的一些大公司的支持,使之成為這一領(lǐng)域中所用平臺(tái)的重要組成部分。

          其它Linux系統(tǒng)

          x86統(tǒng)治著上網(wǎng)本市場(chǎng),但MID和智能本可以使用更多的平臺(tái),包括基于ARM和MIPS架構(gòu)的平臺(tái)。Windows CE是用于這些架構(gòu)的一種可行平臺(tái),雖然Debian Linux和諸如Ubuntu等變種可能主導(dǎo)這一領(lǐng)域。

          像Ubuntu、Xandros和ThunderSoft等基于Debian的Linux版本的許多開發(fā)人員已經(jīng)在展開合作。這樣,很可能相似的平臺(tái)出現(xiàn)在使用相同Linux內(nèi)核的各種產(chǎn)品上,并具有相似的運(yùn)行時(shí)庫(kù)補(bǔ)充。

          目前這一領(lǐng)域缺少的是各個(gè)系統(tǒng)提供商之間一致的開發(fā)和描述框架。大多數(shù)供應(yīng)商已經(jīng)在與谷歌合作開發(fā)Android,但在非電話平臺(tái)上的Android是否能及時(shí)推出仍有待觀察。更可能的情景是傳統(tǒng)的Debian實(shí)現(xiàn),再以硬件供應(yīng)商提供的應(yīng)用程序作為補(bǔ)充。

          谷歌發(fā)布了谷歌Chrome操作系統(tǒng)。這種操作系統(tǒng)以目前運(yùn)行在所有主要平臺(tái)上的Chrome瀏覽器為核心,是另一種基于Linux的平臺(tái),但也是一個(gè)最小系統(tǒng),其中瀏覽器將提供應(yīng)用程序框架。這種方法在得到部署前仍有大量的不確定性。系統(tǒng)設(shè)計(jì)的關(guān)鍵因素包括速度、簡(jiǎn)單性和安全性。啟動(dòng)網(wǎng)頁瀏覽應(yīng)該在幾秒種內(nèi)完成。

          采用這種方法仍需要解決許多重要問題,特別是在自由操作方面。當(dāng)3G或Wi-Fi連接可用時(shí),基于網(wǎng)頁的應(yīng)用程序沒什么問題,但在這里討論的所有其它平臺(tái)上最常見的獨(dú)立應(yīng)用程序可能有問題。一些最初的方法采用雙啟動(dòng)技術(shù),將全套應(yīng)用程序放在更傳統(tǒng)的Linux或Windows實(shí)現(xiàn)上。

          微軟的移動(dòng)解決方案

          圖5:.NET框架運(yùn)行在所有Windows平臺(tái)上,為.NET編程人員提供一致的環(huán)境。

          Windows Embedded CE是微軟移動(dòng)解決方案的核心。就像微軟的其它Windows解決方案一樣,Windows CE采用了.NET架構(gòu)(圖5)。編寫出能夠在不同Windows平臺(tái)的任意一種上運(yùn)行的程序應(yīng)該沒什么問題,但.NET框架允許應(yīng)用程序運(yùn)行在幾乎任何Windows操作系統(tǒng)上,其中包括了像Windows Mobile這樣的平臺(tái),這是運(yùn)行在諸如HTC Touch 2等多種智能手機(jī)上的一種Windows CE版本(圖6)。

          圖6:HTC Touch2只是基于Windows Mobile的眾多成功手機(jī)中的一種。

          .NET框架基于類似Dalvik和JVM這樣的VM架構(gòu)。微軟的公共語言運(yùn)行時(shí)(CLR)能夠在類似JVM的虛擬棧機(jī)器中執(zhí)行公共中間語言(CIL)字節(jié)代碼。

          公共語言基礎(chǔ)架構(gòu)(CLI)是一種開放的ECMA-335和ISO/IEC 23271規(guī)范,它描述了CIL、CLR運(yùn)行時(shí)環(huán)境以及公共類系統(tǒng)(CTS)和運(yùn)行時(shí)匯編。Mono和DotGNU Portable.NET是CLI的兩種開源實(shí)現(xiàn),運(yùn)行在許多非Windows平臺(tái)上,如Linux。

          JVM目前還支持Java以外的其它編程語言,但Java是主要目標(biāo)。然而,.NET總是有意作為多語言主機(jī)。.NET框架支持多種來源的許多編程語言。從Cobol到F#(一種功能性編程語言)的每種語言都將運(yùn)行在.NET框架上。

          CLI可以被實(shí)現(xiàn)為一種運(yùn)行CIL代碼的解釋器。但像Java一樣,通過將應(yīng)用程序轉(zhuǎn)換成固有代碼,CIL JIT編譯器可以帶來更高的性能。這種方法具有將優(yōu)化功能移動(dòng)到JIT的優(yōu)勢(shì)。提前(AOT)編譯到固有代碼也是可以的。這種方法將可執(zhí)行代碼鎖定到當(dāng)前平臺(tái),但消除了JIT要求的啟動(dòng)延時(shí)。

          編譯器仍需要產(chǎn)生高效的CIL代碼,但它們不必關(guān)注針對(duì)執(zhí)行優(yōu)化目標(biāo)硬件。垃圾收集是問題的一部分。C#有指針類型,但這些變量只能指向數(shù)值類型和數(shù)組。參考變量是用C#等語言跟蹤數(shù)據(jù)的正確方法。CIL代碼也被認(rèn)為是在CLR內(nèi)運(yùn)行的“管理型代碼”,提供諸如線程和內(nèi)存管理等服務(wù)。應(yīng)用程序必須在CLR的安全范疇內(nèi)運(yùn)行??梢該碛惺芄芾淼墓逃写a。Visual C++.NET是一種可以產(chǎn)生CIL管理型和固有無管理代碼的語言環(huán)境。

          管理型代碼的優(yōu)勢(shì)是可以給編程人員提供便利的更高層提取。這種方法極大地增強(qiáng)了安全性。用不同編程語言編寫的應(yīng)用程序間的交互也更加容易。CTS使這一切成為可能。

          VM和低端運(yùn)行時(shí)間是性能和效率的關(guān)鍵,但.NET框架的類庫(kù)尤其重要。在每個(gè).NET框架平臺(tái)中可以找到大多數(shù)基礎(chǔ)類庫(kù)。

          .NET Mirco框架是例外,它直接運(yùn)行在物理芯片(裸金屬)上,沒有Windows操作系統(tǒng)。這種框架也是模塊化的,允許最小的外形尺寸。.NET Micro框架的應(yīng)用目標(biāo)是Android和Moblin等平臺(tái)之下的低端產(chǎn)品,常見于過程控制等設(shè)備中的微控制器上。

          最新版的.NET Micro框架是使用Apache許可的一種開源產(chǎn)品。CLI只實(shí)現(xiàn)為解釋器,但支持.NET框架固有代碼接口。.NET Micro框架可能會(huì)應(yīng)用到受更高端.NET框架設(shè)備(如蜂窩電話)控制的設(shè)備中。擁有一個(gè)公共編程平臺(tái)遲早派得上用場(chǎng)。典型的.NET框架環(huán)境包括比.NET Micro框架多得多的類庫(kù)。圖形、窗體和先進(jìn)的數(shù)據(jù)庫(kù)庫(kù)很常見。在Windows Mobile平臺(tái)中還能見到用于電話和通信的類。

          Mono提供包括基礎(chǔ)類在內(nèi)的許多.NET框架類庫(kù),這樣就允許編寫出在Mono或.NET框架上運(yùn)行的應(yīng)用程序。對(duì)于開發(fā)人員來說問題在于,充分利用.NET框架的真正優(yōu)勢(shì)意味著使用像Windows Communication Foundation (WCF) 和Windows Workflow Foundation (WF)這樣的基集之上的類。應(yīng)用程序類庫(kù)和諸如智能手機(jī)需要的服務(wù)將被發(fā)現(xiàn)運(yùn)行Windows Mobile。

          .NET框架和Windows在這方面是如此形影不離以致于它們無法分開。使用Windows界面(如COM)的固有代碼應(yīng)用程序可以與基于.NET框架的應(yīng)用程序共存,但后者有很大的開發(fā)工作量,也是為基于Windows的移動(dòng)設(shè)備開發(fā)應(yīng)用程序的地方。

          微軟的Visual Studio一直是充分利用.NET框架的應(yīng)用程序的主要開發(fā)平臺(tái)。大多數(shù).NET編程語言使用Visual Studio集成開發(fā)環(huán)境。目前有多種調(diào)試器,如CLR調(diào)試器。Visual Studio支持其它調(diào)試工具,包括支持甚至是混合應(yīng)用環(huán)境中的無管理應(yīng)用程序。

          總之,.NET框架是一種可擴(kuò)展和令人印象深刻的平臺(tái),達(dá)到甚至超過大多數(shù)競(jìng)爭(zhēng)產(chǎn)品的性能。它能處理先進(jìn)的用戶界面,支持多點(diǎn)觸摸界面。Windows 7也采用.NET框架,因此諸如Intel的Atom這樣的平臺(tái)自然適合。

          iPhone應(yīng)用程序店、Android市場(chǎng)和針對(duì)移動(dòng)應(yīng)用的Windows市場(chǎng)將是相應(yīng)移動(dòng)設(shè)備取得成功的主要因素。這些設(shè)備上的基礎(chǔ)框架需要成為一個(gè)好的開發(fā)目標(biāo)才能取得成功。帶.NET框架的Windows和包括Android和Moblin在內(nèi)的各種Linux版本將在新的硬件平臺(tái)上繼續(xù)收獲成功。在擁有iPhone和Symbian的智能手機(jī)市場(chǎng)上它們?nèi)杂泻艽蟮母?jìng)爭(zhēng)力,但這只是嵌入式領(lǐng)域的一部分。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();