Sharing this blog post because I liked reading it. Nice photos and images and shows lots of options. The section about Gentoo Linux suggests it is unclear whether Gentoo uses Systemd. From what I’ve seen after tinkering with a Gentoo container last week is that Systemd is an option for “make world” but not the default.
Systemd breaks a Unix principle, namely “Do only one thing and do it well”. It sort of envades into areas of the system where the init system previously did not. (Some say systemd isn’t an init system.)
But systemd seems to boot faster than previous init systems because it uses compiled tools instead of scripts.
And yes, the casual end user (in contrast to a sysadmin or system programmer) probably shouldn’t notice any difference with or without systemd.
I’m not so sure about this when just talking about systemd core. For the most part it starts and manages services. It has grown a “bit” to help that dependency graph be complete and reliable (for example mounts and devices so that services that use them can be started after the devices are online) but I think for the large part it is still doing “one thing”. Sure, it would be nice if those were split into separate processes and systemd had some sort of interface for external things but that would arguably be more complex as now you need to worry about multiple interacting processes.
I do agree that systemd brought a lot of things under it’s umbrella, and the systemd repo is quite bloated. For example journald, systemd-resolved and much more. But that is kinda like saying that GNU doesn’t follow the unix philosophy because they have a lot of projects.
This is such a tiny part of the reason that systemd boots faster that IMHO it isn’t even worth mentioning.
The primary reason that systemd boots faster is that it has proper dependency management. From the simple tracking dependencies to the much power powerful socket activation that allows dependent services to start up in parallel (at least to some degree). Socket activation can also help lazy-start services that aren’t needed right away freeing up resources for starting critical services faster.