Gentoo Linux Kernel Guide
As with everything else in Gentoo Linux, the philosophy of the Gentoo
Kernel team is to give you, the user, as much freedom of choice as
possible. If you take a look at the output of emerge -s sources
you see a large variety of kernels to choose from. In this document,
I will attempt to give you a brief rundown of the goals of each of the
patch sets, which we at Gentoo design, and also explain the other kernel
sources we make available to you.
2. The Choices, Part I
Genkernel is a kernel toolset that can be used to autodetect your
hardware and configure your kernel automatically. This is usually recommended
for users who do not feel comfortable about compiling a kernel manually.
For more information, please read the Gentoo
Linux Genkernel Guide.
For most users, the recommended kernel sources are the
gentoo-sources. The gentoo-sources package contains various
kernel patches, designed to improve user experience with respect to different
areas. Speaking of security: you can find support for
grsecurity, together with other
security enhancements and, naturally, all the recent fixes for known
vulnerabilities. The included patches deal also with performance
(including tweaks for desktop usage and support for recent hardware) and
features (supermount, bootsplash, the latest NTFS drivers, and more).
The gentoo-sources (together with gentoo-dev-sources) absorb
most of the resources of the Gentoo kernel team. They are brought to you by a
group of talented developers, which can count on the expertise of popular
kernel hacker Greg Kroah-Hartman, maintainer of udev and responsible for the
USB and PCI subsystems of the official linux kernel.
The next kernel sources that many of you will probably be familiar with
as Linux users are the vanilla-sources. These are the official 2.4
kernel sources released on http://www.kernel.org/, maintained
(contrary to popular belief) not by Linus Torvalds himself, but by Marcelo
Tosatti. Linus is the leader of active kernel development, but as he is
only one man, he passes off the maintenance of the stable 2.4 kernel branch
to someone he can trust to handle it once it has stabilized. Thus, Alan
Cox became the maintainer of the Linux-2.2 kernel series and Marcelo
Tosatti became the maintainer of the Linux-2.4 kernel series. This is
what all the other patch sets in the 2.4 series are based on. Marcelo has
been doing an outstanding job with its maintenance and it can be
counted on for stability and up-to-date (if not bleeding edge) hardware
vanilla-sources are probably the most stable sources available
since they are the most tested and all possible kernel sources are based
on them. If you don't need any of the extras that the other kernels supply
then the vanilla-sources are your thing.
The gentoo-dev-sources ebuild includes the most up-to-date 2.6 kernel
with Gentoo's optimized performance patches.
The development-sources ebuild provides the stable 2.6 Linux kernel. As
opposed to what the name might suggest, this kernel source is completely stable
and production-ready. This is the official 2.6 kernel released on
hardened-sources provides patches for the various subprojects of
Gentoo Hardened (such as support for LSM/SELinux and GRSecurity), together
with stability/security-enhancements. Check
http://www.gentoo.org/proj/en/hardened/ for more information.
The following USE-flags can be set to select optional patches:
||Substitute grSecurity with SELinux support
hardened-dev-sources use the 2.6 kernel with the patches provided by the
various subprojects of Gentoo Hardened.
Architecture dependent kernels
alpha-sources, hppa-sources, hppa-dev-sources,
ia64-sources, mips-sources, ppc-sources,
pegasos-sources, pegasos-dev-sources, sparc-sources
and xbox-sources are, as their names suggest, patched to run best on
specific architectures. They also contain some of the patches for hardware and
features support from the other patch sets mentioned above and below. Kernel
sources that contains a "-dev-" means that the sources use the 2.6 kernel
instead of the 2.4 kernel.
The compaq-sources provide RedHat's kernel sources for Alpha,
maintained by Compaq.
3. The Choices, Part II
Now I'm going to try to briefly describe some of the other
sys-kernel/*-sources which you saw scroll by when you ran
emerge -s sources. Lets take them in alphabetical order.
First we have aa-sources. This is Andrea Arcangeli's patch set.
Andrea is known as an amazing coder by many other kernel hackers. His
kernel patch set has some of the most aggressively tuned VM (Virtual
Memory) patches known to mankind.
It also provides User Mode Linux support (check out our
UML Guide for more information) and
the latest TUX Webserver (an in-kernel webserver).
If you have Memory Management troubles with other kernels,
aa-sources can be your solution. If you want to optimize Linux's
Memory Management for your system, aa-sources is definitely
what you need.
for more information about all the patches in these kernel sources.
ck-sources is Con Kolivas's kernel patch set. This kernel is
HIGHLY tuned for desktop performance at the expense of
throughput and some of the scheduler's ability to prioritize
applications. Con Kolivas benchmarks kernels to find the best
combination of features for desktop use. See
http://kernel.kolivas.org for more information on Con and his
The grsec-sources kernel source is patched with the latest GRSecurity
updates (GRSecurity version 2.0 and up) which includes, amongst other
security-related patches, support for PaX.
The mm-sources are based on the development-sources and contain
Andrew Morton's patch set. They include the experimental and bleeding-edge
features that are going to be included in the official kernel (or that are
going to be rejected because they set your box on fire). They are known to be
always moving at a fast pace and can change radically from one week to the
other; kernel hackers use them as a testing ground for new stuff.
If you really want to live on the edge and you think
development-sources are for wussies, then try out
The openmosix-sources are patched to support the openMosix system
(like MOSIX but Open Source). For more information see
The pac-sources kernel tree is patched with Bernhard Rosenkraenzer's
selinux-sources from http://www.nsa.gov/selinux are
patches for the security conscious to support the LSM (Linux Security
Modules) and the Flask Security Architecture.
usermode-sources are the User Mode Linux kernel patches. This
kernel is designed to allow Linux to run within Linux to run within Linux
to ... User Mode Linux is intended for testing and virtual server support.
For more information about this amazing tribute to the stability and
scalability of Linux, see http://user-mode-linux.sourceforge.net.
For more information on UML and Gentoo, read the
Gentoo UML Guide.
win4lin-sources are patched to support the userland win4lin tools
that allow Linux users to run many Microsoft Windows (TM) applications
at almost native speeds. See http://www.netraverse.com/ for more
wolk-sources contains the Working Overloaded Linux Kernel from
http://sourceforge.net/projects/wolk. This kernel contains
many patches of a wide variety, all combined into the kernel with
extreme care. This allows you to configure nearly every one into and out
of the kernel at compile time -- so the kernel will work with nearly any
combination of the patches.
If you need a certain combination of patches that you cannot find in other
kernel sources, WOLK is definitely worth a shot.
The contents of this document are licensed under the Creative Commons - Attribution / Share Alike license.