Where to Get The Source
All of the major Linux distributions ( SuSE, Debian,
Slackware, Red Hat etcetera)
include the kernel sources in them.
Usually the Linux kernel that got installed on your Linux system
was built from those sources.
By their very nature these sources tend to be a little out of date so
you may want to get the latest sources from one of the web sites
mentioned in chapter www-appendix.
They are kept on ftp://ftp.cs.helsinki.fi
and all of the other web sites shadow them.
This makes the Helsinki web site the most up to date, but sites like
MIT and Sunsite are never very far behind.
If you do not have access to the web, there are many CD ROM vendors who
offer snapshots of the world's major web sites at a very reasonable
cost. Some even offer a subscription service with quarterly or even
Your local Linux User Group is also a good source of sources.
The Linux kernel sources have a very simple numbering system.
Any even number kernel (for example 2.0.30) is a stable, released,
kernel and any odd numbered kernel (for example 2.1.42 is a
This book is based on the stable 2.0.30 source tree.
Development kernels have all of the latest features and support
all of the latest devices.
Although they can be unstable, which may not be exactly what you want it,
is important that the Linux community tries the latest kernels.
That way they are tested for the whole community.
Remember that it is always worth backing up your system thoroughly if you do
try out non-production kernels.
Changes to the kernel sources are distributed as patch files. The patch
utility is used to apply a series of edits to a set of source files.
So, for example, if you have the 2.0.29 kernel source tree and you wanted to move
to the 2.0.30 source tree, you would obtain the 2.0.30 patch file and apply the
patches (edits) to that source tree:
$ cd /usr/src/linux
$ patch -p1 < patch-2.0.30
This saves copying whole source trees, perhaps over slow serial connections.
A good source of kernel patches (official and unofficial) is
the http://www.linuxhq.com web site.