Bir süredir Linux'taysanız, D-Bus'un ne olduğunu merak etmiş olabilirsiniz. D-Bus, son zamanlarda Linux masaüstü dağıtımlarına dahil edilen ve Linux programlamasında çok önemli bir rol oynaması beklenen bir bileşendir.
D-Bus nedir?
D-Bus, çok çeşitli kökenli uygulamalar arasında bir iletişim sistemidir. Bu sistemle tescilli uygulamaları bile arayabiliriz (D-Bus uygularlarsa). Kitaplık ile aynı rolü oynamaz çünkü kitaplık bağımsız bir program değildir ve kitaplık çalıştırılabilir dosyanın bir parçasıdır. D-Bus fikri, Windows OLE, COM ve ActiveX nesnelerinden esinlenmiştir. Windows COM nesneleri, herhangi bir programı başka bir programdan çağırmanın basit bir yolunu sunar, hatta aynı programlama dilini kullanmadan birini diğerinin içine görsel olarak gömebilir. D-Bus o kadar ileri gitmez, ancak UNIX'in sahip olmadığı iletişimi sunar.
D-Bus neden önemlidir?
D-Bus, Linux'ta çalışabilen büyük dil çeşitliliği ve aynı zamanda büyük kütüphane çeşitliliği göz önüne alındığında önemlidir. Pratik bir örnek alalım. Node.js'deki uygulamamdan Ubuntu'nun notify-osd sistemine bildirim göndermek istiyorum. Öncelikle sistemde bu işlevselliği hangi kütüphanenin sunduğunu görmeniz, bu durumda libnotify yapmanız ve ardından C ile programlanmış kütüphaneyi JavaScript'ten çağırabilmek için bazı bağlamalar yapmanız gerekir. Ayrıca uygulamamızı bildirimler için libnotify kullanmayan bir masaüstü ile çalıştırmak istediğimizi de hayal edin.
D-Bus Kullanımı
Bu nedenle, uygulama bildirimimizi JavaScript'te oluşturmak için D-Bus kullanmaya karar verdik.
https://gist.github.com/AdrianArroyoCalle/99d2ea6db92e90a54e2c
D-Bus'ta 2 tip veri yolu, sisteme benzersiz bir D-Bus ve her kullanıcı oturumu için bir D-Bus vardır. Daha sonra D-Bus'ta D-Bus uygulamaları gibi "D-Bus sağlayıcılarının adları" olan hizmetlerimiz var. Daha sonra, klasör benzeri bir yapıda, bu hizmetin veya örneklerin sahip olabileceği nesneler bulunur ve son olarak arabirim, bu hizmetin nesneleriyle etkileşim kurma yoludur. Bu durumda, bildirim sunucusu çok basit olduğu için çok fazladır.
D-Bus'u kim kullanır?
Tahmin edebileceğinizden daha fazla program D-Bus kullanıyor. Örnek vermek gerekirse bazı D-Bus hizmetleri şunlardır:
- com.Skype.API
- com.canonical.Unity
- org.freedesktop.PolicyKit1
- org.gnome.Nautilus
- org.debian.apt
- com.ubuntu.Başlangıç
Yüklediğiniz tüm D-Bus hizmetlerini öğrenmek için d-feet kullanabilirsiniz.
ilginç. Çok uzun zamandır onu izliyordum ve ne olduğunu bile bilmiyordum
D-feet olayı eğer bilmiyorsam, bazı şeyleri programladım, özellikle DBus kullanarak XChat (Clementine, Audacious) için komut dosyaları ve gerçeği, bu aracın beni MPRIS kılavuzunu ve farklı Clementine ve Audacious DBus arayüzleri.
Gerçekten çok güzel bir makale, teşekkürler
Cehaletime bakın, freebsd, gentoo ve debian'da dbus ile ilgili o kadar çok sorun var ki ne olduğunu hiç bilmiyordum ... aslında hala bilmiyorum ama gönderiniz en azından bana kaba bir fikir verdi.
> D-Bus, uzun zaman önce Linux'taki masaüstü dağıtımları için yerleşik bir bileşendir.
Çok uzun zaman önce değil????? 2005 yılından beri kullanıyorum.
Başka bir şey de yeni olan kdbus. Çekirdek içindeki dbus entegrasyonunu basitleştirir.
D-Bus, tamamen işlevsel olmak için sistem bileşenlerinin geri kalanının onu kullanmaya başlamasını gerektirdiğinden, hiç yoktan çok kısa bir süredir.