目前Linux手机平台不少,不管它目前强势还是弱势,我们先放一边;
我们来看看各个平台中所采用的技术点的相似点和不同点,比如分析一下
各个平台的进程通信机制的异同等等,后面会逐个分析。
目前几个Linux手机平台,主要有下面几个:
1 Maemo
2 Android
3 LIMO
4 OpenMOKO
5 GPE^2
6 ALP
7 QTopia Phone Edition.
先把他们的系统架构放在这里,然后从架构中找出其异同点。
今天分析各个平台的进程间通信机制(IPC).
Android architecture:
Maemo achitecture:
我前面写了几家分工:
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/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/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
另外国内有个broncho的开源平台在做,很不错,你们可以看看。