\documentstyle[fancybox,a4,psfig]{seminar}

\centerslidesfalse

\def\printlandscape{\special{landscape}}    % Works with dvips.

\articlemag{1}

\oddsidemargin=3cm
\evensidemargin=3cm
\textwidth=22.0cm

\newpagestyle{pstyle}%
  {Samba - SAGE-AU '98\hspace{\fill}\rightmark \hspace{\fill}\thepage}{}%
\pagestyle{pstyle}

\slideframe{Oval}

\newcommand{\heading}[1]{%
  \begin{center}
    \large\bf
    \shadowbox{#1}%
  \end{center}
  \vspace{1ex minus 1ex}}

\newcommand{\BF}[1]{{\bf #1:}\hspace{1em}\ignorespaces}

\begin{document}
\LARGE


\newpage
\begin{slide}
\heading{Record Locking}

SMB (and Windows) has sophisticated locking semantics but Unix has
very limited locking capabilities. This leads to problems in a
implementation of SMB on Unix.

\begin{itemize}
\item SMB uses 32 bit unsigned offsets
\item Unix uses 32 bit signed offsets - only 31 bits addressable
\item SMB allows for locking contexts within processes
\item Unix uses the process as the smallest locking context
\item OLE uses large offset locks for semaphores!
\end{itemize}

Eventually Samba will have its own lock daemon.
\end{slide}

%%%%%%%%%%%%%%
\newpage
\begin{slide}
\heading{Share Modes}

Share modes allow a Windows application to specify a set of access
modes allowed on a open file. Unix has no equivalent concept.

Generally share modes are much more important for windows applications
than byte range locking.

Samba simulates share modes using an internal locking system in shared
memory. 

\end{slide}


%%%%%%%%%%%%%%
\newpage
\begin{slide}
\heading{Oplock Notification}

Oplocks allows SMB clients to safely cache {\em all} file operations
on a file. Unix has no equivalent concept.

Samba implements oplocks via shared memory but there is no way to make
the locks visible to non-SMB processes. You can get file corruption if
files are accessed via SMB and non-SMB programs simultaneously.

We are talking to Unix vendors about the necessary file notification
primitives to support completely safe oplocks.

\end{slide}

%%%%%%%%%%%%%%
\newpage
\begin{slide}
\heading{Printing}

Unix printing subsystems are very primitive and are different on each
platform. 

How do you portably:

\begin{itemize}
\item query the print queue?
\item change the status of a queued job?
\item print a file?
\item determine a printers capabilities?
\end{itemize}

Unix needs a standardized printing system!
\end{slide}

%%%%%%%%%%%%%%
\newpage
\begin{slide}
\heading{Authentication}

Every unix flavor uses a different authentication system. Some have
more than one!

Samba needs close ties to the authentication system, particularly when
acting as the primary domain controller.

PAM is slowly starting to take hold, and helps a bit, but
authentication is still a very thorny issue.

\end{slide}

%%%%%%%%%%%%%%
\newpage
\begin{slide}
\heading{POSIX Silliness}

POSIX has some very silly things in it!

One of the silliest is that you can only change the date on a file if
you own the file (or are root). You may be able to delete or write to
a file without being able to change its date!

This leads to problems with shared files in Samba and build
systems. Samba has a workaround, but it isn't pretty.

\end{slide}


\end{document}