"On every Unix system there is one process with the special
process identifier 1. It is started by the kernel before all other
processes and is the parent process for all those other processes
that have nobody else to be child of. Due to that it can do a lot
of stuff that other processes cannot do. And it is also responsible
for some things that other processes are not responsible for, such
as bringing up and maintaining userspace during boot.
"Historically on Linux the software acting as PID 1 was the
venerable sysvinit package, though it had been showing its age for
quite a while. Many replacements have been suggested, only one of
them really took off: Upstart, which has by now found its way into
all major distributions.
"As mentioned, the central responsibility of an init system is
to bring up userspace. And a good init system does that fast.
Unfortunately, the traditional SysV init system was not
particularly fast.
"For a fast and efficient boot-up two things are crucial:
* To start less.
* And to start more in parallel.
"What does that mean? Starting less means starting fewer
services or deferring the starting of services until they are
actually needed."