daemon

D-Bus概述

折月煮酒 提交于 2019-12-06 07:29:10
摘要参考自: http://blog.csdn.net/lizzywu/article/details/7651441 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. 如上图所示,Bus Daemon Process是运行在linux系统中的一个后台守护进程,dbus

DBus的简介

荒凉一梦 提交于 2019-12-06 07:27:33
转载: http://www.cnblogs.com/muxue/archive/2012/12/02/2798876.html 前面一篇 讲了DBus的 C 编程接口。现在开始解释一下 DBus 的基本概念,顺序反了,但和我的理解过程是一致的。看到 C 的编程接口之后,至少对于它的理解会有一定的感性认识。 DBus是用来进行进程间通信的。下面这张图展示了一些DBus的大部分东西,但是它太复杂了: DBus 本身是构建在 Socket 机制之上。真正的通信还是由 Socket 来完成的。DBus 则是在这之上,制定了一些通信的协议,并提供了更高一层的接口,以更方便应用程序之间进行数据的交互。 在DBus的体系中,有一个常驻的进程 Daemon,所有进程间的交互都通过它来进行分发和管理。所有希望使用 DBus 进行通信的进程,都必须事先连上 Daemon,并将自己的名字注册到 Daemon 上,之后,Daemon会根据需要把消息以及数据发到相应的进程中。 D-bus里面提到了一些概念,刚开始不太好理解,这些概念也很容易混淆。这些概念的权威解释可以看 这里 。   首先,运行一个dbus-daemon就是创建了一条通信的总线Bus。当一个application连接到这条Bus上面时,就产生了Connection。   每个application里面会有不同的Object

D-Bus学习(一):总体介绍

泄露秘密 提交于 2019-12-06 07:27:05
   D-Bus的方式在移动手机操作系统中非常重要,包括Maemo,Moblin等以Linux为基础的操作系统。 估计Andriod也大量使用 (Android使用Binder IPC)。D-Bus的相关学习资料见: http://www.freedesktop.org/wiki/Software/dbus ,在网上也有大量的学习资料,在 http://blog.chinaunix.net/u3/111961/ 中有不少的中文资料,收集了很多网络资料。我决定认真学习一下,做一下笔记。主要资料来源于上面两个网站,尤其是freedesktop的D-Bus Tutorial,并参考了wiki,以及 http://www.ibm.com/developerworks/cn/linux/l-dbus.html 和 http://blog.csdn.net/cuijpus/archive/2008/01/30/2073962.aspx 。   有很多IPC( interprocess communication ) ,用于不同的解决方案:CORBA 是用于面向对象编程中复杂的 IPC 的一个强大的解决方案。DCOP 是一个较轻量级的 IPC 框架,功能较少,但是可以很好地集成到 K 桌面环境中。SOAP 和 XML-RPC 设计用于 Web 服务,因而使用 HTTP 作为其传输协议。D-BUS

DBus学习笔记

我们两清 提交于 2019-12-06 07:25:44
http://dotnet.cnblogs.com/page/76759/?page=1 作者:Jerry_Chen 来源:www.meegoq.com 时间:2010-10-12 阅读:513 次 原文链接 [收藏] 整页浏览 摘要: DBus作为一个轻量级的IPC被越来越多的平台接受,在MeeGo中DBus也是主要的进程间通信方式,这个笔记将从基本概念开始记录笔者学习DBus的过程 [1] DBus学习笔记一:DBus学习的一些参考资料 [2] DBus学习笔记二:什么是DBus? [3] DBus学习笔记三:DBus的一些基本概念 一些基本概念的解释和翻译: http://blog.mcuol.com/User/AT91RM9200/Article/12816_1.htm http://www.cnblogs.com/wzh206/archive/2010/05/13/1734901.html 一个完整的DBus学习教程(强烈推荐,写得相当的全): http://blog.csdn.net/fmddlmyy/archive/2008/12/23/3585730.aspx 两个DBus的完整示例,相当有参考价值 http://blog.chinaunix.net/u1/58649/showart_462468.html http://hi.baidu.com

和菜鸟一起学linux之DBUS基础学习记录

旧街凉风 提交于 2019-12-06 07:24:49
D-Bus三层架构 D-Bus是一个为应用程序间通信的消息总线系统, 用于进程之间的通信。它是个3层架构的IPC 系统,包括: 1、函数库libdbus ,用于两个应用程序互相联系和交互消息。 2、一个基于libdbus构造的消息总线守护进程,可同时与多个应用程序相连,并能把来自一个应用程序的消息路由到0或者多个其他程序。 3、基于特定应用程序框架的封装库或捆绑(wrapper libraries or bindings )。例如,libdbus-glib和libdbus-qt,还有绑定在其他语言,例如Python的。大多数开发者都是使用这些封装库的API,因为它们简化了D-Bus编程细节。libdbus被有意设计成为更高层次绑定的底层后端(low-levelbackend )。大部分libdbus的 API仅仅是为了用来实现绑定。 总线   在D-Bus中,“bus”是核心的概念,它是一个通道:不同的程序可以通过这个通道做些操作,比如方法调用、发送信号和监听特定的信号。在一台机器上总线守护有多个实例(instance)。这些总线之间都是相互独立的。 一个持久的系统总线(system bus): 它在引导时就会启动。这个总线由操作系统和后台进程使用,安全性非常好,以使得任意的应用程序不能欺骗系统事件。它是桌面会话和操作系统的通信,这里操作系统一般而言包括内核和系统守护进程

linux之DBUS基础学习记录

