When you're building your own kernel, you want the latest stable
release. Many distributions provide their own packages of kernel
sources, but these are rarely the most cutting-enge, recent
versions. The distribution packages have the advantage of being built
to be compatible with the compiler and other tools provided by the
distribution
(Chapter 3, Requirements for building and using the kernel
explains the importance
of their being compatible) but they may not end up providing the
functionality or performance you want. If you can create your own
environment with the latest kernel, compiler, and other tools, you
will be able to build exactly what you want. This chapter focuses on
determining which kernel sources to download, and how to obtain them.
In the past, the Linux kernel was split into only two trees, the
"development" branch and the "stable" branch. The development branch was
denoted by an odd number for the second release number, while the
stable branch used even numbers. So, as an example, the 2.5.25 release was
a development kernel, while the 2.4.25 release is a stable release.
But after the 2.6 series was created, the kernel developers decided to
abandon this method of having two separate trees, and declared that all
2.6 kernel releases would be considered "stable", no matter how quickly
development was happening. The few months between the major 2.6
releases would allow kernel developers the time to add new features and
then stabilize them in time for the next release. Combined with this, a
"-stable" kernel branch has been created that releases bugfixes and
security updates for the past kernel release, before the next major 2.6
release happens.
This is all best explained with some examples, illustrated in Figure 4.1, “Kernel development release cycle”.
The kernel team released the 2.6.17 kernel as a stable release. Then the
developers started working on new features and started releasing the
-rc versions as development kernels so that people could
help test and debug the changes. After everyone agreed that the
development release was stable enough, it was released as the 2.6.18 kernel.
This whole cycle usually takes about two to three months, depending on a
variety of factors.
While the development of the new features was happening, the
2.6.17.1, 2.6.17.2, and other stable kernel versions were released,
containing bug fixes and security updates.
If you wish to just use the latest kernel for your work, it is recommended that
you use the stable kernel releases. If you wish to help the kernel
developers test the features of the next kernel release and give them
feedback, use the development kernel release. For the purpose of this
chapter, we will assume that you are using a stable kernel release.