D-BUS

D-BUS
Información sobre la plantilla
D-Buspeg.jpeg
Lanzamiento inicial12 de enero de 2005
GéneroComunicación entre procesos (IPC)
Sistemas Operativos compatiblesMultiplataforma
LicenciaGPL y Academic Free License


D-Bus. En informática, (Desktop Bus) es un sistema de comunicación entre procesos (IPC), para aplicaciones de software con el fin de comunicarse entre sí. D-Bus es desarrollado como parte del proyecto freedesktop.org.

Arquitectura

D-Bus es un mecanismo de comunicación entre procesos (IPC) consistente en tres capas:

  • Una biblioteca , libdbus, que permite a dos aplicaciones conectarse e intercambiar mensajes.
  • Un demonio ejecutable que funciona como bus de mensajes, construido sobre libdbus, al cual pueden conectarse varias aplicaciones. El demonio puede encaminar mensajes desde una aplicación a ninguna o más aplicaciones.
  • Bibliotecas adaptadas (wrappers en inglés) para su uso en frameworks concretos.

Puntos principales de un D-Bus

  • Comunicación entre aplicaciones de escritorio en la misma sesión, facilitando la integración de aplicaciones dentro de un mismo entorno de escritorio y el tratamiento de asuntos relativos al ciclo de vida de procesos.
  • Comunicación entre el sistema operativo y la sesión de escritorio, incluyendo dentro del sistema operativo al núcleo y algunos demonios o procesos.

Funcionamiento de D-Bus

Toda aplicación que utilice D-Bus contiene objetos, normalmente definidos (aunque no es necesario) como GObject, QObject, objetos C++ u objetos Python. Cuando se recibe un mensaje a través de una conexión D-Bus, este se envía a un objeto específico, no globalmente a la aplicación. De esta forma, D-Bus se apoya en componentes software, y de cara al usuario parece como si un objeto fuera serializado a través de la conexión IPC, sin importar si existe o no un objeto al otro lado de la comunicación.

Para permitir la especificación de destino a los mensajes, debe existir un medio para indicar esa referencia. En muchos lenguajes de programación, esto recibe el nombre de puntero o referencia. Sin embargo, estas referencias se implementan como direcciones de memoria relativas al espacio de direcciones de la aplicación, lo cual no puede intercambiarse de una aplicación a otra.

Véase también

Fuentes