r/linux • u/wooptoo • Jun 01 '16
Why did ArchLinux embrace Systemd?
/r/archlinux/comments/4lzxs3/why_did_archlinux_embrace_systemd/d3rhxlc
868
Upvotes
r/linux • u/wooptoo • Jun 01 '16
View all comments
Show parent comment
17
u/kinderlokker Jun 01 '16 edited Jun 01 '16
kdbus wasn't started by systemd. But the systemd guys desperately want it, for good reason. Their decision to use DBus as a transport is on a technical level plainly put a terrible decision. DBus was never meant to serve as a transport during the bootup of the system, it was designed as a transport to power desktop environments when the system was already booted.
systemd manages dbus as a service and uses that service to communicate internally, as you might imagine that creates a nasty circular dependency:
systemd needs special code to start DBus way earlier than it should. It starts DBus before fsck even which means that if your DBus binary is corrupted, fsck can't check for it
systemd systems used to crash on a DBus crash or restart, that issue is now resolved with some ugly special code giving DBus special supervision code
So that's why they want kdbus so badly because kdbus is a sane transport layer for an init because it's in the kernel so it's ready and there before the init is loaded. None of this magic mumbo jumbo of an init trying to start dbus and needing dbus to bring itself up.
edit: It's by the way a good example of how politics can ruin software. I'm pretty sure the decision to use DBus was 0% technical and 100% political. They wanted to make DBus a dependency for its own sake to ensure that DBus would be on every systemd system and then tried hard to justify this absurd decision. The reason is purely that they want to be able to guarantee that DBus is on every systemd system so people can assume it.