DBus与其他进程间通信方式的区别
Difference between DBus and other Interprocess Communications method
当我研究 Linux 进程间通信时,我知道有一些方法:管道、消息队列、套接字、信号、共享内存、信号量,但没有名为 Dbus 的方法。
但是今天,当我研究 Dbus 时,我读到:"D-Bus is a system for interprocess communication (IPC)"(参见 link:https://en.wikipedia.org/wiki/D-Bus)
所以我的问题是:
DBus和其他IPC方法有什么不同?
没有技术上的差异,而是历史上的差异。
D-Bus 以前不是Linux(即内核)IPC,而是一个额外的中间件IPC。但是在 systemd
的引入过程中,D-Bus 成为几个 Linux 发行版的基本系统的一部分。
一对一的ipc方法有一大群协作进程会导致密集网格。但是在 Dbus 的情况下,每个进程都可以连接到任意数量的具有授权访问权限的进程。在公共的单一共享频道上,用户可以连接到他自己的会话或新会话,而不会干扰其他用户的会话。这大大提高了性能
参考link
https://blogs.gnome.org/abustany/2010/05/20/ipc-performance-the-return-of-the-report/
这显示了 DBus 性能与自定义 IPC 系统的比较。您可以更好地了解 Dbus
的性能
当我研究 Linux 进程间通信时,我知道有一些方法:管道、消息队列、套接字、信号、共享内存、信号量,但没有名为 Dbus 的方法。
但是今天,当我研究 Dbus 时,我读到:"D-Bus is a system for interprocess communication (IPC)"(参见 link:https://en.wikipedia.org/wiki/D-Bus)
所以我的问题是: DBus和其他IPC方法有什么不同?
没有技术上的差异,而是历史上的差异。
D-Bus 以前不是Linux(即内核)IPC,而是一个额外的中间件IPC。但是在 systemd
的引入过程中,D-Bus 成为几个 Linux 发行版的基本系统的一部分。
一对一的ipc方法有一大群协作进程会导致密集网格。但是在 Dbus 的情况下,每个进程都可以连接到任意数量的具有授权访问权限的进程。在公共的单一共享频道上,用户可以连接到他自己的会话或新会话,而不会干扰其他用户的会话。这大大提高了性能
参考link
https://blogs.gnome.org/abustany/2010/05/20/ipc-performance-the-return-of-the-report/
这显示了 DBus 性能与自定义 IPC 系统的比较。您可以更好地了解 Dbus
的性能