\subsection{Minimal filesystem}
\begin{frame}
  \frametitle{Basic applications}
  \begin{itemize}
  \item In order to work, a Linux system needs at least a few
    applications
  \item An \code{init} application, which is the first userspace
    application started by the kernel after mounting the root
    filesystem
    \begin{itemize}
    \item The kernel tries to run \code{/sbin/init}, \code{/bin/init},
      \code{/etc/init} and \code{/bin/sh}.
    \item If none of them are found, the kernel panics and the boot
      process is stopped.
    \item The init application is responsible for starting all other
      userspace applications and services
    \end{itemize}
  \item Usually a shell, to allow a user to interact with the system
  \item Basic Unix applications, to copy files, move files, list files
    (commands like \code{mv}, \code{cp}, \code{mkdir}, \code{cat},
    etc.)
  \item Those basic components have to be integrated into the root
    filesystem to make it usable
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Overall booting process}
  \begin{center}
    \includegraphics[width=0.7\textwidth]{slides/sysdev-root-filesystem-minimal/overall-boot-sequence.pdf}
  \end{center}
\end{frame}
