FreeOZ论坛

标题: D-BUS? [打印本页]

作者: GPS    时间: 19-2-2010 21:59
标题: D-BUS?
高手出来讲讲D-BUS吧。具体的机制是怎么样的。可以用在不同机器吗?
作者: 薛定谔猫    时间: 20-2-2010 00:55
D-BUS的D是Desktop的意思,是定位在桌面级的轻量级进程间通讯机制,默认实现是使用domain socket不可以跨机器通讯。

http://en.wikipedia.org/wiki/D-Bus
http://dbus.freedesktop.org
作者: GPS    时间: 20-2-2010 21:55
原帖由 薛定谔猫 于 20-2-2010 00:55 发表
D-BUS的D是Desktop的意思,是定位在桌面级的轻量级进程间通讯机制,默认实现是使用domain socket不可以跨机器通讯。

http://en.wikipedia.org/wiki/D-Bus
http://dbus.freedesktop.org

桌面级的轻量级进程是指什么呢? 是指内核进程吗? DBUS可以用在一般的用户进程吗? 能不能多讲一点呀。
作者: 薛定谔猫    时间: 20-2-2010 23:29
原帖由 GPS 于 20-2-2010 21:55 发表

桌面级的轻量级进程是指什么呢? 是指内核进程吗? DBUS可以用在一般的用户进程吗? 能不能多讲一点呀。

桌面级是说D-BUS出现的最初目的,是为了替换KDE的DCOP协议,目的是为了KDE桌面应用之间的交互,和Windows比起来就是要达到那个OLE,DDE,ActiveX, COM之类的效果。

轻量级是说实现,这个D-BUS有一个后台daemon进程,用来转发D-BUS的消息,在这个d-bus daemon上可以创建各种channel,object path,然后其他进程就可以连接上来,或者作为客户端,读取、调用这些d-bus消息,或者作为服务端,实现和处理这些消息。而且,D-BUS还有和QT类似的signal-slots机制。

D-BUS目前既可以作为user space的IPC,也可以作为kernel-user space交互的IPC (system channel)。
D-BUS基本架构

                               
登录/注册后可看大图


[ 本帖最后由 薛定谔猫 于 20-2-2010 23:31 编辑 ]
作者: GPS    时间: 21-2-2010 22:07
多谢楼上,今天没分了,明天补上。
这个图太清楚了。
有个问题,既然可以类似QT的signal-slot,那么可以用1-n或者n-n的方式吗?
作者: 薛定谔猫    时间: 21-2-2010 22:37
标题: 回复 #5 GPS 的帖子
absolutely yes, 这就是这个设计的目的之一




欢迎光临 FreeOZ论坛 (https://www.freeoz.org/ibbs/) Powered by Discuz! X3.2