打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DBus 介绍

DBus 介绍

      dbus是freedesktop下开源的Linux IPC通信机制,本身Linux 的IPC通信机制包括,管道(fifo),共享内存,信号量,消息队列,Socket等。 像现在流行的moblin平台就使用了DBUS通信,还有我最近看的bluez 4 也是通过DBUS来交互的。
 
      它是个3层架构的进程间通信系统,包括:   

            1.   函数库libdbus,用于两个应用程序呼叫联系和交互消息。

            2.   Message bus daemon,总线守护进程可同时与多个应用程序相连,并能把来自一个应用程序的消息路由到0或者多个其他程序。

            3.   一系列基于特定应用程序框架的Wrapper库。 比如libdbus-glib, libdbus-python.

      参看图1-1,  Bus Daemon Process就是运行在linux的daemon(dbus-daemon, 用户可以在/etc/init.d/dbus 操作,stop, start等等),  dbus-daemon运行时会调用libdus的库。 在Application Process1里面就是应用层的东西了,应用程序调用特定的应用程序框架的Wrapper库与dbus-daemon进行通信。

      我前段时间就是用Python写程序与dbus-daemon通信,所以就需要libdbus-python,后来又用c写程序,又装了libdus-glib。实质上在dbus主页上(http://www.freedesktop.org/wiki/Software/dbus)提供了很多Wrapper库, for QT4, JAVA, Perl, C++, Pascal, QT3, .NET, Ruby等等。这个Wrapper库呢其实就是对dbus下层调用做了封装,给上层暴露一个友好的接口。dbus的底层其实也是通过socket通信的

                                                                         图 1-1    
      我再给一张bluez的例子让大家更理解dbus; 有四个应用想与bluz的damon通信,bluez注册到dbus中,其它的应用只需要向dbus要bluez的数据,
dbus负责再和bluez沟通了,但是bluez一定要把接口告诉其它应用。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
D-Bus学习(一):总体介绍
BT porting 總整理
linux下dbus的理解学习
手动编译移植库/软件的一般方法
framework目录编译进nexus手机的文件功能描述
glib-dbus 在ubuntu9.10 和 ubuntu10.04 上安装环境的搭建
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服