Introduzione a DBus
D-Bus è un sistema di Message Bus, un modo semplice per le applicazioni di comunicare tra di loro. In tal senso, dunque, DBus è un sistema di comunicazione fra i processi.
Oltre alla comunicazione tra processi, D-Bus aiuta a coordinare la vita del processo, lo rende semplice e affidabile per codificare un'applicazione a "singola istanza" o demone, e per lanciare applicazioni e demoni su richiesta, quando sono necessari i loro servizi.
D-Bus è costituito da un demone, che può essere eseguito sia a livello di sistema e per ogni sessione utente, e una serie di librerie per consentire alle applicazioni di utilizzare D-Bus. Come semplice sistema di scambio messaggi tra processi (demone e utilità), fornisce, dunque, sia un demone di sistema, sia un demone per-user-login-session (per generali esigenze di IPC tra le applicazioni utente). Inoltre, il Message Bus è costruito sulla base di un quadro di riferimento di passaggio di messaggi "ad uno-a-uno", che può essere utilizzato dalle due applicazioni per comunicare direttamente (senza passare attraverso il demone del Message Bus).
Qualsiasi applicazione che utilizza il D-Bus contiene oggetti, normalmente definiti (anche se non necessariamente) come GObject, QObject, oggetti C++. Quando un messaggio viene ricevuto tramite connessione D-Bus, questo viene inviato a un oggetto specifico, non genericamente all'applicazione. Così, D-Bus si basa sulla componente software, e per l'utente è come se un oggetto sia stato serializzato mediante la connessione IPC, indipendentemente dal fatto che vi sia un oggetto dall'altra parte della comunicazione.
Per consentire la specificazione dell'obiettivo per i messaggi, è necessario indicare quel riferimento. In molti linguaggi di programmazione, si parla di un puntatore o riferimento. Tuttavia, questi riferimenti sono implementati come indirizzo di memoria nello spazio degli indirizzi dell'applicazione, che non possono essere scambiati tra le applicazioni. Per risolvere questo problema, D-Bus introduce un nome per ciascun oggetto. Questo nome viene visualizzato come un percorso del file system. I nomi degli oggetti di D-Bus sono raggruppati in spazi dei nomi per garantire che i vari moduli di codice sono tenuti separati. Gli spazi dei nomi sono generalmente preimpostati a seconda dei componenti utilizzati dagli stessi programmatori.
DBus viene utilizzato principalmente per:
- la comunicazione tra programmi nella stessa sessione desktop, facilitando l'integrazione di applicazioni all'interno dello stesso ambiente desktop e il trattamento delle questioni relative al ciclo di vita del processo;
- la comunicazione tra il sistema operativo e la sessione del desktop, anche all'interno del sistema operativo di base e di alcuni demoni o processi.
DBus e Gambas
Sull'uso di DBus in Gambas proponiamo la lettura di questa pagina: https://gambaswiki.org/wiki/doc/dbus