Differenze tra le versioni di "Introduzione a DBus"
(Una versione intermedia di uno stesso utente non è mostrata) | |||
Riga 5: | Riga 5: | ||
''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 [http://it.wikipedia.org/wiki/Comunicazione_tra_processi IPC] tra le applicazioni utente). Inoltre, il ''[http://it.wikipedia.org/wiki/MBus 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''). | ''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 [http://it.wikipedia.org/wiki/Comunicazione_tra_processi IPC] tra le applicazioni utente). Inoltre, il ''[http://it.wikipedia.org/wiki/MBus 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 | + | 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 [http://it.wikipedia.org/wiki/Serializzazione serializzato] mediante la connessione [http://it.wikipedia.org/wiki/Comunicazione_tra_processi IPC], indipendentemente dal fatto che vi sia un oggetto dall'altra parte della comunicazione. |
<BR>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. | <BR>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. | ||
Riga 12: | Riga 12: | ||
* 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. | * 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 | ||
− | = | + | |
+ | =Riferimenti= | ||
* [http://it.wikipedia.org/wiki/D-Bus D-Bus] | * [http://it.wikipedia.org/wiki/D-Bus D-Bus] | ||
* [http://www.freedesktop.org/wiki/IntroductionToDBus/ IntroductionToDBus] | * [http://www.freedesktop.org/wiki/IntroductionToDBus/ IntroductionToDBus] |
Versione attuale delle 16:41, 26 nov 2023
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