[TUHS] UNIX testing / error injection
Clem Cole via TUHS
tuhs at tuhs.org
Thu Apr 16 05:01:26 AEST 2026
On Wed, Apr 15, 2026 at 9:54 AM Arnold Robbins via TUHS <tuhs at tuhs.org>
wrote:
> If I recall correctly, the initial work on the 4.2BSD fast filesystem
> was done in user space.
>
You do. Kirk started on a system running 4.1BSD [I think it was one of the
750s that CSRG had in Evans, but it might have been on one of the shared
780s like Ernie]. Not only did it allow the core FS to be debugged, but
the tools that would support it (newfs/mkfs, fsck, dump, and the like) all
had their first pass written and debugged in user space. IIRC, 4.1B was
when Kirk started integrating it, and we started pounding on it. I
remember one of the issues that was not discovered until integration was
the quadratic search for a free block. If you remember, Joy's solution
was to define "full" as 10% from actually full. The problem, of course,
was that with the price of rotating storage in those days [a Fujitsu Eagle
(474MB) and Eagle II (689MB), which were approximately $10K and $14K], your
file system was always full.
As for the OP's question, it was pretty normal for a new physical FS to be
simulated in user space. In some OS cases, such as Apollo's Domain, when
Jim Rees, Paul Levine, Nat Mishkin, and Paul Leach implemented NFS, the FS
code is called out of the kernel to user space (their solution, which they
called "An Extensible I/O System," is extremely cool; there is a Chapter
about it by that name in Domain/OS Design Principles doc you can find on
bitsavers —
https://bitsavers.org/pdf/apollo/014962-A00_Domain_OS_Design_Principles_Jan89.pdf
).
More information about the TUHS
mailing list