%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%									%
%	Copyright (C) 1992, 1993 Michael K. Johnson,			%
%	johnsonm@stolaf.edu, and any others named in copyright below.	%
%									%
%	This file is freely copyable, but you must preserve this	%
%	copyright notice on all copies, it must only be distributed	%
%	as part of the Linux Kernel Hackers' Guide, and its use is	%
%	is subject to the conditions expressed in the copyright for	%
%	the whole guide, in the file prelim/copyright.tex		%
%									%
%	If other copyright conditions are given below, they supercede	%
%	these conditions.						%
%									%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\vspace*{.3 in}
\noindent{\LARGE Introduction}
\vspace{.15 in}

\noindent The \kguide\ is inspired by all of us ``kernel hacker wannabees'' who
just did not know enough about unix systems to hack the \linux\ kernel
when it first came out, and had to learn slowly.  This guide is
designed to help you get up to speed on the concepts that are not
intuitively obvious, and to document the internal structures of
\linux\ so that you don't have to read the whole kernel source to
figure out what is happening with one variable, or to discover the
purpose of one function call.

Why \linux?  Well, \linux\ is the first free unix clone for the 386 to
be freely available.  It is a complete re-write, and has been kept
small, so it does not have a lot of the time-honored baggage that
other free operating systems (like 386BSD) carry, and so is easier to
understand and modify.

Unix has been around for over twenty years, but only in the last few
years have microcomputers become powerful enough to run a modern
protected, multiuser, multitasking operating system.  Furthermore, unix
implementations have not been free.  Because of this, very little free
documentation has been written, at least for the kernel internals.

Unix, though simple at first, has grown more and more appendages, and has
become a very complex system, which only ``wizards'' understand.  With
\linux, however, we have a chance to change this, for a few reasons:
\begin{itemize}
\item \linux\ has a simple kernel, with well-structured interfaces.
\item One person, Linus Torvalds, has control of what code is added to
\linux, and he does this work gratis.  This means that random pieces
of code are not forced into the kernel by some company's politics, and
the kernel interfaces stay relatively clean.
\item The source is free, so many people can study it and learn to
understand it, becoming ``wizards'' in their own right, and eventually
contribute code to the effort.
\end{itemize}

It is our hope that this book will help the nascent kernel hacker
learn how to hack the \linux\ kernel, by giving an understanding of
how the kernel is structured.