<?xml version="1.0" encoding="UTF-8"?>
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/gentoo-kernel.xml,v 1.27 2005/04/26 03:11:23 vapier Exp $ -->

<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
<guide link="/doc/en/gentoo-kernel.xml">
<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>

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

<license/>

<version>1.4</version>
<date>2005-04-25</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>

</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. Since the 
2005.0 release, Gentoo Linux uses 2.6 as the default kernel. Unless you are 
specifically using the 2.4 profile, <c>gentoo-sources</c> will be a 2.6 kernel 
on <e>most</e> architectures.
</p>

<p>
<c>gentoo-sources</c> is a kernel based on Linux 2.6, with various kernel
patches included 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.
</p>

<p>
Some of the more uncommon system architectures are not fully compatible with
Linux 2.6, and some users prefer to the tried-and-tested Linux 2.4 kernel;
for this reason we provide <c>gentoo-sources</c> (the 2.4 version). The 
patches included in this kernel are similar to those included in its 2.6 
counterpart, plus a number of patches designed to add functionality and 
improve performance. 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="http://www.gentoo.org/doc/en/migration-to-2.6.xml">migration
document</uri> useful.
</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>Plain kernels: 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.
</p>

<p>
Similar to <c>gentoo-sources</c>, two versions of the kernel can be found 
under this package: 2.4 and 2.6.
</p>

<p>
Linux 2.4 is maintained by Marcelo Tosatti. Linus Torvalds, the original
creator of Linux, handed maintainership of the Linux 2.4 branch over to
Marcelo when Linus went off to start developing the newer 2.6 kernel tree.
Marcelo has done a fine job of keeping 2.4 stable and secure, and is now
only accepting security and bug fixes 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>

</body>
</section>

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

<p>
<c>hardened-sources</c> is based on Linux 2.4 and is targetted 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. Check
<uri>http://www.gentoo.org/proj/en/hardened/</uri> for more information.
</p>

<p>
<c>hardened-dev-sources</c> serves the same purpose as <c>hardened-sources</c>
but is based on the newer Linux 2.6 kernel base.
</p>

<p>
The following USE-flags can be set to select optional patches:
</p>

<table>
<tr><th>Flags</th><th>Description</th></tr>
<tr><ti>selinux</ti><ti>Substitute grSecurity with SELinux support</ti></tr>
</table>

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

<p>
<c>alpha-sources</c>, <c>hppa-sources</c>, <c>hppa-dev-sources</c>,
<c>mips-sources</c>, <c>pegasos-dev-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. A "-dev-" in the name of a kernel package means that
the sources use the 2.6 kernel instead of the 2.4 kernel.
</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>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 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 <uri>http://kernel.kolivas.org</uri> and in 
<c>#ck</c> on <c>irc.oftc.net</c>.
</p>

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

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

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

<p>
The <c>mm-sources</c> are based on the <c>development-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>development-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>openmosix-sources</title>
<body>

<p>
The <c>openmosix-sources</c> are patched to support the openMosix system 
(like MOSIX but Open Source).  For more information see 
<uri>http://www.openmosix.org</uri>.
</p>

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

<p>
<c>selinux-sources</c> from <uri>http://www.nsa.gov/selinux</uri> are 
patches for the security conscious to support the LSM (Linux Security 
Modules) and the Flask Security Architecture.
</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>win4lin-sources</title>
<body>

<p>
<c>win4lin-sources</c> are patched to support the userland win4lin tools 
that allow Linux users to run many Microsoft Windows (TM) applications
at almost native speeds.  See <uri>http://www.netraverse.com/</uri> for more 
information.
</p>

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

<p>
<c>wolk-sources</c> contains the <e>Working Overloaded Linux Kernel</e> from 
<uri>http://sourceforge.net/projects/wolk</uri>. 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.
</p>

<p>
If you need a certain combination of patches that you cannot find in other
kernel sources, WOLK is definitely worth a shot.
</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-sources</title>
<body>

<p>
<c>gentoo-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>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>selinux-sources</title>
<body>

<p>
<c>selinux-sources</c>, a 2.4 kernel including lots of security enhancements,
has been obseleted by security development in the 2.6 tree.
</p>

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

</guide>
