Dbus简介
来源:互联网 发布:看刀路软件 编辑:程序博客网 时间:2024/05/01 20:43
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具体实现和调试的文章, 网上介绍很多,这里就不详述了。
- Dbus简介
- dbus
- DBUS
- dbus
- DBUS
- dbus
- DBUS
- DBUS
- dbus
- Dbus简介与简单的收发示例程序
- dbus 之 dbus-glib
- DBUS移植
- DBUS问题
- DBUS 记录
- dbus 例程
- DBus 介绍
- DBus例子
- DBus截例
- C# API 调用格式和参数类型
- nasm下的int 3
- jquery模糊匹配
- 关于浏览器内核的一些小知识,明明白白选浏览器
- cocos2d - CCSpriteBatchNode的使用
- Dbus简介
- 第五章习题
- fstream默认不支持中文路径和输出整数带逗号的解决办法
- 13.1.2 异步下载网页
- 关于typedef的理解
- 读书笔记10:外观模式
- 测试函数指针传参
- 如何使用XCode 4创建ipa文件及提交应用程序
- Android中Sqlite数据库多线程并发问题