D-Bus is a message bus system -- a simple way for applications to talk to one another. In addition to inter-process communication, D-Bus helps coordinate the 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. It 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. The transport mechanism is well-abstracted and extensible.