1. 什么是dbus
D-Bus( 其中 D 原先是代表桌面“ Desktop ”的意思 ) ,即:用于桌面操作系统的通信总线。现在逐渐被引入到嵌入式系统中,不过名字还是保留原先的叫法而已。
D-Bus是针对桌面环境优化的IPC(interprocess communication )机制,用于进程间的通信或进程与内核的通信。
D-Bus 是相对来讲比较新的进程间通信( IPC )机制,在桌面操作系统中,扮演着一个统一的中间层的一个角色。有很多的项目都用了 D-Bus, 比如: GNOME, Hildon, etc。相对于其它的 IPC, D-Bus 丢掉了一些不必要的、复杂的东西,也正是因为这个原因, D-Bus 比较快、简单。
最基本的D-Bus协议是点对点的通信协议,底层是本地套接字。 但在很多情况下,通信的一方是消息总线。消息总线是一个特殊的后台应用,它同时与多个应用通信,并在应用之间传递消息。Linux下的消息总线的实例是dbus-daemon,dbus-dameon承担了和其他所有进程通信,并转发消息的角色(类似于路由器)。
2 dbus提供的功能
D-Bus 不和低层的 IPC 直接竞争,比如 sockets, shared memory or message queues。这些低层点的 IPC 有它们自己的特点,和 D-Bus 并不冲突。实际上, D-Bus 的主要目的是提供如下的一些更高层的功能:
- 结构化的名字空间