dbus和socket_dbus和socket差异

dbus和socket_dbus和socket差异DBus简介DBus是一种IPC机制,由freedesktop.org项目提供,使用GPL许可证发行,用于进程间通信或进程与内核的通信。注:Linux中的IPC通信机制还包括,管道(fifo),共享内存,信号量,消息队列,Socket等。DBus进程间通信主要有三层架构:1.底层接口

DBus简介
  DBus是一种IPC机制,由freedesktop.org项目提供,使用GPL许可证发行,用于进程间通信或进程与内核的通信。

  注:Linux中的IPC通信机制还包括,管道(fifo),共享内存,信号量,消息队列,Socket等。

  DBus进程间通信主要有三层架构:

  1.底层接口层:主要是通过libdbus这个函数库,给予系统使用DBus的能力。 

  2.总线层:主要Message bus daemon这个总线守护进程提供的,在Linux系统启动时运行,负责进程间的消息路由和传递,其中包括Linux内核和Linux桌面环境的消息传递。总线守护进程可同时与多个应用程序相连,并能把来自一个应用程序的消息路由到0或者多个其他程序。 

  3.应用封装层:通过一系列基于特定应用程序框架将DBus的底层接口封装成友好的Wrapper库,供不同开发人员使用(DBus官方主页http://www.freedesktop.org/wiki/Software/dbus,提供了大部分编程语言的DBus库版本)。比如libdbus-glib, libdbus-python.

   

  dbus和socket_dbus和socket差异

  如上图所示,Bus Daemon Process是运行在linux系统中的一个后台守护进程,dbus-daemon运行时会调用libdus的库。Application Process1代表的就是应用程序进程,通过调用特定的应用程序框架的Wrapper库与dbus-daemon进行通信。

  从上图也可以看出来Application和Daemon中其实还是通过socket进行通行。

  DBus的三大优点:低延迟,低开销,高可用性。

  *低延迟:DBus一开始就是用来设计成避免来回传递和允许异步操作的。因此虽然在Application和Daemon之间是通过socket实现的,但是又去掉了socket的循环等待,保证了操作的实时高效。

  *低开销:DBus使用一个二进制的协议,不需要转化成像XML这样的文本格式。因为DBus是主要用来机器内部的IPC,而不是为了网络上的IPC机制而准备的.所以它才能够在本机内部达到最优效果。

  *高可用性:DBus是基于消息机制而不是字节流机制。它能自动管理一大堆困难的IPC问题。同样的,DBus库被设计来让程序员能够使用他们已经写好的代码。而不会让他们放弃已经写好的代码,被迫通过学习新的IPC机制来根据新的IPC特性重写这些代码。

激活谷谷主为您准备了激活教程,为节约您的时间请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/94415.html

(0)
上一篇 2024年 5月 26日 下午3:36
下一篇 2024年 5月 26日 下午4:02

相关推荐

  • c语言函数已有主体怎么解决_c语言中函数已有主体

    c语言函数已有主体怎么解决_c语言中函数已有主体C语言提示函数已有主体怎么解决如果C语言中的函数已经有主体,意味着该函数已经被定义了。如果你想对该函数进行修改或添加新的功能,可以在函数主体中进行相应的修改或添加代码。如果你只想使用该函数,可以直接在其他地方调用该函数。如果你不确定如

    激活谷笔记 2024年 5月 29日
  • xcode90047

    xcode90047Xcode for Mac是Mac平台上用于OS X的集成开发环境的开发工具,Xcode Mac版为用户提供了全面的用户界面设计、编码、测试和调试的工作流程,Xcode Mac版还包含了Xcode IDE,Swift和Objective-C编译器,开发人员开发应用程序更加高效便捷,但是要注意,

    激活谷笔记 2024年 5月 18日
  • win10系统软键盘在哪里_win10软键盘在哪里

    win10系统软键盘在哪里_win10软键盘在哪里Win10如何调出软键盘?在日常办公中遇到需要输入一些特殊符号时,我们通常会使用软键盘输入,不过很多人不知道怎么调出自己电脑的软键盘,以win10为例,下面小编就教大家如何调出电脑的软键盘,一起来看看吧!方法一:1.在键盘上按下【win】键,进入开始界面,点击【设置】2.在设置界面中选择【轻松

    2024年 5月 15日
  • 汇编语言的指令有哪些

    汇编语言的指令有哪些2.8 常用的汇编指令本节必须掌握的知识点: 汇编指令 多动手实验,知道每个指令的功能在此节之前汇编课程主要讲了两个问题,第一个问题是数据可以存哪?内存和寄存器。第二个问题是这些数据是如何存放的?我们介绍了两种模式:一个是小端存储,一个是大端存储。如果要处理数据,我们就要

    激活谷笔记 2024年 5月 17日
  • cpuz测试基准_cpuz测试基准选哪个

    cpuz测试基准_cpuz测试基准选哪个cpuz怎么测试cpu性能的方法介绍想要对自己的电脑cpu处理器有个性能的初步判断,但是自己不知道怎么测试cpu性能怎么办?我们可以借助好用的cpuz检测软件实现,那么具体cpuz怎么测试cpu性能?以下是详细的cpuz测试cpu性能的方法。工具/原料:系统版本:windows10

    2024年 5月 21日
  • 8086控制标志位_8086控制标志位有几个

    8086控制标志位_8086控制标志位有几个0)li1_content = ” + $(h1_list[i]).text() + ” + li2_content + ”;elseli1_content = ” + $(h1_list[i]).text() + ”;content += li1_content;}content +=

    2024年 5月 31日
  • arm linux内核移植_arm移植linux系统

    arm linux内核移植_arm移植linux系统Linux操作系统在ARM平台上的移植及ARM开发移植Linux操作系统到ARM平台是一项常见的任务,它可以让我们在ARM架构的设备上运行Linux。本文将介绍如何进行Linux操作系统的移植,并提供一些相关的源代码示例。了解

    激活谷笔记 2024年 6月 2日
  • 哈夫曼树是带权路径长度最短的树路径上权值较大的结点_哈夫曼树的带权路径长度怎么求

    哈夫曼树是带权路径长度最短的树路径上权值较大的结点_哈夫曼树的带权路径长度怎么求哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根结点也较远。()此题为判断题(对,错)。更多“哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根结点也较远。()”相关的问题第1题哈夫曼树是带权路径长度最短的树,路径上权值较小

    2024年 5月 24日
  • html心得体会200字_html心得体会1000字

    html心得体会200字_html心得体会1000字html网页心得体会html网页设计的心得体会推荐度:html网页心得体会推荐度:html网页设计心得体会推荐度:相关推荐html网页心得体会范文(精选22篇)我们有一些启发后,写一篇心得体会,记录下来,通过写心得体会,可以帮助我们总结积累经验。

    2024年 5月 23日
  • html5滚动条被隐藏_html 隐藏滚动条

    html5滚动条被隐藏_html 隐藏滚动条移动端常见的兼容性问题汇总,你遇到过几个?相信前端程序员们在工作中都会遇到各种兼容性问题,今天把我遇到的这些兼容性问题做个汇总。看看你遇到过吗?1.html5调用安卓或者ios的拨号功能html5提供了自动调用拨号的标签,只要在a标签的href中添加tel:就可以了。如下

    激活谷笔记 2024年 5月 25日
  • new 与malloc_new与malloc的区别

    new 与malloc_new与malloc的区别malloc和new的区别0、属性new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。1. 参数使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。2

    激活谷笔记 2024年 5月 30日
  • vscode和vs studio_vscode是否免费

    vscode和vs studio_vscode是否免费我是否需要学习Vim?不学vim也一样能编程,一样能成为架构师。但是学了vim,你会慢慢的更多的去思考如何更高效?比如有没有别的好的高效插件?这个好用啊点赞?那自己写点插件满足自己的需求?写不出来?那去看看githu

    激活谷笔记 2024年 5月 16日
关注微信