Inleiding tot D-Bus

bus-hiërargie-konseptueel

As u al 'n geruime tyd op Linux werk, het u u miskien afgevra wat D-Bus is. D-Bus is 'n komponent wat nie lank gelede opgeneem is in desktop Linux-verspreidings nie, wat na verwagting 'n baie belangrike rol vir Linux-programmering sal speel.

Wat is D-Bus?

D-Bus is 'n kommunikasiesisteem tussen toepassings van baie uiteenlopende oorsprong. Met hierdie stelsel kan ons selfs eie toepassings oproep (indien dit D-Bus implementeer). Dit speel nie dieselfde rol as 'n biblioteek nie, want 'n biblioteek is nie 'n onafhanklike program nie en die biblioteek is deel van u uitvoerbare program. Die D-Bus-idee is geïnspireer deur die Windows OLE-, COM- en ActiveX-voorwerpe. Windows COM-voorwerpe bied 'n maklike manier om programme vanuit 'n ander program op te roep, selfs om mekaar visueel in te bed sonder om dieselfde programmeertaal te gebruik. D-Bus gaan nie so ver nie, maar dit bied die kommunikasie wat UNIX ontbreek.

Waarom is D-Bus belangrik?

D-Bus is belangrik gegewe die groot verskeidenheid tale wat op Linux kan werk, en die groot verskeidenheid biblioteke. Kom ons neem 'n praktiese voorbeeld. Ek wil 'n kennisgewing stuur na die Ubuntu kennisgewing-osd-stelsel vanaf my toepassing in Node.js. Eerstens moet u sien watter biblioteek hierdie funksie in die stelsel bied, in hierdie geval libnotify, en dan moet u 'n paar bindings doen om die biblioteek wat in C geprogrammeer is vanuit JavaScript te kan skakel. Stel u ook voor dat ons ons program wil laat loop met 'n lessenaar wat nie libnotify vir kennisgewings gebruik nie.

Met behulp van D-Bus

Daarom het ons besluit dat ons D-Bus gaan gebruik om ons aansoekkennisgewing in JavaScript te skep.

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

Daar is twee soorte busse in D-Bus, 'n unieke D-bus na die stelsel en 'n D-Bus vir elke gebruikersessie. Dan het ons in D-Bus dienste wat "die name van D-Bus-verskaffers" is, iets soos D-Bus-toepassings. Dan is die voorwerpe wat hierdie diens of gevalle kan hê in 'n voueragtige struktuur, en uiteindelik is die koppelvlak die manier om met die voorwerpe van die diens te kommunikeer. In hierdie geval is dit baie oorbodig, aangesien die kennisgewingsbediener baie eenvoudig is.

Wie gebruik D-Bus?

Meer programme as wat u dink, gebruik D-Bus. Sommige D-busdienste, net om voorbeelde te noem, is:

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

Om uit te vind al die D-Bus-dienste wat u geïnstalleer het, kan u d-feet gebruik

D-Voete


Die inhoud van die artikel voldoen aan ons beginsels van redaksionele etiek. Klik op om 'n fout te rapporteer hier.

6 kommentaar, los joune

Laat u kommentaar

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk met *

*

*

  1. Verantwoordelik vir die data: Miguel Ángel Gatón
  2. Doel van die data: Beheer SPAM, bestuur van kommentaar.
  3. Wettiging: U toestemming
  4. Kommunikasie van die data: Die data sal nie aan derde partye oorgedra word nie, behalwe deur wettige verpligtinge.
  5. Datastoor: databasis aangebied deur Occentus Networks (EU)
  6. Regte: U kan u inligting te alle tye beperk, herstel en verwyder.

  1.   neysonv dijo

    interessant. So lank daarna gekyk, en ek het nie eers geweet wat dit was nie

  2.   yukiteru dijo

    As ek dit nie weet nie, het ek 'n paar dinge geprogrammeer, veral skrifte vir XChat (Clementine, Audacious) met behulp van DBus en die waarheid, omdat ek geweet het dat die instrument my die gekheid van die lees van die MPRIS-handleiding en die ander sou bespaar. Clementine en Audacious DBus-koppelvlakke.

  3.   Gabriel dijo

    Dit is regtig 'n baie goeie artikel, dankie

  4.   sondaar dijo

    Kyk na my onkunde, soveel probleme met dbus in freebsd, gentoo en debian en ek het nooit geweet wat dit was nie ... eintlik weet ek nog steeds nie, maar u boodskap het my ten minste 'n rowwe idee gegee.

  5.   nota dijo

    > D-Bus is nie lank gelede 'n ingeboude komponent vir desktop-verspreidings in Linux nie.

    Nie lank gelede nie ????? Ek gebruik dit sedert 2005.

    Nog 'n ding is kdbus wat onlangs is. Dit vereenvoudig die integrasie van dbus in die kern.

    1.    AdrianArroyoStreet dijo

      Dit is nog 'n kort tydjie meer as niks, want D-Bus vereis dat die res van die stelselkomponente dit moet gebruik om ten volle funksioneel te wees.