DBus 介绍 dbus是freedesktop下开源的Linux IPC通信机制,本身Linux
的IPC通信机制包括,管道(fifo),共享内存,信号量,消息队列,Socket等。
像现在流行的moblin平台就使用了DBUS通信,还有我最近看的bluez 4 也是通过DBUS来交互的。 1. 函数库libdbus,用于两个应用程序呼叫联系和交互消息。 2. Message bus daemon,总线守护进程可同时与多个应用程序相连,并能把来自一个应用程序的消息路由到0或者多个其他程序。 3. 一系列基于特定应用程序框架的Wrapper库。 比如libdbus-glib, libdbus-python. 我前段时间就是用Python写程序与dbus-daemon通信,所以就需要libdbus-python,后来又用c写程序,又装了libdus-glib。实质上在dbus主页上(http://www./wiki/Software/dbus) 提供了很多Wrapper库, for QT4, JAVA, Perl, C++, Pascal, QT3, .NET, Ruby等等。这个Wrapper库呢其实就是对dbus下层调用做了封装,给上层暴露一个友好的接口。dbus的底层其实也是通过socket通信的 图 1-1 我再给一张bluez的例子让大家更理解dbus; 有四个应用想与bluz的damon通信,bluez注册到dbus中,其它的应用只需要向dbus要bluez的数据, dbus负责再和bluez沟通了,但是bluez一定要把接口告诉其它应用。 |
|