D-Bus

D-Bus概述

D-Bus是一个用于进程间通信的系统组件。由以下几个部分组成:

  • libdbus:一个允许两个应用之间连接和交换消息的库;

  • message bus daemon executable:基于 libdbus 构建,多个应用程序可以连接到这个守护进程上。这个守护进程可以将一个应用的消息路由到零个或多个应用。

  • Wrapper libraries or bindings based on particular application frameworks:例如 libdbus-glib、libdbus-qt、基于Python的绑定库.。封装库简化了D-Bus的编程使用。

libdbus 只支持一对一的连接,就像网络通信中的socket。然而不一样的是,使用D-Bus的连接不是用于发送字节流,而是用于发送消息。消息有两部分组成:消息头、消息体。消息头用于标识消息类型,消息体才是要传递的数据内容。 libdbus对发送和认证过程进行了抽象,用户不需要关心这些内容。

守护进程的作用可以简单的理解为路由器。一个应用先发送消息到守护进程,然后有守护进程转发到合适的应用上。在典型计算机上有多个守护进程实例。系统范围和每个用户的守护进程是分开的。第一个实例是机器全局的,类似于sendmail或Apache的系统守护进程。此实例对其将接受的消息有严格的安全限制,并用于系统范围的通信。每个用户登录会话创建一个其他实例。这些实例允许用户会话中的应用程序彼此通信。

 整体架构

你可能感兴趣的:(linux,网络)