systemd (stylized lowercase) is a hydra.
In the old world, we had one piece of software for each little thing we wanted to do on a system. Time was handled by NTP, devices were handled by udev, and init was generally handled by SysV Init.
In the new world, we have systemd:
- System clock management can be handled by systemd-timesyncd.
- udev was merged into the systemd code base, forming systemd-udevd.
- Process initialization is handled by the core of systemd itself.
The list goes on.
Generally, systemd has been adopting other projects, or writing the same functionality into implementations of their own (such as systemd-timesyncd which is an NTP replacement.) However, the systemd suite is also modular, meaning that distributions can broadly choose which bits to adopt and use.
For us, the important job that systemd does is replace the traditional init system on distributions...