DBus与其他进程间通信方法的区别

时间:2015-11-24 06:42:53

标签: c++ c linux ubuntu dbus

当我研究Linux进程间通信时,我知道有一些方法:管道,消息队列,套接字,信号,共享内存,信号量,没有名为Dbus的方法。

但是今天,当我研究Dbus时,我读到:" D-Bus是一个用于进程间通信(IPC)的系统" (见链接:https://en.wikipedia.org/wiki/D-Bus

所以我的问题是: DBus和其他IPC方法有什么不同?

2 个答案:

答案 0 :(得分:2)

没有技术上的,但历史上的差异。

D-Bus以前不是Linux(即内核)IPC,而是一个额外的中间件IPC。但在引入systemd的过程中,D-Bus成为了几个Linux发行版的基本系统的一部分。

答案 1 :(得分:1)

一对一的ipc方法有一大组协作过程可以导致密集的网格。但是在Dbus的情况下,每个进程可以连接到提供授权访问的任何数量的进程。在公共单个共享信道上,用户可以与他自己的会话或新会话连接,而不会干扰其他用户的会话。这大大提高了性能

参考链接

https://blogs.gnome.org/abustany/2010/05/20/ipc-performance-the-return-of-the-report/

这显示了DBus性能与自定义IPC系统的比较。您可以更好地了解Dbus的性能