<?xml version="1.0" encoding="UTF-8"?>
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/gentoo-kernel.xml,v 1.59 2010/04/18 04:30:46 nightmorph Exp $ -->
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">

<guide>
<title>Gentoo Linux Kernel Guide</title>

<author title="Author">
  <mail link="swift@gentoo.org">Sven Vermeulen</mail>
</author>
<author title="Contributor">
  <mail link="lostlogic@gentoo.org">Brandon Low</mail>
</author>
<author title="Editor">
  <mail link="dsd@gentoo.org">Daniel Drake</mail>
</author>
<author title="Editor">
  <mail link="carl@gentoo.org">Carl Anderson</mail>
</author>
<author title="Editor">
  <mail link="peesh@gentoo.org">Jorge Paulo</mail>
</author>
<author title="Editor">
  <mail link="bennyc@gentoo.org">Benny Chuang</mail>
</author>
<author title="Editor">
  <mail link="greg_g@gentoo.org">Gregorio Guidi</mail>
</author>
<author title="Editor">
  <mail link="fox2mike@gentoo.org">Shyam Mani</mail>
</author>
<author title="Editor">
  <mail link="nightmorph@gentoo.org">Joshua Saddler</mail>
</author>

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

<!-- The content of this document is licensed under the CC-BY-SA license -->
<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
<license/>

<version>1.25</version>
<date>2010-04-17</date>

<chapter>
<title>Introduction</title>
<section>
<body>

<p>
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 <c>emerge -s sources</c>
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.
</p>

<p>
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.
</p>

<p>
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.
</p>

<p>
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 <uri
link="/doc/en/migration-to-2.6.xml">migration document</uri> useful.
</p>

</body>
</section>
</chapter>

<chapter>
<title>Supported kernel packages</title>
<section>
<title>genkernel</title>
<body>

<p>
<c>Genkernel</c> 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.
</p>

<p>
For more information, please read the <uri link="/doc/en/genkernel.xml">Gentoo
Linux Genkernel Guide</uri>.
</p>

</body>
</section>
<section>
<title>General purpose: gentoo-sources</title>
<body>

<p>
For most users, we recommend the <c>gentoo-sources</c> kernel.
<c>gentoo-sources</c> 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.
</p>

<p>
The <c>gentoo-sources</c> 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.
</p>

</body>
</section>
<section>
<title>For servers: hardened-sources</title>
<body>

<p>
<c>hardened-sources</c> 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 <uri
link="http://www.nsa.gov/selinux/">LSM/SELinux</uri> and <uri
link="http://grsecurity.net">grsecurity</uri>), together with
stability/security-enhancements. Check
<uri>http://www.gentoo.org/proj/en/hardened/</uri> for more information.
</p>

<impo>
This kernel provides powerful patches for enhanced security. Please read the
<uri link="/proj/en/hardened/">documentation</uri> before you use it.
</impo>

</body>
</section>
<section>
<title>Architecture dependent kernels</title>
<body>

<p>
<c>cell-sources</c>, <c>mips-sources</c>, <c>sparc-sources</c>, and
<c>xbox-sources</c> 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.
</p>

</body>
</section>
</chapter>

<chapter>
<title>Unsupported kernel packages</title>
<section>
<body>

