当我研究Linux进程间通信时,我知道有一些方法:管道,消息队列,套接字,信号,共享内存,信号量,没有名为Dbus的方法。
但是今天,当我研究Dbus时,我读到:" D-Bus是一个用于进程间通信(IPC)的系统" (见链接:https://en.wikipedia.org/wiki/D-Bus)
所以我的问题是: DBus和其他IPC方法有什么不同?
答案 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的性能