A D-Bus egy folyamatok közötti kommunikációs rendszer , amely lehetővé teszi az operációs rendszerben lévő alkalmazások számára, hogy kommunikáljanak egymással.
A D-Bus a freedesktop.org projekt része . Nagy sebességű, nem függ a munkakörnyezettől, POSIX - kompatibilis operációs rendszereken fut , van Windows -ra is verzió (még fejlesztés alatt) [1] .
D busz | |
---|---|
Típusú | IPC |
Fejlesztő | FreeDesktop.org |
Beírva | C |
Operációs rendszer | Cross platform |
legújabb verzió | 1.14.0 (2022. február 28. [2] ) |
Teszt verzió | 1.15.0 |
Engedély |
GNU GPL v2 vagy AFL 2.1 |
Weboldal | freedesktop.org/wiki/Sof… |
Két részből áll: egy démonból és egy alacsony szintű API -ból . Vannak magas szintű könyvtárak a Qt , Java , GLib , C# , Python , Ruby keretrendszerekhez és egy könyvtár a C++ számára .
Ugyanazon asztali környezet alkalmazásainak szorosan kölcsönhatásba kell lépniük egymással. A KDE grafikus környezete nem túl régen a DCOP -t használta ehhez , de más asztali környezetek (például a GNOME ) nem rendelkeztek hasonló rendszerekkel.
Lehetett CORBA -n , SOAP -on vagy XML-RPC- n keresztül kommunikálni , de a CORBA inkább vállalati szintű rendszerekre alkalmas, mint asztali grafikus környezetekre ( a KDE és a GNOME már túljutott a CORBA használatának szakaszán fennállása során , míg a SOAP és az XML- Az RPC -t a webre szánják ).
A GNOME korábban a CORBA-n alapuló Bonobót használta , de a GObject - től való függése miatt a Bonobót nem használták más asztali környezetben, és a CORBA lassú volt. befolyásolta a teljes környezet sebességét.
Meg kellett szervezni az üzenetváltást két különböző környezet alkalmazásai között. A probléma megoldására létrehozták a D-Bus projektet. A megvalósítás sikeres volt, és ezt követően úgy döntöttek, hogy a KDE 4 projektet D-Bus használatára helyezik át .
A D-Bus több busszal látja el a rendszert:
Minden buszon keresztül küldött D-Bus üzenetnek megvan a saját feladója. Ha az üzenet nem sugárzott jel, akkor annak is van címzettje. A feladók és a címzettek címeit objektumútvonalaknak nevezzük, mivel a D-Bus feltételezi, hogy a rendszer minden folyamata objektumok halmazából áll, és az üzenetek nem alkalmazások között, hanem ugyanazon alkalmazások objektumai között kerülnek elküldésre.
Minden objektum támogathat egy vagy több interfészt, amelyek elnevezett metódus- és jelcsoportokként jelennek meg, hasonlóan a Glib- , Qt- vagy Java-felületekhez .
A D-Bus a szolgáltatások fogalmát is tartalmazza. A szolgáltatás egy szoftverfolyamat egyedi helyszíne a buszon. Indításkor a program egy vagy több olyan szolgáltatást regisztrál, amelyek tulajdonosa lesz, amíg ki nem bocsátja magát, addig más, ugyanazt a szolgáltatást igénylő program nem tudja elfoglalni. A szolgáltatások elnevezése az interfészekhez hasonlóan történik . A program zárása (befejezése) után a kapcsolódó szolgáltatások is kikerülnek a D-Bus regiszterből, miközben a D-Bus jelzést küld a szolgáltatás bezárásáról.
A D-Bus szolgáltatások egy másik funkciót is elérhetővé tesznek - a számukra szükséges üzenetek esetén a szükséges programok elindítását. Ehhez engedélyezni kell az automatikus aktiválást, és ehhez a szolgáltatáshoz egy programot kell hozzárendelni a D-Bus konfigurációban.
A buszhoz való csatlakozás után a programnak meg kell adnia, hogy mely üzeneteket kívánja fogadni, a matcher maszkok hozzáadásával . Az egyezési maszkok a programnak kézbesített üzenetekre vonatkozó szabálykészletek. A szűrés interfészeken, objektum útvonalakon és metódusokon alapulhat.
A D-Busban 4 típusú üzenet létezik:
A D-Busban minden objektumnak megvan a maga egyedi neve, amely úgy néz ki, mint egy elérési út a fájlrendszerben. Például az objektum neve lehet " /org/kde/kspread/sheets/3/cells/4/5 ". Előnyben részesítjük azokat a neveket, amelyek valamilyen jelentést hordoznak, azonban a fejlesztők olyan neveket is választhatnak, mint a " /com/mycompany/c5yo817y0c1y1c5b ", ha ez logikus a programjuk számára.
Az objektumok nevei a névterekben találhatók , hogy segítsenek megkülönböztetni a különböző programmodulokat. A névterek általában fejlesztőspecifikus előtagot kapnak, például /org/kde .
Tematikus oldalak |
---|
Alkatrészek | ||
---|---|---|
Könyvtárak | ||
Keretrendszerek |
| |
Találkozók |
|
Folyamatközi kommunikáció | |
---|---|
Mód | |
Válogatott protokollok és szabványok |
GNOME | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Alapvető |
| ||||||||||||||||
Alkalmazások |
| ||||||||||||||||
Alkatrészek | |||||||||||||||||
Platform architektúra |
| ||||||||||||||||
Közösség | |||||||||||||||||
Emberek | |||||||||||||||||
|