\begin{itemize}
   \item

   You are interested in understanding \textbf{Linux}
   internals, learning how to write kernel code and/or
   device drivers, or gaining experience with debugging, or
   making the \textbf{Linux}-based operating system more
   secure.  You might be doing this just for fun, but more
   likely, this task is part of your job. The purpose here
   is to ease your path and perhaps shorten the amount of
   time it takes to reach the level of competence required.

   \item

   How much you get out of this and how bug-free, efficient,
   and optimized your code will be, depends on how good a
   programmer you were before you started with the present
   material. There is no intent or time here to teach you
   the elements of good programming or the \textbf{Linux}
   operating system design in great detail.

   \item

   You should:

   \begin{itemize}
      \item

      Be proficient in the \textbf{C} programming language.

      \item

      Be familiar with basic \textbf{Linux} (\textbf{UNIX})
      utilities, such as \textbf{ls, rm, grep, tar}, and have
      a familiarity with command shells and scripts.

      \item

      Be comfortable using any of the available text
      editors (e.g., \textbf{vi}, \textbf{emacs}, \textbf{nano}.)

      \item

      Know the basics of compiling and linking programs,
      constructing Makefiles etc.; i.e., be comfortable
      doing application developing in a \textbf{Linux} or any
      \textbf{UNIX}-like environment.

      \item

      Have a good understanding of systems programming in a
      \textbf{UNIX} or \textbf{Linux} environment, at least
      from the standpoint of writing applications.

      \item

      Experience with any major \textbf{Linux} distribution
      is helpful but is not strictly required.

   \end{itemize}

   \item

   If you have had some experience configuring and compiling
   kernels, and writing kernel modules and or device
   drivers, you will get much more out of this material.

   \item

   If you have a good grasp of operating system fundamentals
   and familiarity with the insides of any other operating
   system, you will gain much more from this material.

   \item

   While our material will not be very advanced, it will
   strive to be thorough and complete. It is worth repeating
   that we are not aiming for an expert audience, but
   instead for a competent and motivated one.

\end{itemize}
