D-Bus is a system for low-latency, low-overhead, easy to use interprocess communication (IPC).
Since today, I replaced old style dbus-daemon with kdbus (in-kernel dbus implementation) and systemd Legacy D-Bus Protocol Compatibility Daemon.
It consists of two parts:
- kdbus – very basic dbus abilities, running in kernel
- systemd dbus compatibility layer is based on kdbus, running from user space
- Improved performance (even for emulated DBus)
- Slightly better boot time
- kdbus is better suited for embedded devices (such as automotive)
- Bigger frameworks will be soon migrated directly to kdbus
Do you want try it?
How to enable it?
Warning: it may change your network interface names, if you switching from systemd-208-r2!
USE="kdbus" emerge -av1 systemd::gentoo
UPDATE: Changes was merged from ixit overlay into official gentoo
Second thing – you need compiled KDBUS as module or directly as part of kernel.
Beware, you should use at least kernel 3.12 series or later.
How to be sure that kdbus works?
Module or kernel part:
# journalctl -b | grep kdbus
Dec 28 22:55:57 machine kernel: kdbus: initialized
# journalctl -b | grep D-Bus
Dec 28 22:55:57 machine systemd: Starting Legacy D-Bus Protocol Compatibility Socket.
Dec 28 22:55:57 machine systemd: Listening on Legacy D-Bus Protocol Compatibility Socket.