


|
Projects
Writings
Implementing CIFS
|
Implementing CIFS is a
complete on-line book describing the inner workings of Microsoft's
CIFS filesharing protocol suite. It includes sections on NBT
(NetBIOS over TCP), SMB (the Server Message Block protocol) and
the Browse Service.
Oh! ...and it's also available in printed format from
Prentice Hall PTR.
[Open
Publication License]
|
Software
BadfingerD
|
A silly little thing that we found useful when testing those
small, headless computers you can get cheaply these days. Also
useful for checking up on remote computers (if you are connected
over a VPN).
BadfingerD is a simple daemon
that is intended as a poor replacement for the old
fingerd server. Hence badfingerd.
BadfingerD listens for a
connection, but ignores whatever is sent to it. Instead, it
executes a shell command and sends the output (from
<stdout>) back to the caller.
[GPLv2]
|
Prequel
|
The purpose of Prequel is to create
an Open Source implementation of the PeerDist protocol (also
known as Microsoft BranchCache™).
This project is in the early stages, but some testing code
exists and more will be published as it becomes ready.
Testing code:
[GPLv2]
Program code:
[GPLv3]
|
STiB
|
The purpose of the STiB project is to
create an Open Source implementation of Microsoft's BITS upload
protocol. BITS is the Windows service used by "Windows
Update" to download patches and service packs in the
background. The download process uses plain old HTTP, but there
is also an upload
protocol, which is a proprietary extension to HTTP.
The STiB project currently provides
a BITS upload client toolkit and a testing program.
[LGPLv2.1]
&
[GPLv2]
|
![[ubiqx modules]](images/proj.ubiqx.png)
ubiqx modules
|
The ubiqx modules implement simple data structures and
algorithms--useful stuff that most folks either write a thousand
times or never write at all. The goal of this project is to create
a set of portable, easy-to-use modules that let you use these data
structures in your code without worrying about wheel
reinventation. The modules
provide binary splay trees, sparse arrays, linked lists, and
suchlike.
Download the ubiqx
library.
[LGPLv2]
|
uCIFS library
|
uCIFS is a small but (very
slowly) growing set of modules that provide NBT and SMB networking
support. The goal is to create a small, concise library of C
functions that will allow you to create a simple SMB client, or
NBT and Browse Service probes. Eventually, there might be enough
there to build a lightweight SMB server.
[LGPLv2.1]
&
[GPLv2]
|
vexd
|
Not yet ready to meet the public.
|

December, 2011
|
An overview of the the SMB/CIFS and SMB2 protocol family, plus a
review of the new features in SMB2.2 and the basics of
implementation. The audience was full of practitioners of the
art, senior developers, and leaders.
Slides are
available in PDF format.
|

October, 2011
|
An opportunity to present the wonders of the SMB/CIFS and SMB2
protocol suites to a bunch of coders, and hopefully spark some
interest. These protocols are neither the easiest nor the most
rewarding, but they represent a large segment of the market.
I have seen several start-ups moving along nicely until they
crash head-long into the brick wall that these protocols
present. I've seen similar things happen to established
companies as well.
In addition to SMB/CIFS and SMB2, this presentation covered
the Microsoft BranchCache™ and BITS Upload protocols.
Slides are
available in PDF format.
|

September, 2011
|
Further updates to the Prequel and
STiB projects.
Slides are
available in PDF format.
|

May, 2011
|
An update on our activities in most of 2010 and early 2011,
including STiB, and the work done
toward implementing BranchCache for Samba.
Slides
are available in PDF format.
|

March, 2008
|
A general overview of storage technology, including a comparison
between ATA and SCSI, emerging technologies, changing politics,
and potential areas for product development.
Slides
are available in PDF format.
|

November, 2007
|
Further updates to the INet 4011 presentation from previous
years, combining slides from several sources with several new
ones.
Slides
are available in PDF format.
INet 4011 is a Network Administration class. It's part of a
University of Minnesota Bachelor of Applied Science program
presented by the College of Continuing Education.
|
North Central Linux
Symposium
June, 2007
|
I had a cold.
Somehow, I managed to spin out this presentation covering the
differences (both technical and practical) between SCSI and ATA.
Slides are
available in PDF format.
|
|