D-Bus

D-Bus
D-Bus
Ontwikkelaar(s) Red Hat en de community
Recentste versie 1.14.10 (1 september 2023)[1] Bewerken op Wikidata
Status Actief
Besturingssysteem Multiplatform
Geschreven in C
Categorie Interprocescommunicatie
Licentie(s) GPL or Academic Free License 2.1[2]
Versiebeheer
  • gitlab.freedesktop.org/dbus/dbus.git Bewerk dit op Wikidata
Website (en) D-Bus op FreeDesktop.org
Portaal  Portaalicoon   Informatica
Vrije software

D-Bus (Desktop Bus) is ontwikkeld door Red Hat als onderdeel van het freedesktop.org-project om processen onderling gemakkelijk met elkaar te laten communiceren. De concurrerende oplossing DCOP (Desktop Communications Protocol), dat een belangrijk onderdeel was van zowel KDE 2 en 3, heeft als blauwdruk gediend voor de ontwikkeling van D-Bus. Met de komst van D-Bus is DCOP in KDE 4 vervangen door D-Bus en wordt bij GNOME D-Bus ingezet om het oudere Bonobo-mechanisme te vervangen. Ook andere desktopomgevingen en windowmanagers maken gebruik van D-Bus.

Events en werking

Met de komst van D-Bus delen de twee grotere werkomgevingen op Unix-achtige besturingssystemen een gezamenlijke infrastructuur en uniforme manier om op events te reageren. Een applicatie zoals Brasero kan zich bij D-Bus registreren om hardware-events te ontvangen betreffende veranderingen van optische spelers. Wanneer de Hardware Abstraction Layer (HAL) deze wijzigingen detecteert zullen deze via een kanaal binnen D-Bus bij de juiste applicaties terechtkomen.

Uit veiligheidsoverwegingen is er een algemeen systeemkanaal, waar voor sommige acties rechten nodig zijn om deze te kunnen zien of om berichten te kunnen versturen. Tevens is er voor elke actieve gebruiker een privékanaal waar alle processen van deze gebruiker overheen kunnen communiceren. Een voorbeeld hiervan is de audiospeler Rhythmbox, die informatie verstuurt over welk nummer nu wordt afgespeeld.

Implementaties

  • Freedesktop.org D-Bus, de referentie-implementatie
  • Windbus, specifieke wijzigingen voor een implementatie van D-Bus onder Windows
  • NDesk Managed D-Bus voor het .NET framework, was de eerste onafhankelijke implementatie volgens het cleanroom design[3]
  • D-Bus Java, ontwikkeld[4] uit libdbus in een onafhankelijke implementatie
  • DBus-Python implementeert de D-Bus Reference Spec

Externe links

  • (en) D-Bus op FreeDesktop.org
  • (en) IBM's D-Bus tutorial (gearchiveerd)
  • (en) How to pass a variant over D-Bus (gearchiveerd)
  • (en) Voorbeelden om D-Bus te gebruiken vanaf de commandline (in combinatie met Liferea)
  • (en) D-Bus in een diagram
Bronnen, noten en/of referenties
  1. Announcing dbus 1.14.10 (maintenance release).
  2. (en) GPL/AFL
  3. Alp Toker, D-Bus mailing list (2006).
  4. Matthew Johnson, D-Bus mailing list (2007).