攀升·Uranus


Something Different,Something New
数据加载中……

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一定要把接口告诉其它应用。


      理解有限,先说到这。

 

posted on 2008-12-20 12:23 攀升 阅读(17142) 评论(7)  编辑 收藏 引用 所属分类: Linux

评论

# re: DBus 介绍  回复  更多评论   

搜Dbus居然跑你这儿来了
2009-02-06 10:36 | kryptonum

# re: DBus 介绍  回复  更多评论   

@kryptonum
是这样的,Moblin项目用到了吧
2009-02-08 23:38 | 攀升

# re: DBus 介绍  回复  更多评论   

是的,现在开源的项目基本都用他
2009-02-09 16:14 | kryptonum

# re: DBus 介绍[未登录]  回复  更多评论   

搜DBUS来着,一看怎么是Uranus的blog。在google搜索结果里面排名还蛮高的,Uranus是越来越厉害了嘛。
2009-05-13 11:42 | Tim

# re: DBus 介绍  回复  更多评论   

@Tim
别这么说,努力努力!
2009-08-06 11:08 | 攀升

# re: DBus 介绍  回复  更多评论   

这贴牛,我也搜DBUS 来着
2009-10-20 17:14 | stevenliyong

# re: DBus 介绍  回复  更多评论   

It's understandable that cash makes us disembarrass. But how to act if one has no cash? The one way is to get the <a href="http://lowest-rate-loans.com/topics/credit-loans">credit loans</a> and sba loan.
2010-06-18 17:20 | EarleneBerg

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理