\documentclass{slides}
\usepackage{graphics}

\begin{document}
\begin{slide}
  \large \textbf{\textsf{newuserfs}} \normalsize

  \begin{flushright}
  \small Martin Pool 9405765 \texttt{mbp@samba.org}\normalsize
  \end{flushright}
  
  \includegraphics{bwcartoon.eps}

   \textit{Combining the best of the Hurd and Linux\texttrademark{}\ldots}

\end{slide}


\begin{slide}
  \large \textbf{What is it?} \normalsize

  A loadable filesystem module for Linux 2.4 implemented as userspace
  servers\ldots

  Kernel calls out to server for most operations: \texttt{mount},
  \texttt{readinode}, \texttt{readdir}, \texttt{read}, ...

  Binary IPC mechanism.

  Server may be implemented in any language.
  
  Linux-specific --- exports the kernel API.

  Makes Linux a bit more like a microkernel system.
\end{slide}


\begin{slide}
  \large \textbf{For developers:}
  \normalsize
  \begin{itemize}
     \item Prototype new filesystems.

     \item Write filesystems in high-level languages.

     \item Debug filesystems using \texttt{gdb}
   
     \item Link to userspace libraries.
  \end{itemize}
\end{slide}


\begin{slide}
  \large \textbf{Applications}  \normalsize

  Keep application complexity out of the kernel!

  \begin{itemize}
     \item Version control in the filesystem

     \item Network filesystems (FTP, CIFS, HTTP, rsync, \ldots), with
     local caching
 
     \item Compression (zipfs, tarfs)

     \item Hierarchical storage and replication

     \item Writable CDs, stacked directories \ldots

     \item Filesystem interface to databases 
  \end{itemize}
\end{slide}

\begin{slide}
  \large \textbf{Similar work}
  \normalsize
  \begin{itemize}
     \item GNU Hurd
     \item Plan 9 from Bell Labs
     \item FiST (special cross-kernel code)
     \item Podfuk (CODA)
     \item \textsf{userfs} for Linux 2.0
  \end{itemize}
\end{slide}

\end{document}
