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

Vie*_*iet 15 c c++ linux ubuntu dbus

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

但是今天,当我研究 Dbus 时,我读到:“D-Bus 是一个进程间通信 (IPC) 系统”(请参阅​​该链接: https: //en.wikipedia.org/wiki/D-Bus

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

Mat*_*ias 5

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

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


Mur*_*har 4

一对一的ipc方法有大量的协作进程可以造成密集的网格。但在 Dbus 的情况下,每个进程都可以连接到任意数量的具有授予访问权限的进程。在公共单个共享通道上,用户可以连接他自己的会话或新会话,而不会干扰其他用户的会话。这大大提高了性能

参考链接

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

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

  • @Viet DBUS 利用 IPC 机制,但自己不实现 IPC。 (2认同)