The POSIX file system

Moderator, John Quarterman std-unix at ut-sally.UUCP
Tue Nov 4 05:35:34 AEST 1986


From: guy at sun.com (Guy Harris)
Date: Mon, 3 Nov 86 00:50:03 PST

> I came into the Unix game late, but as I understand it, various flavors
> of Unix (such as MERT, Unix' real-time cousin), implemented the file system
> completely outside the kernel, I suppose as a library of routines.

Yes, and no.  They did implement it outside the kernel, although not in user
mode.  The file system was implemented by a process that ran in supervisor
mode and which received messages telling it to do things like read from or
write to a file.  Other operating systems, like RSX-11 and VMS, did the same
thing.  I believe the latest descendents of MERT, and VMS, have moved the
file system back into the kernel for performance reasons.

>      If any sort of fundamental change is to be made to the file system for
> POSIX, I'd prefer moving towards a non-kernel file system.  In addition to
> simplifying the design of the operating system, it also allows users to
> implement layers on top of the file system, such as case insensitivity,
> wildcard expansion, network file systems, access methods, etc.  Gee, is this
> starting to sound like streams?

POSIX does not specify whether the file system is implemented in the kernel
or not.  Even if a particular POSIX implementation has the file system in
the kernel, it can implement things like "case insensitivity, wildcard
expansion, network file systems, access methods", etc. on top of the file
system.  One system that is nearly POSIX-compatible, called the UNIX system,
has done the last three of these (wildcard expansion in the shell - this
could also be made into a user-mode library; network file systems, such as
the Newcastle Connection and IBIS, implemented as user-mode wrappers around
calls like "open", "read", "write", etc.; access methods such as C-ISAM,
that are just user-mode libraries).

Remember, POSIX is an *interface* specification, not an implementation.  The
fact that many (most?)  POSIX implementations, including the UNIX
implementation, will have the file system in the kernel says nothing about
POSIX.

Volume-Number: Volume 8, Number 21



More information about the Mod.std.unix mailing list