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
zanimljivo. Toliko dugo gledao, a nisam ni znao šta je to
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.
To je zaista dobar članak, hvala
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.
> 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.
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.