Inleiding tot D-Bus

bus-hiërarchie-conceptueel

Als je al een tijdje op Linux werkt, heb je je misschien afgevraagd wat D-Bus is. D-Bus is een component die onlangs is opgenomen in Linux-desktopdistributies en waarvan wordt verwacht dat deze een zeer belangrijke rol zal spelen bij Linux-programmering.

Wat is D-Bus?

D-Bus is een communicatiesysteem tussen applicaties van zeer uiteenlopende oorsprong. Met dit systeem kunnen we zelfs propriëtaire applicaties oproepen (als ze D-Bus implementeren). Het speelt niet dezelfde rol als een bibliotheek omdat een bibliotheek geen onafhankelijk programma is en de bibliotheek deel uitmaakt van uw uitvoerbare bestand. Het idee van D-Bus is geïnspireerd op de Windows OLE-, COM- en ActiveX-objecten. Windows COM-objecten bieden een gemakkelijke manier om elk programma vanuit een ander programma aan te roepen, zelfs om het een visueel in een ander in te bedden zonder dezelfde programmeertaal te gebruiken. D-Bus gaat niet zo ver, maar biedt die communicatie die UNIX ontbeerde.

Waarom is D-Bus belangrijk?

D-Bus is belangrijk gezien de grote diversiteit aan talen die in Linux kunnen werken en ook de grote diversiteit aan bibliotheken. Laten we een praktisch voorbeeld nemen. Ik wil een melding sturen naar het Ubuntu-bericht-osd-systeem vanuit mijn applicatie in Node.js. Eerst moet je zien welke bibliotheek deze functionaliteit in het systeem biedt, in dit geval libnotify, en dan moet je wat bindingen doen om de in C geprogrammeerde bibliotheek vanuit JavaScript te kunnen oproepen. Stel je ook voor dat we onze applicatie willen draaien met een desktop die libnotify niet gebruikt voor notificaties.

D-Bus gebruiken

Daarom hebben we besloten dat we D-Bus gaan gebruiken om onze applicatiemelding in JavaScript te maken.

https://gist.github.com/AdrianArroyoCalle/99d2ea6db92e90a54e2c

Er zijn 2 soorten bussen in D-Bus, een unieke D-Bus naar het systeem en een D-Bus voor elke gebruikerssessie. Dan hebben we in D-Bus services die "de namen van D-Bus-providers" zijn, zoiets als D-Bus-toepassingen. Dan bevinden zich in een mapachtige structuur de objecten die deze service of instanties kunnen hebben en ten slotte is de interface de manier om met de objecten van die service te communiceren. In dit geval is het erg redundant omdat de notificatieserver heel eenvoudig is.

Wie gebruikt D-Bus?

Meer programma's dan u zich kunt voorstellen, gebruiken D-Bus. Enkele D-Bus-services om maar een paar voorbeelden te noemen zijn:

  • com.Skype.API
  • com.canonical.Eenheid
  • org.freedesktop.PolicyKit1
  • org.gnome.Nautilus
  • org.debian.apt
  • com.ubuntu.upstart

Om alle geïnstalleerde D-Bus-services te zien, kunt u d-feet gebruiken

D-voeten


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   neysonv zei

    interessant. Ik heb er zo lang naar gekeken en ik wist niet eens wat het was

  2.   yukitero zei

    Het ding van d-feet, als ik het niet wist, ik heb een aantal dingen geprogrammeerd, met name scripts voor XChat (Clementine, Audacious) met DBus en de waarheid, als ik wist dat deze tool me de waanzin zou hebben bespaard van het lezen van de MPRIS-handleiding en de andere Clementine en Audacious DBus-interfaces.

  3.   Gabriel zei

    Het is echt een heel goed artikel, bedankt

  4.   zondaar zei

    Kijk naar mijn onwetendheid, zoveel problemen met dbus in freebsd, gentoo en debian en ik heb nooit geweten wat het was ... in feite weet ik het nog steeds niet, maar je post heeft me tenminste een ruw idee gegeven.

  5.   Note zei

    > D-Bus is niet lang geleden een ingebouwde component voor desktop-distributies in Linux.

    Niet zo lang geleden ????? Ik gebruik het sinds 2005.

    Een ander ding is kdbus dat recent is. Het is, vereenvoudigend, de integratie van dbus in de kernel.

    1.    AdrianArroyoStreet zei

      Het is nog steeds een korte tijd meer dan niets, omdat D-Bus vereist dat de rest van de systeemcomponenten het gaan gebruiken om volledig functioneel te zijn.