<p>
Now I'm going to try to briefly describe some of the other
<path>sys-kernel/*-sources</path> which you saw scroll by when you ran
<c>emerge -s sources</c>. 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.
</p>

</body>
</section>
<section>
<title>git-sources</title>
<body>

<p>
The <c>git-sources</c> 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 <uri
link="http://bugzilla.kernel.org/">Linux Kernel Bug Tracker</uri> or LKML
(Linux Kernel Mailing List).
</p>

</body>
</section>
<section>
<title>mm-sources</title>
<body>

<p>
The <c>mm-sources</c> are based on the <c>vanilla-sources</c> 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.
</p>

<p>
If you really want to live on the edge and you think
<c>vanilla-sources</c> are for wussies, then try out
<c>mm-sources</c>. Be warned that this kernel is highly experimental and
doesn't always work as expected.
</p>

</body>
</section>
<section>
<title>openvz-sources</title>
<body>

<p>
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
<uri>http://www.openvz.org</uri>.
</p>

</body>
</section>
<section>
<title>tuxonice-sources</title>
<body>

<p>
The <c>tuxonice-sources</c> (formerly <c>suspend2-sources</c>) are patched with
both genpatches which includes the patches found in gentoo-sources, and <uri
link="http://www.tuxonice.net">TuxOnIce</uri> which is an improved
implementation of suspend-to-disk for the Linux kernel, formerly known as
<e>suspend2</e>.
</p>

<p>
This kernel is recommended for laptop users who often rely on being able
to suspend their laptop and resume work elsewhere.
</p>

</body>
</section>
<section>
<title>usermode-sources</title>
<body>

<p>
<c>usermode-sources</c> 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 <uri>http://user-mode-linux.sourceforge.net</uri>.
</p>

<p>
For more information on UML and Gentoo, read the
<uri link="/doc/en/uml.xml">Gentoo UML Guide</uri>.
</p>

</body>
</section>
<section>
<title>vanilla-sources</title>
<body>

<p>
The next kernel sources that many of you will probably be familiar with as Linux
users are the <c>vanilla-sources</c>. These are the official kernel sources
released on <uri>http://www.kernel.org/</uri>. 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 <c>gentoo-sources</c>
instead.
</p>

<p>
Two versions of the kernel can be found under this package: 2.4 and 2.6.
</p>

</body>
</section>
<section>
<title>zen-sources</title>
<body>

<p>
<c>zen-sources</c> is designed for desktop systems. It includes code not found
in the mainline kernel. The zen kernel has patches that add new features,
support additional hardware, and contain various tweaks for desktops.
</p>

</body>
</section>
<section>
<title>ck-sources</title>
<body>

<p>
<c>ck-sources</c> 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
<uri>http://kernel.kolivas.org</uri> and in <c>#ck</c> on <c>irc.oftc.net</c>.
</p>

</body>
</section>
</chapter>

<chapter>
<title>Previously provided kernel packages</title>
<section>
<title>aa-sources</title>
<body>

<p>
<c>aa-sources</c> 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.
</p>

</body>
</section>
<section>
<title>alpha-sources</title>
<body>

<p>
<c>alpha-sources</c> 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.
</p>

</body>
</section>
<section>
<title>development-sources</title>
<body>

<p>
<c>development-sources</c>, the official 2.6 kernel from kernel.org, can now
be found under the <c>vanilla-sources</c> package.
</p>

</body>
</section>
<section>
<title>gentoo-dev-sources</title>
<body>

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

</body>
</section>
<section>
<title>grsec-sources</title>
<body>

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

</body>
</section>
<section>
<title>hardened-dev-sources</title>
<body>

<p>
<c>hardened-dev-sources</c> can now be found under the <c>hardened-sources</c>
package.
</p>

</body>
</section>
<section>
<title>hppa-sources</title>
<body>

<p>
<c>hppa-sources</c> 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.
</p>

</body>
</section>
<section>
<title>rsbac-dev-sources</title>
<body>

<p>
The <c>rsbac-dev-sources</c> kernels can now be found under the
<c>rsbac-sources</c> package.
</p>

</body>
</section>
<section>
<title>rsbac-sources</title>
<body>

<p>
<c>rsbac-sources</c> was a 2.6-based kernel. It contained patches to use Rule
Set Based Access Controls (<uri link="http://www.rsbac.org">RSBAC</uri>). It has
been removed due to lack of maintainers. Use <c>hardened-sources</c> if you need
additional security features.
</p>

</body>
</section>
<section>
<title>selinux-sources</title>
<body>

<p>
<c>selinux-sources</c>, 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 <c>hardened-sources</c> package.
</p>

</body>
</section>
<section>
<title>sh-sources</title>
<body>

<p>
<c>sh-sources</c> 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.
</p>

</body>
</section>
<section>
<title>uclinux-sources</title>
<body>

<p>
The <c>uclinux-sources</c> are meant for CPUs without MMUs as well as embedded
devices. For more information, see <uri>http://www.uclinux.org</uri>. Lack of
security patches as well as hardware to test on were the reasons this is no
longer in the tree.
</p>

</body>
</section>
<section>
<title>win4lin-sources</title>
<body>

<p>
<c>win4lin-sources</c> 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.
</p>

</body>
</section>
</chapter>
</guide>
