[mod.std.unix] The POSIX file system

std-unix@ut-sally.UUCP (Moderator, John Quarterman) (11/02/86)

From: rgenter@labs-b.bbn.com (Rick Genter)
Date: 30 Oct 86 09:57:13 EST (Thu)

Here's the text of my original article, modified to reflect dmr's comments:

     The recent discussion regarding the issue of case insensitivity in the
POSIX environment has caused me to think about the Unix file system and
its impact on the kernel.  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.  I also understand that the MACH project at CMU is 
heading in this direction.

     The primary reason that I see for having the file system in the kernel in
the first place is perhaps for efficiency and to solve certain concurrency
problems.  I see making the file system case insensitive as another step in
this direction; unfortunately I see it as a step backwards.  I suppose the
next logical step would be to put wildcard expansion in the kernel.

     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?

     Personally, I'd rather that POSIX not change the appearance of the Unix
file system; it's too big a task to do right involving a redesign rather 
than a standardization.  This is clearly (at least to me) outside the scope 
of an effort such as P1003.
--------
Rick Genter 				BBN Laboratories Inc.
(617) 497-3848				10 Moulton St.  6/512
rgenter@labs-b.bbn.COM  (Internet new)	Cambridge, MA   02238
rgenter@bbn-labs-b.ARPA (Internet old)	seismo!bbncca!rgenter (UUCP)

Volume-Number: Volume 8, Number 13

std-unix@ut-sally.UUCP (Moderator, John Quarterman) (11/03/86)

From: guy@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

std-unix@ut-sally.UUCP (Moderator, John Quarterman) (11/04/86)

From: jbs@eddie.mit.edu (Jeff Siegal)
Date: Mon, 3 Nov 86 17:44:44 EST
Organization: MIT, EE/CS Computer Facilities, Cambridge, MA

In article <6206@ut-sally.UUCP> guy@sub.com (Guy Harris)
>[...]  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.

Quite far off, actually (at least in the case of VMS).  Current
versions of VMS have replaced the disk filesystem ACP (which
previously was a separate process) with the XQP, a separate instance
of which exists in _each_process_ (the code is shared).  This resulted
in some significant performance _improvements_, and a filesystem which
extends fairly easily and quite completely (including record/file
locking, etc.) over different machines (using DEC's inter-system CI
bus).

Jeff Siegal

Volume-Number: Volume 8, Number 31

std-unix@ut-sally.UUCP (Moderator, John Quarterman) (11/04/86)

From: garry@tcgould.tn.cornell.edu (Garry Wiegand)
Date: Tue, 4 Nov 86 00:45:47 EST
Organization: Cornell Engineering && Flying Moose Graphics

In a recent article jbs@eddie.mit.edu (Jeff Siegal) wrote:
>In article <6206@ut-sally.UUCP> guy@sub.com (Guy Harris)
>>[...]  I believe the latest descendents of MERT, and VMS, have moved the
>>file system back into the kernel for performance reasons.
>
>Quite far off, actually (at least in the case of VMS).  Current
>versions of VMS have replaced the disk filesystem ACP (which
>previously was a separate process) with the XQP, a separate instance
>of which exists in _each_process_ (the code is shared).  [...]

Sorry to quibble, but the original posting was accurate. There is now
a piece of the kernel which Dec has labelled the "XQP". The code runs
in the context of a user-process, as is indistinguishably true of every
other system service. The stated reason for making the move was increased
performance. That the cluster software was easier to write was probably
a bonus.

garry wiegand   (garry%cadif-oak@cu-arpa.cs.cornell.edu)

Volume-Number: Volume 8, Number 32

std-unix@ut-sally.UUCP (Moderator, John Quarterman) (11/05/86)

From: seismo!hadron!jsdy@sally.utexas.edu (Joseph S. D. Yao)
Date: Tue, 4 Nov 86 23:03:27 est
Organization: Hadron, Inc., Fairfax, VA

In article <6193@ut-sally.UUCP>:
>From: rgenter@labs-b.bbn.com (Rick Genter)
>Date: 30 Oct 86 09:57:13 EST (Thu)
>
>... 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.  ...
>     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?

The details of implementation, such as in or out of the kernel,
and streams, are really irrelevant.  Having the file system as
a separate, layerable part of the system interface as a whole
is a wonderful idea.  This conforms with ideas of modularity,
motherhood, apple pie, and so forth.  Both 4bsd and s5 have, in
succeeding implementations, tried to isolate FS code at least
by file in the os:sys directories.

Recent versions of the Unix(R) operating systems even implement
file system switches, which are the next great step, and would
probably do everything that Rick or anyone else would like, even
to mounting MS-DOS, VMS, TOPS-20, or whatever file systems.  (Yes,
even 4.2+ FS's on traditional Unix FS's!)  But I haven't seen much
about them since they were first ballyhooed; and AT&T even seems
to be withdrawing theirs.  (They won't document it, saying that
they don't want anyone to use it because it might go away.)  Perhaps
this just means that they're thinking of adopting the Sun version
as a "standard"?  Does anyone know anything about this?
-- 

	Joe Yao		hadron!jsdy@seismo.{CSS.GOV,ARPA,UUCP}
			jsdy@hadron.COM (not yet domainised)

Volume-Number: Volume 8, Number 39