\section{Overview}

\begin{frame}
  \frametitle{The Linux Kernel}
  \begin{itemize}
  \item Linux is a modular monolithic kernel
  \item Original design based on BSD and Minix
  \item Move towards modularity
  \begin{itemize} \item /sys, VFS, ops, LKMs, syscalls, \texttt{binfmt\_misc}, \ldots{} \end{itemize}
  \item Extensive compile-time configuration mechanism
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{History}
  \begin{itemize}
    \item April 1991: Usenet post
    \item March 1994: Linux 1.0.0
    \item June 1996: Linux 2.0.0
    \item January 1999: Linux 2.2.0
    \item January 2001: Linux 2.4.0
    \item December 2003: Linux 2.6.0
    \item Current: Linux 2.6.27.5
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Resources}
  \begin{itemize}
  \item The source!
    \begin{itemize}
    \item http://www.kernel.org/
    \item http://git.kernel.org/
    \item http://lxr.linux.no/
    \end{itemize}
  \item Linux Kernel Mailing List (http://www.lkml.org/)
  \item Linux Weekly News (lwn.net), KernelTrap.org
  \item Books, e.g., \textit{LDD3} \\ http://lwn.net/Kernel/LDD3/
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Directory Tree \small{(partial list)}}
  \begin{itemize}
    \item \texttt{arch}: boot, CPU management, \ldots{}
      \begin{itemize} \item \texttt{arch/x86} \end{itemize}
    \item \texttt{drivers}: bulk of the kernel
    \item \texttt{fs}
    \item \texttt{include}: structure definitions, etc.
      \begin{itemize} \item \texttt{include/linux} \end{itemize}
    \item \texttt{init}: bringing up the kernel after boot
    \item \texttt{kernel}: syscalls, scheduler, kernel features
    \item \texttt{lib}
    \item \texttt{mm}: memory management
    \item \texttt{net}
    \item \texttt{Documentation}
  \end{itemize}
\end{frame}
