init vs systemd

 init

In Unix-based computer operating systems, init (short for initialization) is the first process started during booting of the computer system.

Init is a daemon process that continues running until the system is shut down. It is the direct or indirect ancestor of all other processes and automatically adopts all orphaned processes.

Init is started by the kernel using a hard-coded filename, and if the kernel is unable to start it, a kernel panic will result.

Init is typically assigned process identifier 1.

 

 systemd

systemd is a system management daemon designed exclusively for the Linux kernel.

systemd’s initialization instructions for each daemon are recorded in a declarative configuration file rather than a shell script. For inter-process communication, systemd makes Unix domain sockets and D-Bus available to the running daemons. Because systemd tracks processes using Linux cgroups instead of process identifiers (PIDs), daemons cannot “escape” systemd; not even by double-forking. Systemd is also capable of aggressive parallelization.