D-Bus允许程序进行通信。这种IPC是如何实现的?使用Unix域套接字、共享内存+信号量、命名管道,还是其他什么方法?也许是多种方法的组合?
我认为它通常使用UNIX套接字。在Linux下,它可能会使用“抽象命名空间”Unix套接字,它们与常规UNIX套接字相同,只是它们在文件系统中不存在可见的文件。
曾经有一些尝试直接从内核使用netlink套接字,与此相关的内容可以参考这里。最近(在上次LPC期间宣布),有些人正在努力摆脱D-Bus用户空间守护程序并将D-Bus放入内核中,它可能也会使用套接字,但是可能会重新启用netlink或其他方法。