GLT 2025 Submission: systemd's D-Bus Implementation, And Its Python ``asyncio`` Binding
=======================================================================================
.. sidebar:: Grazer Linuxtage
* `Grazer Linuxtage `__
* `Programm GLT 2025 `__
* `This talk on GLT 2025
`__
.. sidebar:: Talk notes
* :doc:`talk/index`
Abstract
````````
An overview of D-Bus, systemd, and systemd's own D-Bus implementation,
`sd-bus
`__. Less
slide show, more live coding in Python and `asyncio
`__.
Description
```````````
D-Bus is a broker-based interprocess communication mechanism which has
been used for ages in Linux's desktop environments like `GNOME
`__ or `KDE `__.
`systemd `__, the Linux init system and service
manager, likewise consists of many loosely coupled components. Since
systemd's inception, likewise, its components are using D-Bus to
communicate.
Over time, the systemd developers have become uncomfortable with the
existing D-Bus implementation they were using. They created another
implementation, `sd-bus
`__,
tailored towards systemd's needs - minimal and fast.
This talk gives an overview of D-Bus and its concepts, and then shows
how sd-bus is used to implement one's own interfaces and
components. Out of its many language bindings, we will use Python to
implement a use case, just to show how simple this is.
You will probably like the use of `asyncio
`__ in the talk. For
those of you who don't know what this is and what problems it solves,
I'll try to explain, however hard that may be. If you are interested:
my last year's talk `Python, asyncio, libgpiod, and Pointless Blinking
`__
contains a deeper asyncio introduction.