目前Linux手機平台不少,不管它目前強勢還是弱勢,我們先放一邊;
我們來看看各個平台中所採用的技術點的相似點和不同點,比如分析一下
各個平台的進程通訊機制的異同等等,後面會逐個分析。
目前幾個Linux手機平台,主要有下面幾個:
1 Maemo
2 Android
3 LIMO
4 OpenMOKO
5 GPE^2
6 ALP
7 QTopia Phone Edition.
先把他們的系統架構放在這裡,然後從架構中找出其異同點。
今天分析各個平台的處理序間通訊機制(IPC).
Android architecture:
Maemo achitecture:
LiMO architecture:
我前面寫了幾家分工:
http://blog.csdn.net/cuijpus/archive/2007/12/21/1956597.aspx
目前一些官方的文檔已經release出來了,你們可以看看:
http://www.limofoundation.org/technical-documents.html
OpenMOKO architecture:
GPE Phone Edition architecture:
http://gpephone.linuxtogo.org/
http://gpephone.linuxtogo.org/doc/components/gpearch.php
Qtopia Phone Edition:
http://dist.trolltech.com/pdf/Greensuite%231_FactSheet_cn.pdf
http://dist.trolltech.com/pdf/Qtopia_Phone_Edition_4_ds_v7_A4_web_cn20080221.pdf
ALP architecture:
http://alp.access-company.com/
從上面幾個architecture中,我們看看到,對於進程間的通訊,
1 Maemo 採用D-BUS
2 Android 採用OpenBinder
3 LiMO 採用D-BUS
4 OpenMoko 採用D-BUS
5 GPE Phone Edition 採用D-BUS
6 ALC 採用OpenBinder
7 Qtopia Phone Edition 採用 D-BUS (http://doc.trolltech.com/4.2/intro-to-dbus.html)
從比較中可以發現目前主要使用D-BUS和OpenBinder兩種處理序間通訊機制;並且D-BUS的使用面要廣。
D-BUS:
對於D-BUS的介紹,可以到其官方網頁上去瞭解做全面的資料:
http://www.freedesktop.org
http://www.freedesktop.org/wiki/Software/dbus
http://dbus.freedesktop.org/doc/dbus-specification.html
http://blog.csdn.net/cuijpus/archive/2008/01/30/2073962.aspx
OpenBinder:
OpenBinder 形容為“在一般概念上和DCOM以及CORBA類似,不過更好的適應了小規模裝置”。
http://www.open-binder.org/
http://www.open-binder.org/docs/html/BinderOverview.html
用OpenBinder的是ALP, Access Linux Platform 使用OpenBinder作為IPC,不足為奇,因為
ACCESS收購了Palm的,而Palm開始就是用的OpenBinder.
Android平台也用了OpenBinder作為IPC, Android這個平台有兩點比較與眾不同:採用Java語言,
而不是C作為大多數程式的語言;另外就是沒有採用D-BUS,而用OpenBinder.
http://www.android-internals.org/index.php?title=OpenBinder
估計也是有曆史淵源的,就像 Access收購Palm後,直接繼承了OpenBinder, Google 的Android
原先也是收購的。
補:對於進程間的通訊,主要有5中:
1 D-BUS
2 Openbinder
3 CORBA/Corbit
4 IVY
5 GNET
http://www.gnetlibrary.org/
另外國內有個broncho的開源平台在做,很不錯,你們可以看看。
http://www.broncho.cn/