免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 797 | 回复: 0
打印 上一主题 下一主题

D-BUS 觀念小談 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-14 18:40 |只看该作者 |倒序浏览

                        
                                                      
                              
近期以來,因為工作上的需求,花費許多時間在開放原碼的架構設計上;最近已經將相關的作業都準備的差不多了,我想,可以跟大家分享一些架構設計的小觀念。
首先,先由 [
D-BUS
] 介紹起。使用 D-Bus 來取代傳統的 IPC,並與外部工具(eg. mjpegtools)做整合。
D-BUS 本身屬於 low-level 的 library(libdbus),實務上,我採用了 glib binding 來實作程式,以簡化工作:
http://dbus.freedesktop.org/doc/dbus-glib/index.html
D-BUS 是一種 'message bus',未來將取代傳統 IPC 的使用。傳統 IPC 實作,必須將程式架構成
monolithic process,因此在 process 的行為控制,以及 application
間的整合上,都很一定的難度,非常不易於實作「系統」。
引進 D-BUS 技術後,傳統的 monolithic process 被區分為「pieces of D-BUS
services」,每個服務,都可以透過「D-BUS patch」來尋找並叫用(invoke);透過 D-BUS
所建立的框架(framework)或是架構,解決了以往難以整合各種應用程式的困境。此外,D-BUS 目前也透過 kobject 與
kernel 做整合,如此一來,D-BUS 便能輕易整合 kernel、application 與
desktop,真正解決以往「系統整合」所遇到的障礙。
例如,如何實作「按鍵觸發應用程式」的系統?
傳統的做法,會讓程式設計師進入「不斷使用 low-level C API 來 try-and-error」的可怕輪迴,但是使用
D-BUS 的架構後,我們只要修改 device driver,將按鍵的動作透過 kobject event layer 傳送(經由
netlink socket)給 D-BUS 即可,D-BUS 會根據我們所定義的路徑,來叫用 application。
D-BUS 所提供的 message bus 分為二種:
    * system bus
    * local bus
System bus 最大的用途便是整合 kernel 與 application;local bus 為 session bus,即訊息的傳遞只限於該 session。
來源:
www.jollen.org
                           
                           
                                       
                           
                           
--jollen
                        
                     
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/66539/showart_688275.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP