Chapter 13: Starting Up – The init Program
We looked at how the kernel boots up to the point where it launches the first program, init
, in Chapter 4, Configuring and Building the Kernel. In Chapter 5, Building a Root Filesystem, and Chapter 6, Selecting a Build System, we looked at creating root filesystems of varying complexity, all of which contained an init
program. Now, it is time to look
at the init
program in more detail and discover why it is so important to the rest of
the system.
There are many possible implementations of init
. I will describe the three main ones in this chapter: BusyBox init
, System V init
, and systemd
. For each one, I will give an overview of how it works and the types of systems it suits best. Part of this is balancing the trade-off between size, complexity, and flexibility. We will learn how to launch a daemon using both BusyBox init
and System V init
. We will also learn how to add a service to systemd
that does the same.
In this chapter,...