Arriving at SystemD

The Linux kernel only launches a single userspace process as Process ID 1. PID 1 is responsible for starting everything else. It has a few special responsibilities, including handling orphaned processes and some signals.

The overall approach was light and highly modular. The init program was a script that ran other scripts. In the early days, while figuring things out, it made sense. But it also not a mature nor optimized approach.

Eventually it became the sysvinit or init binary. It would read /etc/inittab which would say what to do at various run levels. Each run level was a script in /etc/rc.d/ or /etc/init.d/ which would launch more specialized scripts. Each distribution had its own scripts. And then those would launch binaries.

Now system daemon (systemd, similar to sshd and httpd) is a Linux specific replacement of init and its scripts. A suite of about 150 binaries that share infrastructure. Some components are practically related while others round out the design.

systemd proposed that the cost of low level OS fragmentation outweighs the benefits of choice. Most distributions eventually agreed. They use the general components without feeling obligated to use the less common. Desktop environments also use systemd. Like other successful infrastructure, the cost of diverging from systemd is now high so perhaps while better, it’s also for the best that it took so long to get here. Linus Torvalds is slightly positive.

It’s still growing fast and releasing often as of 2026! systemd is Linux standardization success story.

Interesting Commands

To see what distribution and kernel are in use:

hostnamectl