1.1 The Linux Operating System
Linux is a freely available multiuser, multitasking, multiprocessor, and multiplatform UNIX
operating system. Its popularity and the number of users increase continually, making Linux an
increasingly serious factor in the operating-systems market. Thanks to the freely available source
code that everybody can obtain over the Internet and to the fact that everybody can participate in
and contribute to the further development of the Linux system, many developers, all over the
world, are constantly busy further developing this system, removing existing errors, and
optimizing the system's performance.
The fact that most developers do this very time-consuming work for free in their spare time is a
sign of the great fun working with Linux and mainly with the Linux kernel can be. As we progress
in this book, we will try to pass some of this enthusiasm on to our readers. The large number of
research projects at the University of Karlsruhe that have used, enhanced, or modified the Linux
network architecture experienced a high motivation of all participating students. The reason was
mainly that this offered them a way to participate in the "Linux movement."
The development of Linux was initiated by a student by the name of Linus B. Torvalds, in 1991.
At that time, he worked five months on his idea of a new PC-based UNIX-like operating system,
which he eventually made available for free on the Internet. It was intended to offer more
functions than the Minix system designed by Andrew S. Tanenbaum, which was developed for
teaching purposes only [Tane95]. With his message in the Minix newsgroup (see page 1), he set
a movement in motion, the current result of which is one of the most stable and widely developed
UNIX operating systems. Back then, Linus Torvalds planned only the development of a purely
experimental system, but his idea further developed during the following years, so that Linux is
now used successfully by many private people, corporations, and scientists alike. Mainly, the
interoperability with other systems (Apple, MS-Windows) and the ability to run on many different
platforms (Intel x86, MIPS, PA-RISC, IA64, Alpha, ARM, Sparc, PowerPC, M68, S390) make Linux
one of the most popular operating systems.
Not only the extensive functionality of Linux, but also the freely accessible source code of this
operating system, have convinced many private people and companies to use Linux. In addition,
the German government, with its program for the support of open-source software, promotes the
use of freely available programs with freely available source code. The main reason for this is
seen not in the low procurement cost, but in the transparency of the software used. In fact,
anyone can view the source code and investigate its functionality. Above all, anyone can check
what—perhaps security-relevant—functionalities or errors are contained in an application or
operating system. Especially with commercial systems and applications, there are often
speculations that they could convey information about the user or the installed applications to the
manufacturer.
You do not have such fears with freely developed software, where such a behavior would be
noticed and published quickly. Normally, several developers work concurrently on an open-
source project in a distributed way over the Internet, monitoring themselves implicitly. After all,
free software is not aimed at maximizing the profit of a company or its shareholders. Its goal is to
develop high-quality software for everybody. Linux is a very good example showing that freely
developed software is not just the hobby of a handful of freaks, but leads to serious and
extremely stable applications.
The authors of this book use Linux mainly for research work in the network area. The freely
available source texts allow us to implement and evaluate new theories and protocols in real-
world networks. For example, Linux was used to study various modifications of the TCP transport
protocol [WeRW01, Ritt01], to develop a framework for the KIDS QoS support [Wehr01b], and to
develop the high-resolution UKA-APIC timer [WeRi00].