Not to put too fine a point on it, Kirk's filesystem does not show up in the mainstream outside of Berkeley until 4.2BSD IIRC mid 1984.   4.1 was still based on the V7/TSS file systems [inside UCB we had 4.1A, 4.1B, 4.1C - although if my memory serves me 4.1C was semi-available - I know I took it Masscomp, SUN had it, and Armando you must have had it at DEC].

Anyway, the post 4.1 BSD system was when Fast File systems and Berkeley directory system calls were added, to make some of the operations atomic and the user space code more portable.

Henry Spencer's famous quip in the early 1980s:  "4.2BSD does everything UNIX does, only differently."

Looking back on it, ideas like the VFS layer would take a few years more.  But without moving the directory specifics out of user space code like it was V7 and earlier, it would have been hard to create something as clean as VFS.

On Wed, Jan 23, 2013 at 5:43 PM, Mary Ann Horton <> wrote:
While I agree with the other excellent comments in this thread (I just dig out my document for the original "Portable C Library (on UNIX)", complete with functions beginning with "C"), I have one small correction.

Variable length file names in directories actually didn't come out until the Berkeley Fast Filesystem in 4BSD.  They were not in V7 or even 3BSD.

By the time Version 7 rolled around, the variable length directories had also appeared in the filesystem.    I suspect strcpy arrived with the "portable I/O library", an abomination that eventually evolved into the stdio library and to this day is still stinking up the standard C language.

TUHS mailing list