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
6 kommentaar, los joune
interessant. So lank daarna gekyk, en ek het nie eers geweet wat dit was nie
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.
Dit is regtig 'n baie goeie artikel, dankie
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.
> 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.
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.