[Implementing CIFS]
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]


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.


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]

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]
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.


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]

Not yet ready to meet the public.


UofM Digital Technology Center
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.

Twin Cities Code Camp
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.

INet 4011
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.

<Prev]   [Next>  

Copyright © 2011 Christopher R. Hertel 
This site is my fault.  Terms of Use