D-bus 学习教程

有很多IPC(interprocess communication ) ,用于不同的解决方案:CORBA 是用于面向对象编程中复杂的 IPC 的一个强大的解决方案。DCOP 是一个较轻量级的 IPC 框架,功能较少,但是可以很好地集成到 K 桌面环境中。SOAP 和 XML-RPC 设计用于 Web 服务,因而使用 HTTP 作为其传输协议。D-BUS 设计用于桌面应用程序和 OS 通信。D-Bus(其中D原先是代表桌面“Desktop” 的意思),即:用于桌面操作系统的通信总线。现在逐渐被引入到嵌入式系统中,不过名字还是保留原先的叫法而已。 D-Bus 学习教程 D-Bus 是一种轻量级的进程间通信(IPC)框架,最初设计用于桌面操作系统的通信,特别是Linux环境。它允许应用程序之间进行实时的、同步的消息传递,促进了桌面环境中的组件和服务之间的协作。随着技术的发展,D-Bus 也被广泛应用于嵌入式系统,尽管其名称仍然保留了“Desktop”的首字母。 D-Bus 的重要性在于它的简洁性和高效性,相比CORBA这样的复杂解决方案,或者DCOP和Bonobo这样的特定桌面环境的框架,D-Bus 提供了一种通用且依赖性较小的通信机制。DCOP是KDE桌面环境下的解决方案,而Bonobo是GNOME的解决方案,两者都受限于各自的技术栈。D-Bus旨在替代这些方案,提供一个跨桌面环境的统一接口,让应用程序无需考虑底层实现的复杂性。 D-Bus 由三层架构组成: 1. **函数库** - `libdbus`,这是D-Bus的核心,提供低级别的API,允许应用程序直接与其他进程通信,发送和接收消息。 2. **消息总线守护进程** - 这是一个独立运行的服务,负责管理连接到总线的多个应用程序,转发消息,并确保安全性和可靠性。守护进程有两种类型:系统总线(system bus)和会话总线(session bus)。 - **系统总线** 在系统启动时自动运行,主要用于系统级别的服务和后台进程间的通信,如通知设备插入、网络状态变化等。系统总线对外部进程访问有一定的控制,确保安全。 - **会话总线** 随着用户登录启动,每个用户会话有一个独立的会话总线,供该会话内的应用进行通信,实现更灵活的集成和进程生命周期管理。在GNOME和KDE等桌面环境中,会话总线被广泛用于应用程序的集成和协作。 3. **封装库或绑定** - 如`libdbus-glib`和`libdbus-qt`,以及其他语言(如Python)的绑定库,为开发者提供了更高级别的API,简化了使用D-Bus进行编程的过程。 通过D-Bus,应用程序可以执行以下操作: - **方法调用** - 一个进程可以调用另一个进程的方法,就像调用本地对象一样。 - **信号发送** - 应用程序可以发送信号来通知其他进程某些事件的发生。 - **监听信号** - 应用程序可以订阅并响应其他进程发出的信号。 在移动操作系统,如Maemo和Moblin,甚至Android(虽然可能不是直接使用D-Bus),D-Bus同样扮演了关键角色,实现了组件之间的高效通信。学习D-Bus的资源丰富,包括FreeDesktop.org的官方文档,以及各种中文博客和文章,为开发者提供了丰富的学习材料。 D-Bus 是一种强大的工具,促进了不同应用程序和服务之间的协同工作,无论是在桌面还是嵌入式系统中,它都为开发者提供了简单、高效的进程间通信机制。理解和掌握D-Bus,对于开发跨平台、高度集成的应用程序具有重要意义。




























剩余35页未读,继续阅读

- zhouyannanzyn2015-07-29很好,但是还有对里面的机制不是很理解。
- william_li802016-09-28非常好的教程!感谢楼主上传。
- sunmoonson2015-04-29很全的DBUS进程间通讯API说明文档,作为学习参考用再好不过了。

- 粉丝: 14
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- vcos_tests-智能车资源
- 基于深度学习的工业级实时人脸检测与识别纯 OpenCV C++ 实现
- 深度学习与 PyTorch 相关的代码及 PPT 内容
- 基于深度学习的纽约出租车流量预测研究大作业
- CASS11.0.0.8
- 果蝇优化算法在机器学习与深度学习调参中的应用
- lest_Install.zip
- 从零搭建的生成式聊天机器人
- 运用深度学习破解页面字体混淆难题
- PYTHON的进阶代码
- 中国科学技术大学 2022 年春季《深度学习导论》课程资料
- word文件批量清除作者等信息后,转pdf
- 深度学习可解释性相关论文汇总整理
- videoplayback-1.mp4
- 覆盖全流程的深度学习训练与实验工具
- 【人工智能语言模型】ChatGPT-5核心技术升级与应用场景拓展:从智能对话到全栈智能助理的变革


