NOTE
Linux is very flexible and can be booted from multiple images on a CD-
ROM, over a network using PXE (pronounced “pixie”) or NetBoot, or on a
headless server with the console display sent over a serial or network
connection. Work is even under way at www.coreboot.org to create a
special Linux BIOS that will expedite the boot process because Linux does
not need many of the services offered by the typical BIOS.
This kind of flexibility enables Linux to be used in a variety of ways, such
as for remote servers or diskless workstations, which are not generally seen
in personal home use.
Loading the Linux Kernel
In a general sense, the kernel manages the system resources. As the user, you
do not often interact with the kernel, but instead you interact with the
applications you are using. Linux refers to each application as a process, and
the kernel assigns each process a number called a process ID (PID).
Traditionally, the Linux kernel loads and runs a process named init, which
is also known as the “ancestor of all processes” because it starts every
subsequent process. The traditional init system was SysVinit. It has been
replaced by newer options. One of these options was Upstart, which was
written by Ubuntu developers and made available for any distribution to use.
Upstart was replaced by systemd as of Ubuntu 15.04. This chapter walks
through the traditional SysVinit method first and then provides details on
Upstart and systemd.
The next step of the boot process traditionally begins with a message that the
Linux kernel is loading and a series of messages that are printed to the screen,
giving the status of each command. A failure should display an error message.
The quiet option may be passed to the kernel at boot time to suppress many
of these messages. Ubuntu does not display these messages by default but
instead uses a boot process created by the Fedora/Red Hat developers called
Plymouth that is fast and incorporates a beautiful boot screen.
If the boot process were halted at this point, the system would just sit idle,
and the screen would be blank. To make the system useful for users, you need
to start the system services. Those services are some of the applications that
enable you to interact with the system.