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の使用
そこで、JavaScriptでアプリケーション通知を作成するためにD-Busを使用することにしました。
https://gist.github.com/AdrianArroyoCalle/99d2ea6db92e90a54e2c
D-Busには、システムに固有のD-BusとユーザーセッションごとのD-Busの2種類のバスがあります。 次に、D-Busには、D-Busアプリケーションのような「D-Busプロバイダーの名前」であるサービスがあります。 次に、フォルダのような構造に、このサービスまたはインスタンスが持つことができるオブジェクトがあり、最後に、インターフェイスがそのサービスのオブジェクトと対話する方法です。 この場合、通知サーバーは非常に単純であるため、非常に冗長です。
D-Busを使用しているのは誰ですか?
想像以上に多くのプログラムがD-Busを使用しています。 例を挙げると、いくつかのD-Busサービスは次のとおりです。
- com.Skype.API
- com.canonical.Unity
- org.freedesktop.PolicyKit1
- org.gnome.ノーチラス
- org.debian.apt
- com.ubuntu.upstart
インストールしたすべてのD-Busサービスを見つけるには、d-feetを使用できます。
面白い。 ずっと見ていて、それが何なのかすら知りませんでした
私がそれを知らなかった場合のd-feetのこと、特にDBusと真実を使用したXChat(Clementine、Audacious)のスクリプトをプログラムしました。このツールを知っていれば、MPRISマニュアルと異なるクレメンタインと大胆なDBusインターフェース。
本当にいい記事です、ありがとうございます
私の無知を見てください。freebsd、gentoo、debianのdbusに関する多くの問題があり、それが何であるかはわかりませんでした…実際、まだわかりませんが、あなたの投稿から少なくとも大まかなアイデアが得られました。
> D-Busは、Linuxのデスクトップディストリビューションに組み込まれたコンポーネントです。
少し前????? 2005年から使用しています。
もう一つは最近のkdbusです。 これは、単純化すると、カーネル内でのdbusの統合です。
D-Busは、完全に機能するために残りのシステムコンポーネントがそれを使用し始める必要があるため、それでもまだ短い時間です。