D-Bus 允许程序进行通信。这个IPC是如何实现的?Unix域套接字,共享内存+信号量,命名管道,还有什么?也许是一个组合?
4 回答
我认为它通常使用 UNIX 套接字。在 Linux 下,它可以使用“抽象命名空间”Unix 套接字,它们是相同的,只是它们在文件系统中不作为可见文件物理存在。
这与DBus query问题非常相似。谷歌搜索的答案是套接字——用于 TCP/IP 或 Unix 域。
显然,IPC 或 TCP/IP:
http
://www.freedesktop.org/wiki/Software/dbus
更新:
我的意思是,不同操作系统上的多种 IPC 方法,加上 TCP/IP。
http://dbus.freedesktop.org/doc/dbus-daemon.1.html显示 unix 参考版同时使用 unix 域套接字和 tcp/ip。
There has been in the past some attempt to use netlink sockets directly from the kernel. More recently (announced during last LPC), some people are working at getting rid of D-Bus user-space daemon and putting D-Bus in the kernel, it will probably also use sockets, but maybe revive the netlink or other approaches.