D busz

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. július 30-án felülvizsgált verziótól ; az ellenőrzések 12 szerkesztést igényelnek .

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 .

Történelem

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 .

Működési elvek

A D-Bus több busszal látja el a rendszert:

  1. Rendszerbusz . Akkor jön létre, amikor a D-Bus démon elindul . Segítségével különféle démonok , például az UPower kommunikálnak, valamint a felhasználói alkalmazások kölcsönhatásba lépnek ezekkel a démonokkal.
  2. session busz . A rendszerbe bejelentkezett felhasználó számára készült . Minden ilyen buszhoz a démon külön példánya indul el, amelyen keresztül azok az alkalmazások fognak kommunikálni, amelyekkel a felhasználó dolgozik.

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:

  1. Módszerhívások . _
  2. Módszerhívás eredményei.
  3. Jelek (sugárzott üzenetek).
  4. Hibák.

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 .

Lásd még

Jegyzetek

  1. dbus . www.freedesktop.org. Letöltve: 2017. augusztus 3. Az eredetiből archiválva : 2017. augusztus 7..
  2. Root dbus . Letöltve: 2022. május 6. Az eredetiből archiválva : 2014. augusztus 5..

Irodalom

Linkek