The Choices, Part I
gentoo-sources
For most users, the recommended kernel sources are the
gentoo-sources. The gentoo-sources package contains
specially tuned performance kernel patches designed to optimize tasks
such as compiling while listening to music and browsing the web. Most
of you who are new to Gentoo have probably never run a system where you
are regularly compiling many packages from source while you are doing your
normal everyday tasks on your computer.
You may find that if you use the vanilla-sources (the official
kernel sources released from http://www.kernel.org) normal tasks --
such as listening to music, moving your mouse and the like -- may appear
jumpy when you are compiling packages.
The gentoo-sources contain an updated ACPI subsystem and are based
on Con Kolivas' high-performance kernel patches (ck-sources). We also
support grSecurity (a set of security-related patches with support for
ACLs), EVMS(2) (a highly flexible storage management filesystem with easy
partition resizing), JFS (IBM's high-performance filesystem), the latest
NTFS drivers, and more.
Because the gentoo-sources are targeted at full performance, they are
also very good for gaming purposes.
The following USE-flags can be set to select optional patches:
Flag | Description |
aavmUse Andrea Arcangeli's memory management
evms2Use EVMS 2.0.1 instead of EVMS 1.2.1
cryptApply Cryptographic patches
usagiKeep USAGI, drop superfreeswan, patch-int, loop-jari
vanilla-sources
The next kernel sources that many of you will probably be familiar with
as Linux users are the vanilla-sources. As I mentioned briefly
above, these are the official kernel sources released on
http://www.kernel.org/. These sources are 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 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
support.
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.
gs-sources
For users to whom desktop interactive performance comes as a secondary
priority to reliability and hardware support, we have the
gs-sources. GS stands for Gentoo Stable (creative, aren't we?).
This patch set is tuned and tested to provide the best support for the
latest hardware and ensures that your mission critical servers will be
up when you need them. This kernel doesn't have some of the most
aggressive performance tuning patches from the gentoo-sources,
but rest assured, the great performance that you know and love from the
vanilla kernels are alive and well. Where possible and without
compromising stability we add server related performance patches.
This kernel provides support for the latest ACPI subsystem, EVMS, ECC
(required for HA Linux systems), Encrypted Loopback devices, NTFS, Win4Lin
and XFS. It also contains updates for IDE, ext3 and several network cards
amongst other patches.
In other words, these sources are perfect for servers and
High-Availability systems.
The following USE-flags can be set to select optional patches:
Flags | Description |
cryptApply cryptographic patches
pfeifer-sources
pfeifer-sources are what will become gentoo-sources after
lots of testing and QA. Patches to the gentoo-sources are first
added to pfeifer-sources for testing. So if you want the
performance of gentoo-sources with the most recent possible
patches, use pfeifer-sources.
The following USE-flags can be set to select optional patches:
Flag | Description |
aavmUse Andrea Arcangeli's memory management
evms2Use EVMS 2.0.1 instead of EVMS 1.2.1
cryptApply Cryptographic patches
usagiKeep USAGI, drop superfreeswan, patch-int, loop-jari
hardened-sources
hardened-sources provides patches for the various subprojects of
Gentoo Hardened, 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:
Flags | Description |
selinuxSubstitute grSecurity with SELinux support
xfs-sources
xfs-sources contains support for EVMS, ACPI, grSecurity and, what
you probably already figured out by now, the latest XFS support patches
from the XFS Development. The Gentoo LiveCD uses xfs-sources, if
you must know :-)
More information about XFS on http://oss.sgi.com/projects/xfs/.
You can select the following USE-flags to select optional patches:
Flags | Description |
cryptApply cryptographic patches
Architecture dependent kernels
alpha-sources, arm-sources, hppa-sources,
mips-sources, ppc-sources and sparc-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.
ppc-sources-benh
The ppc-sources-benh ebuilds provide additional hardware
support for the ppc-sources kernel. It is slightly more
experimental than the ppc-sources.
ppc-sources-crypto
The ppc-sources-crypto ebuilds provide CryptoAPI
support for the Gentoo Linux PPC Kernel. More information about
CryptoAPI can be found on http://www.kerneli.org/about/.
ppc-sources-dev
The ppc-sources-dev packages provide the development sources for
ppc-sources. Every patch which should become part of
ppc-sources has to go through ppc-sources-dev first.
compaq-sources
The compaq-sources provide RedHat's kernel sources for Alpha,
maintained by Compaq.
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.
aa-sources
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. When I last looked, it also contained
SGI's XFS filesystem and the O(1) scheduler by Ingo Molar (which will
become the default scheduler for Linux 2.6).
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.
Visit
http://www.kernel.org/pub/linux/kernel/people/andrea/kernels/v2.4
for more information about all the patches in these kernel sources.
ac-sources
Next we have the ac-sources. This is Alan Cox's patch set against
the 2.4 kernel series. In this patch set you will find the O(1)
scheduler, the latest updates to the 2.4 IDE system and many other
patches that are waiting for possible inclusion in the 2.4 kernel
series.
This kernel is known to have very decent support for several additional
hardware and may be a candidate for you if you need a stable but less
conservative kernel than the vanilla-sources.
Check out
http://www.kernel.org/pub/linux/kernel/people/alan/linux-2.4/
to get a look at what Alan is working on.
ck-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
patches.
development-sources
development-sources is the current unstable kernel branch. This
is the branch of the Linux kernel that Linus himself maintains. This
rapidly changing playground is where the features for the next stable
branch are implemented, enhanced and tested before they are released
to the vast majority of Linux users.
If you want the latest, bleeding edge support and experimental core-system
changes, this is what you want. Note however that these are highly
experimental kernel sources and it is advised not to use them on mission
critical or production systems.
Do note that Gentoo Linux does not support issues with or related
to the development-sources or derivatives as it changes too often
and is known to break things occasionally.
gaming-sources
gaming-sources are based on ck-sources and are therefore
tuned for high performance. They also contain patches for the latest
game-related hardware (graphic cards, sound cards, and such).
If you are a hardcore gamer, this is your choice.
mm-sources
The mm-sources are based on the development-sources and
contain Andrew Morton's patch set. It assembles several other patches,
like ext2/3 Extended Attributes and Access Control Lists, Page Table
Sharing, the Orlov Allocator, non-linear mapping behaviour, etc into one
patch set.
If you really want to live on the edge and you think
development-sources are for wussies, then try out
mm-sources.
mosix-sources
The mosix-sources are patched to support MOSIX operation for
clustered computing. A cluster is a set of nodes (PCs) with software
that enables them to handle tasks in a distributed manner. With
clusters, you don't need high-profile supercomputers to do lengthy
tasks. For more information see http://www.mosix.org.
openmosix-sources
The openmosix-sources are patched to support the openMosix system
(like MOSIX but Open Source). For more information see
http://www.openmosix.org.
redhat-sources
The redhat-sources are, as the name suggests, the sources for the
RedHat Linux kernel. Thanks to the wonders of Open Source, anyone can
take advantage of the work the RedHat engineers put into making their
kernels. We at Gentoo have provided an ebuild so that you can easily
use this kernel with Gentoo.
rsbac-sources
rsbac-sources contain the patches from
http://www.rsbac.org. RSBAC stands for Rule Set Based
Access Control. These kernel patches allow you to authorize users
based on rules instead of normal uid/gid permissions.
selinux-sources
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
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
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
information.
wolk-sources
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.