2010年10月5日 星期二

MeeGo

2010年出來一個新的可攜式裝置作業系統:MeeGo。它是Open Source,看來也可以作為嵌入式系統課程的學習對象,也許可以作為輔仁大學智慧型系統實驗室FJUCam2/VCam的Embedded OS平台。

本篇文章將來探討MeeGo的特點與性質,藉以分析其為何MeeGo可能可以作為本實驗室的Embedded OS平台。

MeeGo is YAOS(Yet Another OS)?

但初看到MeeGo的新聞,一般人會認為:MeeGo不過是YAOS,另外一個 Embedded Linux而已。因為在手機與平版電腦市場,隨著Google Android,Apple iOS,以及Nokia的Symbian的盛行,一般人已經很難再想去用其他的Embedded OS了。

但其實不然。

原因是此作業系統是由Intel 與Nokia兩大公司合作。以該兩家公司聯手的實力,有機會與Google、Apple的作業系統來一較高下,因此MeeGo在目前的情況下還是有機會勝出。

此外,MeeGo也非全新的作業系統,而是由兩家公司已經穩定的一些前身組合而來的。換句話說,MeeGo = Intel Moblin + Nokia Qt。因此,MeeGo要迎頭趕上Google與iOS的佔有率,也是有機會。

以下分別從Intel與Nokia兩個方面來說明。

Intel Moblin

話說Intel其實早在多年前,就開始有打算脫離WINTEL的架構,也就是WIndows + INTEL CPU的PC電腦產業架構。尤其是在手機、Netbook部分這類的可攜式裝置,微軟的WinCE、Windows Phone市場佔有率都表現的不理想,因此Intel在可攜式裝置上,早有Computing continuum strategy,也就是學界稱謂的Ubiquitous computing。在此方向上,Intel早有意採用Linux。

因此,Intel其實一直都有支援Open Source Foundry,所以也有多年的Linux Open Source基礎,並在2007年推出x86架構的Embedded Linux,應用於Intel Atom,也就是Intel要放在所有可攜式裝置上的省電型CPU。該Embedded Linux是從Ubuntug改良而來,稱之為Moblin作業系統,並實質使用於2007年在Atom的產品,如ASUS EeePC

因此MeeGo其實可以視為Moblin的下一代,其目標將用在Intel的可攜式CPU上面,尤其是Atom,因此Intel對MeeGo的期待,是要廣泛使用在Tablet、Smart Phone、Netbook、以及TV。

關於Nokia與Qt

至於Nokia,其主要的手機仍採用Symbian,因此其策略主要是將Qt與Moblin結合成為MeeGo,也就是將Qt當作MeeGo的GUI與UX(User Experience)核心。Nokia在前幾年併購Trolltech後,將Qt大幅整理,使Qt也成為Open Source的一員,但另外也有商業版作為Nokia的產品

Qt的歷史淵源跟Apple的iOS也有關,iOS的GUI介面程式庫,其實也是從Qt改良而來。

換句話說,Qt其實是Linux與Embedded Linux上眾多GUI Library中,效能與功能最出色的一套SDK。以往Qt不被Open Source User支持的原因,只是因為Qt不是Open Source,因此受到部分Linux & Open source社群的抵制,使得Linux/Embedded Linux上的GUI到去年都呈現多家耕耘的混亂局面。

但是自從Nokia將Trolltech買下來並在去年公布Qt的Open Source版本後,Qt已經呈現主流的態勢。根據個人的猜測,在Qt將會逐漸成為Linux Open Source上主流的GUI與UX,取代GTK等Linux GUI Library。並且Nokia也會在Qt上面增加小尺寸螢幕的UX,使的Qt適合從大尺寸螢幕的PC到小尺寸螢幕的智慧型手機。

也因此,我們實驗室在2009年時,即做了一個重要決定,在GUI介面上為求跨Windows、Linux與iOS平台,我們將使用Qt。

MeeGo的架構

以下是其兩個重要的架構圖。詳情請參考IEEE 2010的論文[1]。

MeeGo的架構圖


Qt的架構圖


採用MeeGo的好處

依據我的觀察與思考,對於本實驗室而言,使用MeeGo比起使用Android與iOS,有以下3個好處。

1. 可以跨CPU平台
     雖然目前在手機上的CPU以ARM為主流,但是Intel的ATOM其實也有機會在可攜式裝置上佔有一席之地。因此若使用MeeGo,其好處在於將來本實驗室的演算法與EDK,可輕易同時在兩種CPU架構中使用。

     MeeGo在ARM的支援,要從Nokia來看。目前Nokia多款Smart Phone都是採用TI OMAP,例如N900就是使用OMAP3430。因此可以想見,將來MeeGo在Nokia的支援下,在OMAP晶片的支援會非常快速而完整。

     由於我們的FJUCam2/VCam是採用OMAP系列或由其延伸的DaVinci晶片,因此在硬體平台相容度下有良好的利基。

2. 可以跨多種尺寸的可攜式裝置
     目前Android 2.2版以下主要的問題,在於無法用在超過5吋螢幕的可攜式裝置。因為Google對於Android的方向設定,一直是以Smart Phone為目標。只因Apple iPad出現打亂了Google Android的佈局方向。

     雖然Android 3.0版預計要解決此問題,但僅能等到2010年底/2011年才能看到確實的作法,目前還不清楚其詳細作法。詳情可以參考另外一篇文章

     另外,目前Google還有Chrome的作業系統,並以5~12吋螢幕的可攜式裝置為主。將來Google要如何結合Android與Chrome,成為一套作業系統,其策略我還不是很清楚。在Android前途渾沌不明下,即便業界都很難決定要如何再繼續使用Android做為平台。

3. 介面移植容易
    另外在演算法層面的移植性來看,我們在MeeGo採用Qt GUI介面,有利於在PC Windows與PC Linux上移植影像辨識演算法。

     因為我們發展影像辨識方法的過程,是先在PC Windows上進行演算法的研究,經過研究與詳盡的實驗確認方法的有效性後,才開始將其程式碼做速度的最佳化,並移植到PC Linux與Embedded Linux。

     在這樣的過程中,我們都需要視窗介面。若能在一開始PC Windows環境時就使用Qt,則移植到PC Linux與Embedded Linux的困難度與陣痛期可以大幅降低。

      至於Android,則被限制要以Java來開發介面,因此必需採用JNI(Java Native Interface)架構來連結Java與C語言,對於以C語言當作Native Language的影像演算法開發者而言,實在是多了一層門檻與痛苦。也降低開發與移植的速度。


然而問題在於

我們還不清楚MeeGo的詳細特點與缺點。這要實際經過使用、移植與測試後,我們才能確定。另外也還要觀察Android與iOS的進展。至少還要再觀察半年後三個作業系統的消長,再來斷定。

目前我們實驗室在PC Linux,已經有Fedora、CentOS與Ububtu的能力與經驗。在Embedded Linux,則有Angstrom、Android的經驗。目前將試著移植MeeGo,並瞭解其優缺點。

半年後再來評估優劣得失。

[1] Introduction to MeeGo, by S. Schroeder, IEEE Pervasive Computing, vol. 9, no.4, 2010.



本網誌相關文章 :

沒有留言:

張貼留言