D-Bus

Implement a message bus system that passes data between processes.

Description:

Desktop Bus (D-Bus) is a message-passing system developed as part of the freedesktop.org project. It provides an interprocess communication mechanism that allows processes and their clients to talk to each other over a single, shared virtual channel. Processes connected to a bus don't know how it is internally implemented, but the D-Bus specification guarantees that all processes connected to the bus can use it to communicate with each other.

The QNX Neutrino implementation of D-Bus was created using D-Bus version 1.10.8.

Starting and stopping D-Bus

Because QNX Neutrino does not provide services that automatically start or stop the system or session bus, ensure that your D-Bus implementation adds this functionality and all related tasks. For example, an implementation needs to clean up files such as /var/run/dbus/pid after it stops the dbus-daemon for the system bus.

For the session bus, mechanisms that perform the following tasks are required:
  • Start the session bus when a login session starts
  • Terminate the session bus when a login session ends
  • Isolate the instance of the dbus-daemon in the login session

Supported bindings

D-Bus for QNX Neutrino supports bindings for both C language and Qt version 5.6.

It does not support GLib or Python D-Bus bindings.

File descriptor passing

Support for file descriptor (FD) passing is not includded in the QNX Neutrino implementation of D-Bus. (For example, the FD passing compiler option was removed). Ensure that any applications that depend on FD passing are modified before you attempt to use them with D-Bus for QNX Neutrino.

Security

D-Bus has been a point of failure in several high-profile hacking events. Ensure that you implement D-Bus services in a secure way that does not expose root privilege. Security measures are especially important for access to system service configuration files, which attackers can manipulate to launch arbitrary applications.

Configuration files

The default locations of some the configuration files in D-Bus 1.10.8 may be different from earlier versions of D-Bus.

The standard configurations for the system-wide and per-session message bus are located in the files /usr/share/dbus-1/system.conf and /usr/share/dbus-1/session.conf. You can use session.conf and system.conf to add additional configuration found in other files. For example, you can use <include> to reference files system-local.conf or session-local.conf in /etc/dbus-1, which contain local overrides.

For information about how the QNX Neutrino implementation uses configuration files compared to versions of D-Bus other 1.10.8, see the release notes provided with the source code at https://dbus.freedesktop.org/releases/dbus/.

Documentation

D-Bus documentation provided by freedesktop.org includes overview, tutorial, and reference information:

Contributing author:

freedesktop.org