DBus

D-Bus helps coordinate process lifecycle. It makes it simple and reliable to
code a “single instance” (?) application or deamon, and to launch applications
and deamons on demand when their services are needed.

D-Bus is designed for two specific use cases:

l  A “system bus” for notifications from the system to user sessions,
and to allow the system to request input from user sessions

l  A “session bus” used to implement desktop environments such as GNOME
and KDE

Converting a value from some other representation into the wire
format is called marshaling and converting it back from the
wire format is unmarshaling.

a block of marshaled values must have a known type
signature.

a single complete type is a sequence of type codes that fully
describes one type: a single complete type is a basic type code, a variant type
code, an array with its element type, or a struct with its fields.

  • basic types: struct is entirely defined by their 1-character type code.

时间: 2024-09-29 05:47:49

DBus的相关文章

QT D-Bus 复杂参数传递

网上一搜,关于D-Bus和QT的资料不少,但是绝大多数都对传递自定义数据类型这个问题闭口不谈.看来这个有必要写个文章记录一下. 首先要说的是,我这里不再介绍D-Bus和QDbus的基础知识,本文直击要点.另外本文参考了KDE的一些文档. 需求:使用标准的信号和槽,通过QDBus传递自定义的struct或者class数据类型. 首先,需要定义需要通过D-Bus传递的自定义数据类型,我们这里定义一个Message类型: #include <QtDBus>   class Message { pub

dbus 创建Client过程中几个有用的函数

/**  * g_type_init:  *  * This function used to initialise the type system.  Since GLib 2.36,  * the type system is initialised automatically and this function does  * nothing.  *  * Deprecated: 2.36: the type system is now initialised automatically

How to Compile Java DBus

1 download or git clone Java DBus git clone git://anongit.freedesktop.org/dbus/dbus-java dbus-java 2 download libmatthew-java-0.8.tar.gz  or get from my cloud share cd dbus-java wget http://www.matthew.ath.cx/projects/java/libmatthew-java-0.8.tar.gz

DBus学习

1. 介绍 DBus是一种桌面环境的进程间通讯(IPC)机制,有低时延.低消耗等优点 基于socket(有待考证),提供了一对一的对等通讯 使用dbus-daemon作为后台进程时,可实现多对多通讯 由如下三个层次 - libdbus: 接口库,提供点对点通信和数据交换的能力  - 守护进程: 即dbus daemon进程,提供多对多的通信机制,进程与daemon建立dbus连接,由daemon进行消息的分发 - 封装库: 特定框架下的封装,如dbus-glib/GDBus, QtDBus Ti

D-Bus,kdbus和Binder

http://blog.sina.com.cn/s/blog_4af327e10101irie.html 材料来自:The unveiling of kdbus 和 Kdbus Details .后一篇文章里很多链接的内容也很有价值. D-Bus的优缺点 Linux没有一个很好的IPC机制.Windows.Mac OS有:Android也有"binder"子系统.Linux有socket.FIFO.共享内存等机制,这些对于应用层来说不是很好.Kdbus试图为Linux创建一个和其它系统

Dbus send

dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.UDisks /org/freedesktop/UDisks org.freedesktop.UDisks.EnumerateDevices dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.UDisks /org/freedesktop/UDisk

opensuse 安装 Anaconda3 之后出现Could not start d-bus. Can you call qdbus?

最近在安装了opensue Leap42.1之后,想要学习一下python,就安装了Anaconda3,并且将Anaconda3的安装路径添加到了PATH里,但是在重新启动系统后,出现了"Could not start d-bus. Can you call qdbus? "的提示框,并且无法进入系统.这主要就是因为将Anaconda3的安装路径添加到了PATH里导致的错误.尝试了一些办法后,无奈只能重新安装了系统(注意,这里在重新安装系统时,登录的用户名要与重装之前不一样才可以,否则

dbus 和 policykit 实例篇(python) ()转

使用policykit 的程序一般都有一个dbus daemon程序来完成相关操作,这个dbus daemon 会在系统注册一个system bus 服务名,用于响应要求root privileged的操作,当dbus请求到达时会先验证请求程序是否有相应的权限来调用这个操作(方法),而这是在.conf文件中定义的(后面说明). 首先定义个System Dbus daemon,写一个.service文件来启动我们的daemon org.example.foo.service 文件放置目录:/usr

DBus学习笔记

摘要:DBus作为一个轻量级的IPC被越来越多的平台接受,在MeeGo中DBus也是主要的进程间通信方式,这个笔记将从基本概念开始记录笔者学习DBus的过程 [1] DBus学习笔记一:DBus学习的一些参考资料[2] DBus学习笔记二:什么是DBus?[3] DBus学习笔记三:DBus的一些基本概念 一些基本概念的解释和翻译:http://blog.mcuol.com/User/AT91RM9200/Article/12816_1.htmhttp://www.cnblogs.com/wzh

rhythmbox插件开发笔记2:背景知识学习 D-Bus&amp;VFS&amp;Gio&amp; Python GTK+ 3

这次主要简单介绍下相关的背景知识 D-Bus&VFS&Gio& Python GTK+ 3  D-Bus D-Bus是开源的进程通信(IPC)系统,它允许多个进程进行实时通信.D-Bus提供以下功能: 完成在同一个桌面会话下的多个桌面应用程序间的通信,将整个桌面会话联合成一个整体,并为进程分配生存期 完成桌面会话和操作系统的通信,其中的操作系统包括内核,守护进程和进程 http://en.wikipedia.org/wiki/D-bus 下面一张图解释了linux下图形编程的一切: