[systemd-devel] Some Questions About Systemd and Dbus-daemon

Lennart Poettering lennart at poettering.net
Tue Mar 31 08:40:11 UTC 2020


On Mo, 30.03.20 21:28, 海阔天空 (858293230 at qq.com) wrote:

> Hi everyone,
>
>
> I have some questions and I'd like to know if you can help to answer them.
>
>
> 1. What is the relationship among systemd、dbus(libdbus,dbus-daemon)
> and dbus-broker?

dbus-broker and dbus-daemon are two different implementations of the
same thing: a D-Bus message broker daemon. Pick one.

systemd needs a D-Bus message broker to operate sanely. (in very
limited setups, most early boot envs, you can get away with no dbus
broker, but it's not realistic in anything non-trivial).

> 2. Does systemd rely on dbus-broker(dbus-daemon) or vice versa?

Yes. systemd as the dbus broker if your choice have a symbiotic
relationship: systemd starts the dbus daemon, and connects to it as
one of its first clients, and dbus daemon uses systemd to activate
services if needed.

> 3. Is org.freedesktop.DBus generated first or is dbus-broker started
> first?

org.freedesktop.DBus is a synthetic service that is impemented by the
broker daemon of your choice, internally, as part of the D-Bus
protocol. it always exists as long as the broker is running. See dbus spec.

> 4. Does org.freedesktop.DBus rely on dbus-broker or vice versa?

It's an implementation detail of a dbus broker daemon. it is how the
broker daemon exposes its own APIs to clients.

> 5. What is the usage of dbus.socket?

It's the socket unit that encapsulates the AF_UNIX socket clients use
to communicate with the dbus broker daemon.

> 6. If I use systemd and dbus-broker only, does this mean that I can
> abandon dbus(libdbus,dbus-daemon) instead of rely on it?

yes. Pick either dbus-daemon or dbus-broker. They do the same thing.

Note that some other apps link to libdbus though, hence it's unlikely
you can totally give up on the codebase of libdbus/dbus-daemon.

> 7. I'd love to know the relationship of systemd and dbus, also the
> internals of systemd. Is there any materials you can share?

Well, there are the sources of systemd. It's very low-level stuff,
there are no explicit docs about this.

Lennart

--
Lennart Poettering, Berlin


More information about the systemd-devel mailing list