OpenSolaris Project Weaves CIFS Server Into the Solaris Kernel
Published: November 29, 2007
by Timothy Prickett Morgan
As Bob Porras, vice president of software engineering at Sun Microsystems explained in a blog entry this week, there are only two file sharing protocols that matter in the world: Network File System, or NFS, which was created by Sun two decades ago, and Common Internet File System, or CIFS, which is an update of the System Message Block (SMB) protocol that was created by IBM for PC DOS and later perfected by Microsoft for file serving on Windows.
The most popular open source implementation of SMB, which was reverse-engineered to be compatible with Windows and developed for Unix, Linux, and other platforms, is called Samba, and this software has been supported on various Unixes since it was first created by Andrew Tridgell in 1992. The problem with Samba, like other software, is performance. Which is why the OpenSolaris Project has recently announced that it is jamming the CIFS protocol a little lower into the Solaris platform--down into the kernel, to be precise.
To do SMB on a network, you have to do two things. You have to convince a Windows client that you are a Windows server--which the CIFS server does--and you have to convince a Windows server that you are a Windows client--which a parallel and existing project called OpenSolaris CIFS client already does. Of course, because SMB is a popular file sharing protocol, you can end up with a mix of Unix and Linux clients and servers, all pretending to be Windows. (If this doesn't make you laugh, I don't know what will.)
Because Sun has to support Solaris on X86 and X64 processors, which have a little endian byte order in memory, and on Sparc processors, which are big endian, it was a bit tricky to get the CIFS server running in the kernel for both processor architectures. Moreover, being completely compatible with Windows file serving means supporting other Windows services aside from SMB that are related to it, such as Microsoft Remote Procedure Call services, a Microsoft dialect of the open RPC standards already supported by Sun, which provide access control, file locking, and other functions. Sun has had to make tweaks to the Zettabyte File System and Virtual File System (the latter being a virtualization layer atop of the real file system that is used by Solaris and BSD Unixes) and various file system utilities that are used in Solaris to get the in-kernel CIFS server to work.
You can find out more about the in-kernel CIFS server for OpenSolaris in another blog, this one posted by Alan Wright, a senior software staff engineer at Sun who works on the OpenSolaris effort. It has all of the minute details about the CIFS server and why Sun is moving it into the kernel.
Sun expects to put the CIFS server into the forthcoming "Project Indiana" distribution of OpenSolaris, which is due in March 2008.
'Project Indiana' OpenSolaris Preview Debuts
Sun Elaborates on its xVM Virtualization Plans
BrandZ Containers, xVM Partitions to Host Legacy Solaris Applications
Sun Enhances Solaris Developer Edition, Adds Support
Q&A: Sun's Top Operating System Brass Talk OS Strategy
Project Indiana to Create an OpenSolaris Distro
OpenSolaris Gets Lots of Storage-Related Code from Sun
Sun Taps Linux Guru to Guide Operating System Strategy
OpenSolaris: One Year Down, Participation Up
Post this story to del.icio.us
Post this story to Digg
Post this story to Slashdot