27 Nisan 2022 Çarşamba

D-BUS(Inter process communication)

 


DBUS NEDİR?
*D-Bus aynı makine üzerinde birden fazla procesin haberleşmesini sağlayan mesajlaşma tabanlı bir yazılım mekanizması
*Pekçok procein iletişimi verimsiz ve güvensiz olmaktadır bunun yerine bir grup procesin dbus ile haberleşmesi sağlanabilmektedir
*Bir proces birden fazla busa bağlanabilir(izin verilmek şartıyla)
*system bus : Bütün kullanıcılar ve bütün proceslerine sistem servislerini sağlar session bus: Masaüstü aynı oturumdaki kullanıcı uygulamalarına masaüstü servisi sağlayan oturumlar için. *dbus bilgi paylaşımı , modulerlik ve ayrıcalıklar sağlar örn : müzik dinlerken skype araması geline müziği durdurup arama bitince devam ettirmesi gibi *dbus farklı komponentleri entegre etmek için kullanılabilir . örn : word ile excel arasında bilgi paylaşımı gibi

 

BUS MODEL ?
*Busa yapılan her bağlantı bir 'bus name' ile tanımlıdır. Bus name iki veya daha fazla noktayla ayrılmış diziden oluşur örn: org.fredesktop.Networkmanager
*Bir proces bir busa bağlantı kurduğunda benzersiz özel bir bağlantı adı atanır.Bağlantı adı bağlantı olduğu sürece değişmeyeceği garanti altındadır bus sonlandırılana kadar . Bir proces baglantı kursa baglantıyı kapatıp yeni bir baglantı kursa dahi önceki baglantı adı başka bir procesese kesinlikle atanmaz
*Connection adları : ile başlar örn :1.1553

 

OBJECT MODEL?
*Nesnelerlin signal ve metodları aracılığıyla haberleşme sağlanır . örn : Zaman servisi olarak adlandırılan servisten tarih ve zamanı dönen metod kullanılarak zaman sorgulanabilir örn : usb ve aygıt yöneticilerini yöneten bir servisin "Yenir aygıt eklendi" bildirisi gibi . Bus sadece kayıtlı(ilgilenen) proceslere bu sinyali iletir
*Interface : Bir nesne ile kullanılabilecek sinyal ve metodlar kümesidir .Nokta ile ayrılır örn : org.freedesktop.Introspectable
*Bus name ile interface name karıstırılmamalıdır . Bus birden fazla interface içerebilir
* Nesne adının yanında interface adı vermek iyi bir alıskanlıktır ama zorunlu değildir Interface çeşitleri : org.freedesktop.DBus.Peer: D-Bus baglantısının canlılığını kontrol eder org.freedesktop.DBus.Introspectable: Client procese xml formatında metod ve sinyaller saglar org.freedesktop.DBus.Properties: Object tabanında özellikler ve öznitelikler sağlar

 

COMMUNICATION MODEL ?
*Yüksek seviyeli proces haberleşme sistemidir
. *Raw bytelar yerine procesler arası mesaj değişimi tabanlı dbus iletişimidir
*İki türü vardır + One to one : Bir clientın metodları ile iletişim sağlanır cevap dönülebilir + Publish-subscribe: Bir object ilgilenen bütün proceslere yayın yapar. Geri dönüş değeri gibi bir durum yoktur
*Her D-Bus mesajı header ve bodye sahiptir . Header kısmında mesajın tipini , göndericiyi , hedef, bus name metod ,path, sinyal adı gibi belirten belirli alanları vardır . Body kısmında ise giris cıkttı argümanları gibi veriler bulunur *Her data wire formatı denen ikili formatta kodlanmıstır GENEL
*libdbus bire bir iletişimi destekler ve sağlar .Bus name gerek yoktur
*Dbus-daemon pek cok proces arası iletişimi saglar kontrol eder .Bus name gereklidir
Share: