Introduktion til D-Bus

bus-hierarki-konceptuel

Hvis du har været på Linux i nogen tid, har du måske spekuleret på, hvad D-Bus er. D-Bus er en komponent, der for nylig er inkorporeret i Linux desktop distributioner, der forventes at spille en meget vigtig rolle for Linux programmering.

Hvad er D-Bus?

D-Bus er et kommunikationssystem mellem applikationer af meget forskellig oprindelse. Med dette system kan vi endda kalde proprietære applikationer (hvis de implementerer D-Bus). Det spiller ikke den samme rolle som et bibliotek, fordi et bibliotek ikke er et uafhængigt program, og biblioteket er en del af din eksekverbare. D-Bus-ideen er inspireret af Windows OLE-, COM- og ActiveX-objekter. Windows COM-objekter tilbyder en enkel måde at ringe til ethvert program fra et andet program, endda at være i stand til visuelt at integrere hinanden inde i hinanden uden at bruge det samme programmeringssprog. D-Bus går ikke så langt, men tilbyder den kommunikation, som UNIX manglede.

Hvorfor er D-Bus vigtig?

D-Bus er vigtig i betragtning af den store mangfoldighed af sprog, der kan fungere i Linux og den store mangfoldighed af biblioteker også. Lad os tage et praktisk eksempel. Jeg vil sende en underretning til Ubuntu notify-osd-systemet fra min applikation i Node.js. Først skal du se, hvilket bibliotek der tilbyder denne funktionalitet i systemet, libnotify i dette tilfælde, og derefter skal du gøre nogle bindinger for at kunne kalde det bibliotek, der er programmeret i C fra JavaScript. Forestil dig også, at vi vil køre vores applikation med et skrivebord, der ikke bruger libnotify til underretninger.

Brug af D-Bus

Så vi har besluttet, at vi skal bruge D-Bus til at oprette vores applikationsmeddelelse i JavaScript.

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

Der er 2 typer busser i D-Bus, en unik D-bus til systemet og en D-bus til hver brugersession. Derefter har vi i D-Bus tjenester, der er "navnene på D-Bus-udbydere", noget som D-Bus-applikationer. Derefter er de objekter, som denne tjeneste eller forekomster kan have i en mappelignende struktur, og til sidst er grænsefladen den måde at interagere med objekterne i denne tjeneste. I dette tilfælde er det meget overflødigt, da notifikationsserveren er meget enkel.

Hvem bruger D-Bus?

Flere programmer, end du kan forestille dig, bruger D-Bus. Nogle D-Bus-tjenester for blot at nævne eksempler er:

  • com.Skype.API
  • com.kanonisk.Enhed
  • org.freedesktop.PolicyKit1
  • org.gnome.Nautilus
  • org.debian.apt
  • com.ubuntu.upstart

For at finde ud af alle de D-Bus-tjenester, du har installeret, kan du bruge d-fødder

D-fødder


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   neysonv sagde han

    interessant. Så længe at se det, og jeg vidste ikke engang hvad det var

  2.   yukiteru sagde han

    D-feet-ting, hvis jeg ikke vidste det, har jeg programmeret nogle ting, især scripts til XChat (Clementine, Audacious) ved hjælp af DBus og sandheden, da jeg vidste, at værktøjet ville have reddet mig vanvid ved at læse MPRIS-manualen og de forskellige Clementine og Audacious DBus-grænseflader.

  3.   Gabriel sagde han

    Det er virkelig en meget god artikel, tak

  4.   synder sagde han

    Se på min uvidenhed, så mange problemer med dbus i freebsd, gentoo og debian, og jeg vidste aldrig, hvad det var ... faktisk ved jeg stadig ikke, men dit indlæg har i det mindste givet mig en grov idé.

  5.   Bemærk sagde han

    > D-Bus er en indbygget komponent for ikke længe siden til desktop-distributioner i Linux.

    For ikke længe siden ????? Jeg har brugt det siden 2005.

    En anden ting er kdbus, der er nyere. Det forenkler integrationen af ​​dbus i kernen.

    1.    AdrianArroyoStreet sagde han

      Det er stadig kort tid mere end intet, fordi D-Bus kræver, at resten af ​​systemkomponenterne begynder at bruge den for at være fuldt funktionsdygtig.