IPC机制学习---D-BUS

本文详细介绍了D-BUS的基本概念、核心功能及其在Linux系统中实现跨进程通信、事件传播和组件间集成的机制。通过D-BUS,应用程序能够高效地共享数据、发送事件信号和请求远程服务,从而改善系统内各部分的整合性和响应能力。

以下内容大部分是笔记。以后如果有机会接触D-BUS,这篇文章需要改写和完善。目前仅作一个整理吧,算是个自己一个提醒。

Basics

a full-featured IPC and object system

First, D-BUS can perform basic application IPC, allowing one process to shuttle data to another—think UNIX domain sockets on steroids. Second, D-BUS can facilitate sending events, or signals, through the system, allowing different components in the system to communicate and ultimately to integrate better. Finally, D-BUS implements a remote object system, letting one application request services and invoke methods from a different object—think CORBA without the complications.

First, the basic unit of IPC in D-BUS is a message, not a byte stream.

Second, D-BUS is bus-based. D-BUS, however, provides a dæmon, known as the message bus dæmon, that routes messages between processes on a specific bus.

A final unique feature is the creation of not one but two of these buses, the system bus and the session bus.

 

D-BUS supports multiple message types, such as signals, method calls, method returns and error messages.

 

Why D-BUS?

These concepts make nice talk, but what is the benefit? First, the system-wide message bus is a new concept. A single bus shared by the entire system allows for propagation of events, from the kernel (see The Kernel Event Layer sidebar) to the uppermost applications on the system. Linux, with its well-defined interfaces and clear separation of layers, is not very integrated. D-BUS' system message bus improves integration without compromising fine engineering practices. Now, events such as disk full and printer queue empty or even battery power low can bubble up the system stack, available for whatever application cares, allowing the system to respond and react. The events are sent asynchronously, and without polling.

(之前,上层app如何监听底层硬件的改变呢?poll一个文件,这个文件由底层kernel或者module来写入东西,于是上层就可以从poll的wait状态返回,得到下层的一个通知。例如Android中的Headset Observer。现在竟然可以直接通信!我了个擦!不过还是要看应用场合吧。马达马达哟~~)

The Kernel Event Layer

The Kernel Event Layer is a kernel-to-user communication mechanism that uses a high-speed netlink socket to communicate asynchronously with user space. This mechanism can be tied into D-BUS, allowing the kernel to send D-BUS signals!

sysfs is an object hierarchy exported as a filesystem.

 

   

 

How to use D-BUS?

The preferred use of D-BUS is definitely using language and environment-specific bindings, both for ease of use and improved functionality. 

  

 

References

http://www.linuxjournal.com/article/7744

Linux Device Driver (bus)

http://blog.youkuaiyun.com/nero_cie/article/details/6153804

http://dbus.freedesktop.org/doc/dbus-tutorial.html

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

 

 

 

转载于:https://my.oschina.net/u/158589/blog/59218

(1)普通用户端(全平台) 音乐播放核心体验: 个性化首页:基于 “听歌历史 + 收藏偏好” 展示 “推荐歌单(每日 30 首)、新歌速递、相似曲风推荐”,支持按 “场景(通勤 / 学习 / 运动)” 切换推荐维度。 播放页功能:支持 “无损音质切换、倍速播放(0.5x-2.0x)、定时关闭、歌词逐句滚动”,提供 “沉浸式全屏模式”(隐藏冗余控件,突出歌词与专辑封面)。 多端同步:自动同步 “播放进度、收藏列表、歌单” 至所有登录设备(如手机暂停后,电脑端打开可继续播放)。 音乐发现与管理: 智能搜索:支持 “歌曲名 / 歌手 / 歌词片段” 搜索,提供 “模糊匹配(如输入‘晴天’联想‘周杰伦 - 晴天’)、热门搜索词推荐”,结果按 “热度 / 匹配度” 排序。 歌单管理:创建 “公开 / 私有 / 加密” 歌单,支持 “批量添加歌曲、拖拽排序、一键分享到社交平台”,系统自动生成 “歌单封面(基于歌曲风格配色)”。 音乐分类浏览:按 “曲风(流行 / 摇滚 / 古典)、语言(国语 / 英语 / 日语)、年代(80 后经典 / 2023 新歌)” 分层浏览,每个分类页展示 “TOP50 榜单”。 社交互动功能: 动态广场:查看 “关注的用户 / 音乐人发布的动态(如‘分享新歌感受’)、好友正在听的歌曲”,支持 “点赞 / 评论 / 转发”,可直接点击动态中的歌曲播放。 听歌排行:个人页展示 “本周听歌 TOP10、累计听歌时长”,平台定期生成 “全球 / 好友榜”(如 “好友中你本周听歌时长排名第 3”)。 音乐圈:加入 “特定曲风圈子(如‘古典音乐爱好者’)”,参与 “话题讨论(如‘你心中最经典的钢琴曲’)、线上歌单共创”。 (2)音乐人端(创作者中心) 作品管理: 音乐上传:支持 “无损音频(FLAC/WAV)+ 歌词文件(LRC)+ 专辑封面” 上传,填写 “歌曲信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值