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