首页 > 其他分享 >dbus --- 简介

dbus --- 简介

时间:2024-07-16 10:30:42浏览次数:8  
标签:注册 对象 简介 dbus 应用程序 --- 信号 Bus

官方资料:https://www.freedesktop.org/wiki/Software/dbus/

D-Bus 是一个消息通信系统,是 Linux 上的一种进程间通信方式,内部使用 socket 技术实现。dbus-daemonD-Bus的守护进程,负责管理消息的路由和应用程序的注册。

 

D-Bus有两种类型的消息总线,分别是系统总线和会话总线,

  • system bus: 系统总线。顾名思义,系统级服务。和常规服务分来是为了避免消息拥塞造成延迟或卡顿。
  • session bus: 会话总线。常规服务使用。

 

应用程序可以在总线上注册 D-Bus 服务,一个服务可以包含多个对象,一个对象可以包含多个接口,一个接口可以包含多个方法、属性、信号(都是API)

为了使服务的方法可以被其他应用程序所调用,对象必须在D-Bus守护进程中进行注册。这种在D-Bus中注册对象的行为称为exporting。

每个对象都有一个路径格式的唯一标识符。例如,代表蓝牙设备的对象是/org/bluez/hci0/dev_4c_4c_d7_64_cd_22_0a的路径标识符。 对象使用其路径注册到D-Bus守护进程,使D-Bus守护程序可以路由到对象。

对象的接口可以发出(Signal)信号, 信号可以认为是一个事件。 应用程序可以订阅自己感兴趣的信号, 一个信号可以被一个或多个应用程序订阅。信号触发后,会被传送到每一个订阅该信号的应用程序中。

每个服务都有一个名称,比如以冒号开头的:1.16。但是可以注册一个名称代替冒号开头的形式。比如蓝牙守护进程就是一个D-Bus服务,它拥有一个众所周知的名称(well-known bus name):org.bluez。

标签:注册,对象,简介,dbus,应用程序,---,信号,Bus
From: https://www.cnblogs.com/god-of-death/p/18304669

相关文章

  • Python安装出现严重错误的解决方法_0x80070643-( A newer version of the Python laun
    每次在装软件配置环境的时候,总会遇到别人碰不到的各种问题,人都麻了。最后我还是自己尝试这解决了,只是建议,虽然说不知道是否以后还会问题,但是可以成功安装,配置环境并运行。(本人是win11)首先解释一下pythonlauncher是什么资料解释:PythonLauncher是Python官方提供的一个工具,......
  • bluez --- 提供的工具
    dbus-send功能调用指定程序的方法向指定程序发送信号dbus-send的基本语法dbus-send--system|--session--dest=destination--type=method_call--print-reply/path/to/objectinterface.method[arg1arg2...]--system 或 --session:指定使用系统总线还是会话总线......
  • Swift开发基础06-闭包
    Swift的闭包(Closures)是一种将功能块和上下文整合并演示在代码中的一种手段。闭包可以捕获并存储其上下文中的变量和常量。与普遍存在于其他语言的匿名函数(如Python的lambda、JavaScript的函数表达式)类似,Swift的闭包提供了强大的功能,并在很多场景中替代了函数。闭包有三种主要形式......
  • 数据结构和算法--2.算法复杂度
    算法复杂度算法分析➢同一算法用不同语言实现,用不同编译器,或是在不同计算机上运行,效率均不同➢使用绝对时间衡量算法效率不合适➢基本操作重复执行的次数作为算法的时间度量判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而更应该关注主项(最高阶项)的阶数算法......
  • Swift开发基础07-内存布局
    了解Swift的内存布局和底层原理对于编写高性能和内存高效的应用非常重要。接下来,我将更详细地介绍Swift的内存管理机制和一些底层实现细节,包括内存布局、ARC(自动引用计数)、引用类型和值类型的区别,及其在底层的实现。内存布局(MemoryLayout)栈(Stack)栈内存用于存储函数调用帧(Call......
  • 核客任务实战-WEB服务器攻防篇教程
    前言网站服务器的核客攻防一直是网络安全中最重要的一部分,本书作者在经过数月的努力之后,终于将网站服务器的攻防以深入浅出、简单易懂的方式呈现在您的眼前,让您不必具有高深的网络知识和经验,只要依照本书的操作说明来按图索骥的进行,就能让您充分了解与感受到高手的技巧和行为一......
  • 最新版康泰克完整版- Kontakt v7.10.5 for Win和Mac,支持m芯片和intel,有入库工具
    一。世界最受欢迎的采样器的新篇章    NativeInstrumentsKontakt是采样器领域的标准,您将获得高质量的滤波器,在这里您将找到经典的模拟电路和最现代的滤波器。每一个都可以根据您的口味进行定制,并且由于它,您可以获得前所未有的声音。这是一个解锁版本,这意味着您可以......
  • Excel 学习手册 - 精进版(包括各类复杂函数及其嵌套使用)
    作为程序员从未想过要去精进一下Excel办公软件的使用方法,以前用到某功能都是直接百度,最近这两天跟着哔哩哔哩上的戴戴戴师兄把Excel由里到外学了一遍,收获良多。程序员要想掌握这些内容可以说是手拿把掐,对后续Excel的运用也会有非常好的效果,在处理数据时,比起现写一些一次......
  • 一起学Hugging Face Transformers(18) - 使用Transformers 库实现命名实体识别(NER)
    文章目录前言1.环境配置2.加载模型和分词器3.创建命名实体识别管道4.输入文本进行识别5.完整代码示例6.结果解释总结前言命名实体识别(NER)是自然语言处理(NLP)中的一种任务,旨在识别文本中具有特定意义的实体,例如人名、地名、组织名等。NER在信息抽取、文本分析......
  • E9-根据主表选择框值判断改变主表、明细表字段的属性
    一、流程表单开发过程中,标准的属性联动功能无法满足特定情况下的字段属性联动功能时,使用了以下JavaScript代码进行控制。二、代码实现了根据表单字段的值动态显示或隐藏特定字段,同时修改字段的属性。这在需要根据用户输入动态调整表单显示三、代码如下(供参考)//将字段名称转......