最近更新: 2011-03-01

我看 MeeGo, WebOS, Android

我從一位 Linux 程序員的角度來看 MeeGo, WebOS, Android 之間的差異。 這三套作業系統同樣基於 Linux 核心並支援 ARM 架構。 寫下這篇筆記,提供想要進入它們的軟體發展領域的程序員參考。 如有不同看法,歡迎討論。

MeeGo

由 Intel (Moblin) 與 Nokia (Maemo) 貢獻,Linux 基金會主導的 GNU/Linux 散佈版本。參考網站:

MeeGo 是 GNU/Linux 的其中一種桌面環境套件。枝幹衍生自 Fedora 。 主要架構都和 Fedora 一樣。 就我的使用經驗,它可以接受 Fedora11 的軟體套件庫,並直接安裝 Fedora11 的套件。

MeeGo 根據設備平台,採用不同的視窗管理程式(Window manager)。

  • Netbook: Mutter
  • In-Vehicle: Matchbox

以上視窗管理程式只是預設項目,套件庫中亦提供 GNOME Desktop 與 XFCE Desktop 環境選用。

MeeGo 系統架構圖,參考: MeeGo Architecture Domain View。 整體而言,MeeGo 需求的軟體開發知識,與一般 GNU/Linux 並無不同。開發工具亦通用。 就我的使用經驗,Python, Ruby, PHP 皆可用,也可以使用 GTK 設計圖形介面軟體。 gcc/vala 也可在 x86 架構上開發程式,再透過 cross compile 產生 ARMv7 架構的執行檔。

Nokia 為 MeeGo 貢獻了一套 Qt SDK 的整合性開發工具,整合的開發工具從 C++ 到 QML,從低階包到高階,是一套強大的快速開發工具。然而在 Nokia 改變策略擁抱 Microsoft 並且不打算將 Qt SDK 移植到 WP 平台之後,這套工具還能得到多少維護資源,猶未可知。

Notice: 支援 D-Bus。
WebOS

由 Palm 開發,被 HP 收購後更名為 WebOS。

WebOS 主要架構皆與主流 GNU/Linux 散佈版本相同,只有 GUI 不同。它的 GUI 不使用 X11 架構。 對於系統程式開發者而言,WebOS 所需知識與一般 GNU/Linux 相同。 但對圖形介面軟體開發者而言,則需要學習另一套近似 Web 開發經驗的軟體框架;最新釋出的消息顯示,這套軟體開發框架的名稱是 Enyo。

Notice: 支援 D-Bus。
Android

Android 只有核心是 Linux ,其他部份都不是。它不屬於 GNU/Linux 體系。參考網站:

就軟體開發環境而言, Android 可視為一個 Java 實體機。程式員可承襲 Java 的開發經驗進行工作。 但 Google 為了規避 GNU GPL 的約束,也不想付錢給 Oracle ,所以它提供的是一個類似 JVM 的 Dalvik 虛擬機器,以 Apache License 授權散佈。故在 Java 的三柱之中,僅程式語言是相同的,虛擬機器與類別庫則略有不同。

Linux 系統程式的開發經驗在此不能直接套用,最好別把它當成 GNU/Linux 環境。 它沒有 glibc, X11, GTK, D-Bus 等內容; 把它想成是在 Win32 平台下開發 POSIX 程式的感覺,那就差不多了。

結語

如果按照 Linux 開發經驗的相適性排列,我由最接近到最不接近的排位為: MeeGo -> WebOS -> Android。

我沒提 Ubuntu Netbook Remix ,原因是它到目前為止仍未釋出正式的 ARM 架構影像檔。 就我的使用經驗,UNR 和 MeeGo 在 x86 平台上的定位是一致的,兩者的開發經驗極為相似。 除了 UNR 是用 debain 套件管理機制,而 MeeGo 是用 rpm 套件管理機制。

樂多舊網址: http://blog.roodo.com/rocksaying/archives/15267621.html