출처 :
http://www.freedesktop.org/wiki/Software/dbus
먼저, freedesktop.org는 X윈도우 시스템 및 이를 기반으로 하는 데스크톱과 관련된 정보를 처리,상호운용하는 그리고 공용기술을 규격화하고 해당요소들을 사용하는 오픈소스 소프트웨어 프로젝트들을 호스팅하는 사이트이다.
*X윈도우시스템 : GUI환경 구현을 위한 Software, Network Protocol 이다.
D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and reliable to code a "single instance" application or daemon, and to launch applications and daemons on demand when their services are needed.
D-Bus란 메세지 버스시스템이다. 이는 어플리케이션끼리 대화를 하는 간단한 방법이다. 칩셋에서 내부적인 통신뿐만 아니라 D-Bus는 상호적인 Lifecycle(생활주기?)을 도와준다.또한, 간단하고 신뢰성있는 single instance단위의 어플리케이션과 데몬을 코딩할수있게 만들어주며, 관련서비스가 실행되어야 할때 데몬과 어플리케이션이 실행될수있도록 도와준다. (즉, 데몬을 실현하는 시스템으로 이해)
D-Bus supplies both a system daemon (for events such as "new hardware device added" or "printer queue changed") and a per-user-login-session daemon (for general IPC needs among user applications). Also, the message bus is built on top of a general one-to-one message passing framework, which can be used by any two apps to communicate directly (without going through the message bus daemon). Currently the communicating applications are on one computer, or through unencrypted TCP/IP suitable for use behind a firewall with shared NFS home directories. (Help wanted with better remote transports - the transport mechanism is well-abstracted and extensible.)
The D-Bus low-level API reference implementation and protocol have been heavily tested in the real world over several years, and are now "set in stone." Future changes will either be compatible or versioned appropriately.
The low-level libdbus reference implementation has no required dependencies; the bus daemon's only *required* dependency is an XML parser (expat). Higher-level bindings specific to particular frameworks (Qt, GLib, Java, C#, Python, etc.) add more dependencies, but can make more assumptions and are thus much simpler to use. The bindings evolve separately from the low-level libdbus, so some are more mature and ABI-stable than others; check the docs for the binding you plan to use.
There are also some reimplementations of the D-Bus protocol for languages such as C#, Java, and Ruby. These do not use the libdbus reference implementation.
It should be noted that the low-level implementation is not primarily designed for application authors to use. Rather, it is a basis for binding authors and a reference for reimplementations. If you are able to do so it is recommended that you use one of the higher level bindings or implementations. A list of these can be found on the bindings page.
The list of projects using D-Bus is growing and they provide a wealth of examples of using the various APIs to learn from.
D-Bus is very portable to any Linux or UNIX flavor, and a port to Windows is in progress.
If you have any trouble with D-Bus or suggestions for improvement, bug reports and comments are very welcome.
Get on D-Bus today!