Kernel/Overview

This document gives you an overview on all kernel sources that Gentoo provides through Portage.

Introduction
As with everything else in Gentoo Linux, the philosophy of the Gentoo Kernel team is to give the user as much freedom of choice as possible. If you take a look at the output of  you see a large variety of kernels to choose from. This document will attempt to give a brief rundown of the goals of each of the patch sets that Gentoo provides and also explain the other kernel sources that are available.

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  kernel. is a kernel based on Linux 3.x, lightly patched to fix security problems, kernel bugs, and to increase compatibility with the more uncommon system architectures.

The  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
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 SELinux and grsecurity), together with stability/security-enhancements. Check http://www.gentoo.org/proj/en/hardened/ for more information.

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 includes a different scheduler, BFS, designed to keep systems responsive and smooth even when under heavy load. Support and information is available at http://kernel.kolivas.org and in  on.

git-sources
The  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 Linux Kernel Bug Tracker or LKML (Linux Kernel Mailing List).

Architecture dependent kernels
and  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.

Unsupported kernel packages
Now I'm going to try to briefly describe some of the other which you saw scroll by when you ran. Let's take them in alphabetical order. These kernels are provided as a courtesy only and the various patch sets are not supported by the Gentoo kernel team.

pf-sources
The  kernel brings together parts of several different kernel patches. It includes the BFS patchset from , the   patches, LinuxIMQ , and the BFQ I/O scheduler.

openvz-sources
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.

tuxonice-sources
The  (formerly   ) are patched with both genpatches which includes the patches found in gentoo-sources, and TuxOnIce which is an improved implementation of suspend-to-disk for the Linux kernel, formerly known as suspend2.

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.

vanilla-sources
The next kernel sources that many of you will probably be familiar with as Linux users are the. 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  instead.

Two versions of the kernel can be found under this package: 2.6 and 3.x.

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.

Architecture dependent kernels
was a 2.6 kernel designed to run on the Sony PlayStation 3 game console.

development-sources
, the official 2.6 kernel from kernel.org, can now be found under the  package.

gentoo-dev-sources
, a 2.6 kernel patched with bug, security and stability fixes, can now be found under the  package.

grsec-sources
The  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 , this package is no longer in Portage.

hardened-dev-sources
can now be found under the  package.

hppa-sources
was a 2.6 kernel with patches applied to improve hardware compatibility for the HPPA architecture. These patches have been developed and included in the mainline kernel. HPPA users can now run any recent kernel with no need for extra patches.

mm-sources
The  were based on the   and contained Andrew Morton's patch set. They includde the experimental and bleeding-edge features that were going to be included in the official kernel (or that were going to be rejected because they set your box on fire). They were known to be always moving at a fast pace and can change radically from one week to the other; kernel hackers used them as a testing ground for highly experimental new stuff.

rsbac-dev-sources
The  kernels can now be found under the   package.

rsbac-sources
was a 2.6-based kernel. It contained patches to use Rule Set Based Access Controls (RSBAC ). It has been removed due to lack of maintainers. Use  if you need additional security features.

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  package.

sh-sources
was a 2.6 kernel with patches applied to improve hardware compatibility for the SuperH architecture. These patches have been developed and included in the mainline kernel. SuperH users can now run any recent kernel with no need for extra patches.

sparc-sources
was a 2.4 kernel with patches applied to improve hardware compatibility for the SPARC architecture. These patches have been developed and included in the mainline kernel. SPARC users can now run any recent kernel with no need for extra patches.

uclinux-sources
The  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.

xen-sources
was a 2.6-based kernel that allowed running multiple operating systems on a single physical system. You can create virtual environments in which one or more guest operating systems run on aXen -powered host operating system.

The  patches were incorporated into the mainline Linux kernel as of version 3.0.

For more information on Xen and Gentoo, read the Gentoo Xen Guide.

zen-sources
was designed for desktop systems. It included code not found in the mainline kernel. The zen kernel had patches that added new features, supported additional hardware, and contained various tweaks for desktops.

Acknowledgements
We would like to thank the following authors and editors for their contributions to this guide:


 * Sven Vermeulen
 * Brandon Low
 * Daniel Drake
 * Carl Anderson
 * Jorge Paulo
 * Benny Chuang
 * Gregorio Guidi
 * Shyam Mani
 * Joshua Saddler