Dbus简介

 

Linux下基本的通信方式有如下8种:

1. 管道pipe: 进程需要共同祖先

2. 命名管道named pipe, 也就是fifo:  文件系统中有对应文件名

3. mapped memory:把一个共享的文件映射到自己的进程地址空间

4. 消息队列:信息量大,格式灵活

5. 共享内存:速度最快

6. 信号量:同步手段

7. socket:最灵活

8. signal:比较复杂,携带的信息量少

 

IPC/网络通信系统:(不限于Linux)

1. CORBA

2. DCOM

3. 数据通信设备DCE

4. SOAP

5. XML-RPC

6. Binder (Android中用的IPC机制)

.....

n. DBus

DBus 以GPL许可证发行。

DBus 底层是基于Socket的, Unix域的socket,  为了提高通信速度, 去掉了socket的循环等待机制。

 

三层框架: 接口层(提供函数接口库), 总线层(提供守护程序)和封装层(不同平台封装)。

在很多平台上都做了封装: 比如QT上有dbus-qt, 在glib上有dbus-glib。

DBus的三要素:

对象:对象是封装后的匹配器与回调函数,它以对等协议使每个消息都有一个源地址和一个目的地址。这些地址又称为对象路径,或者称之为总线名称。对象的接口是回调函数,类似C++的虚拟函数实现。当一个进程注册到某个总线时,都要创建相应的消息对象。

消息:D-Bus的消息包括:signals,method calls,method returns, errors。

服务:进程注册的抽象。进程注册某个地址后,即可获得对应总线的服务。

 

DBus具体实现和调试的文章, 网上介绍很多,这里就不详述了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值