Chapter 1. Introduction to Linux and messaging 3
Similarly, when we talk about versions of Linux we either mean the version of the
Linux kernel or a version of a specific Linux distribution. It is more accurate to talk
about Linux kernel version 2.4 and Red Hat Enterprise Linux version 3 than to
refer to Linux 2.4 or Linux 3.
1.1.2 Linux kernel
The Linux kernel has a monolithic design, which means that most of the
operating system is a single file that runs in
kernel mode, other examples of such
operating systems are DOS, UNIX and VMS. The binary contains:
Low-level hardware support for devices such as the processor, interrupt
controller, real-time clock, input devices, CD-ROM drives and so on
Task management and task scheduling
Networking protocols such as TCP/IP and Netbios
Bus support for PCI, ISA, MCA, USB, FireWire
File system support.
System call interface, a layer between the kernel and the programs running
on top of it, and its implementation
Device driver management
Device drivers themselves, which are interacted with by programs through
device specific files, such as SCSI and IDE disk drivers
In order to better understand Linux kernel and its constant development, let us
become familiar with some definitions:
Linux kernel mailing list A virtual space where Linux developers from
around the world discuss the kernel features,
exchange experience, ask questions and help
Bitkeeper repository A source control system used for the official, and
many of the unofficial, development trees
Patch A new kernel feature or modification of an
existing one, sometimes a temporary fix for a
bug until the problem can be solved more
thoroughly with an architectural change
Patch set A collection of patches against an official kernel
release with a certain purpose, such as
4 Messaging Solutions in a Linux Environment
additional experimental drivers, low latency for
enhanced desktop interaction, and so on.
Kernel release A new official kernel level that has been tested
to be stable. In every new version or release
there are improvements or changes to already
implemented architectures and support for new
emerging technologies and optionally for old
Custom kernel Some of the major distributions and many Linux
users create their own kernels adding and
deleting features in order to create a kernel best
fit for the additional programs they ship.
Changelog A list of changes and new features compared to
the previous official release.
As an example, we can examine the latest stable Linux kernel, 2.6.5, and its
1. Developers around the world are fixing bugs and writing new features or
polishing up ones that had not previously been accepted to be included in the
2. All these
patches and patch sets are submitted to Linus Torvalds himself who
works on the
Linus development tree on Bitkeeper together with a few other
3. Linus himself made the decision which
patches are going to be included in the
new stable kernel.
4. At some point in time, Linus decides to cut off the patch submission process,
effectively freezing the functionality, and releases a
release candidate version.
There may be several of such versions.
5. When the new functionality is tested to a satisfactory degree, the new
is officially released; announcement is made and source tree together with
changelog is made available at Linux Kernel Archives and its mirrors all
around the world. Many developers who like to follow the
immediately download the kernel and compile it to take advantage of the new
features it offers. On the Web the Linux kernel archives is found at:
6. Major changes and additions according to the changelog in this kernel
– Updates to several file systems including reiserFS, nfs, ext2 and ext3.
– Addition of Netpoll interface.