other Linux distributions, includes a kernel packaged with add-on software
that interacts with the kernel so that the user can interface with the system in a
meaningful manner.
The system utilities and user programs enable computers to become valuable
tools to a user.
THE FIRST LINUX KERNEL
In 1991, Linus Torvalds released version 0.99 of the Linux kernel as the
result of his desire for a powerful, UNIX-like operating system for his Intel
80386 personal computer. Linus wrote the initial code necessary to create
what is now known as the Linux kernel and combined it with Richard
Stallman’s GNU tools. Indeed, because many of the Linux basic system
tools come from the GNU Project, many people refer to the operating
system as GNU/Linux. Since then, Linux has benefited from thousands of
contributors adding their talents and time to the Linux project. Linus still
maintains the kernel, deciding what will and will not make it into the kernel
as official releases, known to many as the vanilla or Linus Linux kernel.
The Linux Source Tree
The source code for the Linux kernel is kept in a group of directories called
the kernel source tree. The structure of the kernel source tree is important
because the process of compiling (building) the kernel is automated; it is
controlled by scripts interpreted by the make application. These scripts,
known as makefiles, expect to find the pieces of the kernel code in specific
places; if they don’t find them, they will not work. You learn how to use
make to compile a kernel later in this chapter.
It is not necessary for the Linux kernel source code to be installed on your
system for the system to run or for you to accomplish typical tasks such as
working with email, browsing the web, or using a word processing program.
It is necessary that the kernel sources be installed, however, if you want to
compile a new kernel. In the next section, you learn how to install the kernel
source files and how to set up the special symbolic link required. That link,
/usr/src/linux-4.15.3, where the numbers at the end match the
release version of the kernel installed on your system, is what we use to refer
to the directory of the kernel source tree as we examine the contents of the
kernel source tree.
NOTE
The pace of change in the Linux kernel has accelerated, much like the rest