D-Bus簡介

總線層次結構概念

如果您使用Linux已有一段時間,您可能想知道什麼是D-Bus。 D-Bus是不久前併入台式機Linux發行版的組件,有望在Linux編程中發揮非常重要的作用。

什麼是D-Bus?

D-Bus是起源非常不同的應用程序之間的通信系統。 使用該系統,我們甚至可以調用專有應用程序(如果它們實現了D-Bus)。 它的作用與庫不同,因為庫不是獨立程序,並且庫是可執行文件的一部分。 D-Bus的靈感來自Windows OLE,COM和ActiveX對象。 Windows COM對象提供了一種從其他程序調用任何程序的簡便方法,甚至可以在不使用相同編程語言的情況下將其可視化地嵌入到另一個程序中。 D-Bus並沒有走那麼遠,但它提供了UNIX所缺乏的通信。

為什麼D-Bus很重要?

鑑於可以在Linux上使用的多種語言以及各種庫,D-Bus非常重要。 讓我們舉一個實際的例子。 我想從Node.js中的應用程序向Ubuntu notify-osd系統發送通知。 首先,您必須查看系統中哪些庫提供了此功能,在這種情況下請進行libnotify,然後應該進行一些綁定,以便能夠從JavaScript調用用C編程的庫。 還要想像一下,我們希望在不使用libnotify進行通知的桌面上運行應用程序。

使用D-Bus

因此,我們決定將使用D-Bus在JavaScript中創建應用程序通知。

https://gist.github.com/AdrianArroyoCalle/99d2ea6db92e90a54e2c

D-Bus中有2種類型的總線,即係統的唯一D-Bus和每個用戶會話的D-Bus。 然後在D-Bus中,我們提供的服務就是“ D-Bus提供程序的名稱”,類似於D-Bus應用程序。 然後,在類似文件夾的結構中是該服務或實例可以具有的對象,最後,接口是與該服務的對象進行交互的方式。 在這種情況下,這是非常多餘的,因為通知服務器非常簡單。

誰在使用D-Bus?

使用D-Bus的程序數量超出您的想像。 僅舉幾個例子,一些D-Bus服務是:

  • com.Skype.API
  • 共同的統一
  • org.freedesktop.PolicyKit1
  • org.gnome.Nautilus
  • 組織.debian.apt
  • com.ubuntu.upstart

要查找已安裝的所有D-Bus服務,可以使用d-feet

D腳


6條評論,留下您的評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   涅森夫 他說:

    有趣。 這麼長時間的觀看,我什至不知道那是什麼

  2.   友喜 他說:

    如果我不了解d-feet,我已經編寫了一些東西,特別是使用DBus和真實信息編寫了XChat(Clementine,Audacious)腳本,並知道該工具將使我免於閱讀MPRIS手冊和不同的Clementine和Audacious DBus接口。

  3.   加布里埃爾 他說:

    這真的是一篇很好的文章,謝謝

  4.   罪人 他說:

    看看我的無知,freebsd,gentoo和debian中dbus的很多問題,我不知道那是什麼...實際上我仍然不知道,但是您的帖子至少給了我一個大概的主意。

  5.   備註 他說:

    > D-Bus是不久前Linux桌面發行版中的內置組件。

    不久前自2005年以來,我一直在使用它。

    另一件事是最近的kdbus。 簡單來說,就是將dbus集成到內核中。

    1.    阿德里安·阿羅約街 他說:

      這仍然是很短的時間,因為D-Bus要求其餘的系統組件開始使用它才能完全發揮作用。