99封情书 提交于 2019-12-06 07:20:19
D-Bus三层架构 D-Bus是一个为应用程序间通信的消息总线系统, 用于进程之间的通信。它是个3层架构的IPC 系统,包括: 1、函数库libdbus ,用于两个应用程序互相联系和交互消息。 2、一个基于libdbus构造的消息总线守护进程,可同时与多个应用程序相连,并能把来自一个应用程序的消息路由到0或者多个其他程序。 3、基于特定应用程序框架的封装库或捆绑(wrapper libraries or bindings )。例如,libdbus-glib和libdbus-qt,还有绑定在其他语言,例如Python的。大多数开发者都是使用这些封装库的API,因为它们简化了D-Bus编程细节。libdbus被有意设计成为更高层次绑定的底层后端(low-levelbackend )。大部分libdbus的 API仅仅是为了用来实现绑定。 总线   在D-Bus中,“bus”是核心的概念,它是一个通道:不同的程序可以通过这个通道做些操作,比如方法调用、发送信号和监听特定的信号。在一台机器上总线守护有多个实例(instance)。这些总线之间都是相互独立的。 一个持久的系统总线(system bus): 它在引导时就会启动。这个总线由操作系统和后台进程使用,安全性非常好,以使得任意的应用程序不能欺骗系统事件。它是桌面会话和操作系统的通信,这里操作系统一般而言包括内核和系统守护进程

dbus-glib 详解

狂风中的少年 提交于 2019-12-06 07:18:48
Dbus-glib使用方法说明 一、背景介绍 Phoenix平台从安全的角度考虑,广泛的使用DBUS进行进程间通讯。 1.优点: DBUS总线分为系统总线与会话总线两类,两者之前不能互相通信,所以任何应用程序不能欺骗系统事件,安全性很好。 2.缺点 l 直接使用Dbus标准接口调用很繁琐,且之前Phoenix平台没有统一的DBUS接口封装,各服务之间各写一套,不易维护也容易出错。 l 接受方法调用端、消息接收端等程序需要非阻塞式(阻塞式的无法多线程DBUS通讯)判断是否接收到DBUS信息,形如: While(1) { dbus_connection_read_write(); msg =dbus_connection_borrow_message(conn); if (NULL == msg) { usleep(xxx); continue; } … } 如上所示,多个服务同时运行的情况下,会占用大量CPU时间片,之前就有测试报告应用程序压力运行单一操作的情况下,应用程序会由快跑慢。 因此需要一个稳定可靠的DBUS调用封装,上层统一该封装接口进行DBUS通讯。 二、Dbus-glib介绍 Dbus-glib是GNU标准库,在Dbus接口上封装,方便上层服务与应用更好的使用。其形如一个DBUS代理服务器,由它进行所有DBUS消息的遍历与转发

Dbus

岁酱吖の 提交于 2019-12-06 07:16:10
##D-Bus三层架构 DBus是一个为应用程序间通信的消息总线系统, 用于进程之间的通信。它是个3层架构的IPC 系统,包括: 1、函数库libdbus ,用于两个应用程序互相联系和交互消息。 2、一个基于libdbus构造的消息总线守护进程,可同时与多个应用程序相连,并能把来自一个应用程序的消息路由到0或者多个其他程序。 3、基于特定应用程序框架的封装库或捆绑(wrapper libraries or bindings )。例如,libdbus-glib和libdbus-qt,还有绑定在其他语言,例如Python的。大多数开发者都是使用这些封装库的API,因为它们简化了D-Bus编程细节。libdbus被有意设计成为更高层次绑定的底层后端(low-levelbackend )。大部分libdbus的 API仅仅是为了用来实现绑定。 ##总线 在D-Bus中,“bus”是核心的概念,它是一个通道:不同的程序可以通过这个通道做些操作,比如方法调用、发送信号和监听特定的信号。在一台机器上总线守护有多个实例(instance)。这些总线之间都是相互独立的。 ###一个持久的系统总线(system bus): 它在引导时就会启动。这个总线由操作系统和后台进程使用,安全性非常好,以使得任意的应用程序不能欺骗系统事件。它是桌面会话和操作系统的通信,这里操作系统一般而言包括内核和系统守护进程

菜鸟系列docker——docker容器(7)

我怕爱的太早我们不能终老 提交于 2019-12-06 06:50:05
docker 容器 1. docker 守护进程daemon Daemon是Docker的守护进程,Docker Client通过命令行与Docker Damon通信,完成Docker相关操作,Docker daemon通过位于/var/run/docker.sock的本地IPC/Unix socket来实现Docker远程API;在Windows中,Docker daemon通过监听名为npipe:////./pipe/docker_engine的管道来实现。通过配置,也可以借助网络来实现Docker Client和daemon之间的通信。Docker默认非TLS网络端口为2375,TLS默认端口为2376。 UNIX域套接字 默认就是这种方式, 会生成一个 /var/run/docker.sock 文件, UNIX 域套接字用于本地进程之间的通讯, 这种方式相比于网络套接字效率更高, 但局限性就是只能被本地的客户端访问。 TCP 端口监听 服务端开启端口监听:dockerd -H IP:PORT 客户端通过指定的 IP 和 端口 访问服务端:docker -H IP:PORT,从而在服务端的服务器上创建容器。 2. docker container相关操作 2.1 相关命令 在实际操作过程中部分命令container可以省略。 Usage: docker container

初识docker docker的安装

雨燕双飞 提交于 2019-12-06 06:44:14
Docker简介 Docker是一个开源的容器引擎,它有助于更快地交付应用。 Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。 Docker的优点如下: 1、简化程序 Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。 2、避免选择恐惧症 如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。 3、节省开支 一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。