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.
Linux 2.4 is maintained by Willy Tarreau. Linus Torvalds, the original creator of Linux, handed maintainership of the Linux 2.4 branch over to Marcelo Tosatti when Linus went off to start developing the newer 2.6 kernel tree. Marcelo did a fine job of keeping 2.4 stable and secure, and has since handed over maintainership to Willy. Note that only security and bug fixes are accepted into the 2.4 kernel tree. Actual development happens in the Linux 2.6 kernel tree.
Linux 2.6 is maintained by Andrew Morton, who works closely with Linus Torvalds to deliver a fast, powerful, and feature-packed Linux kernel. Development is happening at incredible pace and this kernel tree is now very mature.
Some of the more uncommon system architectures are not fully compatible with Linux 2.6, and some users prefer the tried-and-tested Linux 2.4 kernel. However, please note that Linux 2.4 is currently not being developed further - only bug and security fixes are being included in the newer releases. If you are able to, we suggest that you upgrade to Linux 2.6. You may find the migration document useful.
2. Supported kernel packages
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.
General purpose: gentoo-sources
For most users, we recommend the gentoo-sources kernel. Since the 2005.0 release, Gentoo Linux uses 2.6 as the default kernel. Unless you are specifically using the 2.4 profile, gentoo-sources will be a 2.6 kernel on most architectures.
gentoo-sources is a kernel based on Linux 2.6, lightly patched to fix security problems, kernel bugs, and to increase compatibility with the more uncommon system architectures. Linux 2.6 is the current official stable kernel tree, and development is progressing rapidly. For highest performance, best hardware support, and its large new feature set, we recommend 2.6 over its older 2.4 counterpart.
The 2.4 gentoo-sources kernel patches are similar to those included in its 2.6 counterpart, plus a number of patches designed to add functionality and improve performance.
The gentoo-sources package absorbs 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.
For servers: hardened-sources and rsbac-sources
hardened-sources is based on the official Linux kernel and is targeted at our users running Gentoo on server systems. It provides patches for the various subprojects of Gentoo Hardened (such as support for LSM/SELinux and grsecurity), together with stability/security-enhancements. Like gentoo-sources it comes in 2.6 and 2.4 versions. Check http://www.gentoo.org/proj/en/hardened/ for more information.
rsbac-sources contains patches to use Rule Set Based Access Controls (RSBAC) and comes in 2.4 and 2.6 flavours. It is maintained by the RSBAC project, a sub-project of Gentoo Hardened.
Important: These kernels provide powerful patches for enhanced security. Please read the documentation before you use them.
Architecture dependent kernels
hppa-sources, mips-sources, sh-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.
3. Unsupported kernel packages
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. These kernels are provided as a courtesy only and the various patch sets are not supported by the Gentoo team.
ck-sources is Con Kolivas's kernel patch set. This patchset is primarily designed to improve system responsiveness and interactivity and is configurable for varying workloads (from servers to desktops). The patchset is also quite mature and has been put through numerous iterations of development and tuning. The emphasis of each release is on stability and security. Support and information is available at http://kernel.kolivas.org and in #ck on irc.oftc.net.
The git-sources package tracks daily snapshots of the upstream development kernel tree. You should run these kernels if you are interested in kernel development or testing. Bugreports should go to the ABC謀殺案 or LKML (Linux Kernel Mailing List).
The mm-sources are based on the vanilla-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 vanilla-sources are for wussies, then try out mm-sources. Be warned that this kernel is highly experimental and doesn't always work as expected.
OpenVZ is a server virtualization solution built on Linux. OpenVZ creates isolated, secure virtual private servers (VPSs) or virtual environments on a single physical server enabling better server utilization and ensuring that applications do not conflict. For more information, see http://www.openvz.org.
The suspend2-sources are patched with both genpatches which includes the patches found in gentoo-sources, and Software Suspend 2 which is a new and improved implementation of suspend-to-disk for the Linux kernel.
This kernel is recommended for laptop users who often rely on being able to suspend their laptop and resume work elsewhere.
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.
The next kernel sources that many of you will probably be familiar with as Linux users are the vanilla-sources. These are the official kernel sources released on http://www.kernel.org/. Please note that we do not patch these kernels at all - these are purely for people who wish to run a completely unmodified Linux kernel. We recommend that you use gentoo-sources instead.
Similar to gentoo-sources, two versions of the kernel can be found under this package: 2.4 and 2.6.
4. Previously provided kernel packages
aa-sources was a heavily modified kernel with all kinds of patches. The upstream maintainer has stopped releasing kernel patchsets, this package was removed as it went out of date.
alpha-sources was a 2.4 kernel with patches applied to improve hardware compatibility for the Alpha architecture. These patches have been developed and included in the mainline kernel. Alpha users can now run any recent kernel with no need for extra patches.
development-sources, the official 2.6 kernel from kernel.org, can now be found under the vanilla-sources package.
gentoo-dev-sources, a 2.6 kernel patched with bug, security and stability fixes, can now be found under the gentoo-sources package.
The grsec-sources kernel source used to be patched with the latest grsecurity updates (grsecurity version 2.0 and up) which included, amongst other security-related patches, support for PaX. As grsecurity patches are included in hardened-sources, this package is no longer in Portage.
hardened-dev-sources can now be found under the hardened-sources package.
The rsbac-dev-sources kernels can now be found under the rsbac-sources package.
selinux-sources, a 2.4 kernel including lots of security enhancements, has been obsoleted by security development in the 2.6 tree. SELinux functionality can be found in the hardened-sources package.
The uclinux-sources are meant for CPUs without MMUs as well as embedded devices. For more information, see http://www.uclinux.org. Lack of security patches as well as hardware to test on were the reasons this is no longer in the tree.
win4lin-sources were patched to support the userland win4lin tools that allow Linux users to run many Microsoft Windows (TM) applications at almost native speeds. This was removed due to security issues.
The contents of this document are licensed under the Creative Commons - Attribution / Share Alike license.