Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!ut-sally!std-unix From: std-unix@ut-sally.UUCP (Moderator, John Quarterman) Newsgroups: mod.std.unix Subject: Re: The POSIX file system Message-ID: <6206@ut-sally.UUCP> Date: Mon, 3-Nov-86 14:35:34 EST Article-I.D.: ut-sally.6206 Posted: Mon Nov 3 14:35:34 1986 Date-Received: Tue, 4-Nov-86 05:36:23 EST Organization: IEEE P1003 Portable Operating System for Computer Environments Committee Lines: 38 Approved: jsq@sally.utexas.edu 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