Uvod u D-Bus

sabirnica-hijerarhija-konceptualna

Ako ste neko vrijeme bili na Linuxu, možda ste se pitali što je D-Bus. D-Bus je komponenta koja je nedavno ugrađena u Linux radne površine i očekuje se da će igrati vrlo važnu ulogu za Linux programiranje.

Šta je D-Bus?

D-Bus je komunikacijski sistem između aplikacija vrlo raznolikog porijekla. Ovim sistemom možemo čak nazvati i vlasničke aplikacije (ako implementiraju D-Bus). Ne igra istu ulogu kao knjižnica, jer knjižnica nije neovisan program i knjižnica je dio vaše izvršne datoteke. Ideja o D-Busu inspirisana je Windows OLE, COM i ActiveX objektima. Windows COM objekti nude jednostavan način pozivanja bilo kojeg programa iz drugog programa, čak i mogućnost vizualnog ugradnje jednog u drugi bez upotrebe istog programskog jezika. D-Bus ne ide tako daleko, ali nudi onu komunikaciju koja je nedostajala UNIX-u.

Zašto je D-Bus važan?

D-Bus je važan s obzirom na veliku raznolikost jezika koji mogu raditi u Linuxu i veliku raznolikost biblioteka. Uzmimo praktični primjer. Želim poslati obavijest Ubuntuovom sistemu notify-osd iz moje aplikacije u Node.js. Prvo biste morali vidjeti koja biblioteka nudi ovu funkcionalnost u sistemu, libnotify u ovom slučaju, a zatim biste trebali izvršiti neke vezove da biste mogli pozivati ​​biblioteku programiranu na C iz JavaScript-a. Zamislite i da našu aplikaciju želimo pokrenuti sa radnom površinom koja ne koristi libnotify za obavještavanja.

Korištenje D-Bus-a

Stoga smo odlučili da ćemo koristiti D-Bus za kreiranje obavijesti o aplikaciji u JavaScript-u.

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

U D-Busu postoje 2 tipa sabirnica, jedinstveni D-Bus u sustav i D-Bus za svaku korisničku sesiju. Tada u D-Busu imamo usluge koje su "imena dobavljača D-Busa", nešto poput D-Bus aplikacija. Zatim su u strukturi sličnoj mapi objekti koje ova usluga ili instance mogu imati i konačno sučelje je način interakcije s objektima te usluge. U ovom slučaju je vrlo suvišan jer je poslužitelj obavijesti vrlo jednostavan.

Ko koristi D-Bus?

D-Bus koristi više programa nego što možete zamisliti. Neke od D-Bus usluga samo da navedemo primjere su:

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

Da biste saznali sve instalirane usluge D-Bus-a, možete koristiti d-noge

D-Stopala


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   neysonv rekao je

    zanimljivo. Toliko dugo gledao, a nisam ni znao šta je to

  2.   yukiteru rekao je

    Stvar s d-stopalima da to nisam znao, programirao sam neke stvari, posebno skripte za XChat (Clementine, Audacious) koristeći DBus i istinu, jer bih znao da bi ovaj alat spasio ludilo od čitanja priručnika MPRIS i različitih Clementine i Audacious DBus sučelja.

  3.   Gabriel rekao je

    To je zaista dobar članak, hvala

  4.   grešnika rekao je

    Pogledajte moje neznanje, toliko problema s dbusom u freebsd-u, gentoo-u i debian-u, a ja nikada nisam znao što je to ... zapravo još uvijek ne znam, ali vaš post mi je barem dao grubu ideju.

  5.   Bilješka rekao je

    > D-Bus je ugrađena komponenta nedugo prije za distribuciju na radnoj površini u Linuxu.

    Ne tako davno ????? Koristim ga od 2005. godine.

    Druga stvar je kdbus koji je nedavno. Radi se o pojednostavljenju integracije dbusa u jezgru.

    1.    AdrianArroyoStreet rekao je

      Još uvijek je kratko vrijeme više nego ništa jer D-Bus zahtijeva da ga ostale komponente sistema počnu koristiti kako bi bile potpuno funkcionalne.