D-Bus
# D-Bus

D-Bus (Desktop Bus) è un sistema di comunicazione tra processi (IPC), sviluppato come progetto di software libero, che offre alle applicazioni un semplice modo di comunicare tra loro.

D-Bus è stato pesantemente influenzato dal sistema DCOP e lo ha sostituito nella versione KDE 4; D-Bus fa parte del progetto Freedesktop.org e Red Hat è il suo sviluppatore principale. È implementato in Qt 4, GNOME e sulla piattaforma Maemo per applicazioni mobili.

## Introduzione

Mediante D-Bus una applicazione può registrarsi per offrire servizi ad altre. D-Bus offre anche alle applicazioni client la possibilità di ricercare i servizi disponibili. Inoltre i programmi possono registrarsi in attesa di eventi del kernel, come ad esempio il cambiamento di periferiche collegate.

D-Bus è implementato come demone, e gli utenti possono eseguire diverse istanze, ciascuna delle quali è definita un canale. Generalmente esisterà un canale privilegiato, detto canale di sistema (system channel), e una istanza privata per ogni utente. Le istanze private sono necessarie perché il canale di sistema avrà restrizioni di accesso. Il canale di sistema ha la missione di recapitare i messaggi dallo strato di astrazione dall'hardware (Hardware abstraction layer o HAL) a tutti i processi interessati. Le istanze private invece forniscono un sistema di comunicazione tra le applicazioni dell'utente senza restrizioni.

## Architettura

L'architettura di D-Bus si sviluppa su tre livelli:

### libdbus

    una libreria che consente a due applicazioni di collegarsi tra loro e scambiarsi messaggi.

### un demone di gestione dei messaggi

    che impiega libdbus, a cui le applicazioni si connettono; il demone può dirottare i messaggi da una applicazione a zero o più altre applicazioni.

### librerie wrapper

    per ogni ambiente applicativo.

## Utilizzo

D-Bus è progettato per fare fronte a due possibili casi:

* Comunicazione tra diverse applicazioni dello stesso desktop.
* Comunicazione tra l'ambiente desktop e il sistema operativo.
