在Maemo平台中,D-Bus是一个非常重要的中间件(middleware)解决方案,主要用于进程之间的通信。已经有很多服务使用了D-Bus,接下来将介绍不同的方法去实现。D-Bus是贯穿于Maemo平台的,离不开D-Bus。
这部分的内容:
- 介绍一下D-Bus
- D-Bus的架构
- D-Bus的地址和名字
- 在Maemo中D-Bus的作用
- 直接用D-Bus底层库libdbus进行编程
D-Bus
介绍
D-Bus(
其中
D
原先是代表桌面“
Desktop
”的意思
)
,即:用于桌面操作系统的通信总线。现在逐渐被引入到嵌入式系统中,不过名字还是保留原先的叫法而已。
D-Bus
是相对来讲比较新的进程间通信(
IPC
)机制,在桌面操作系统中,扮演着一个统一的中间层的一个角色。有很多的项目都用了
D-Bus,
比如:
GNOME, Hildon, etc.
相对于其它的
IPC, D-Bus
丢掉了一些不必要的、复杂的东西,也正是因为这个原因,
D-Bus
比较快、简单。
D-Bus
不和低层的
IPC
直接竞争,比如
sockets, shared memory or message queues.
这些低层点的
IPC
有它们自己的特点,和
D-Bus
并不冲突。实际上,
D-Bus
的主要目的是提供如下的一些更高层的功能:
- 结构化的名字空间
- 独立于架构的数据格式
- 支持消息中的大部分通用数据元素
- 带有异常处理的通用远程调用接口
- 支持广播类型的通信