\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}