The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [TUHS] VFS prior to 1984
@ 2020-06-23  9:09 Paul Ruizendaal
  2020-06-23 14:01 ` Larry McVoy
                   ` (3 more replies)
  0 siblings, 4 replies; 65+ messages in thread
From: Paul Ruizendaal @ 2020-06-23  9:09 UTC (permalink / raw)
  To: TUHS main list

When googling for File System Switch or Virtual File System most sources mention Sun NFS and SysVr3 as the earliest implementations. Some sources mention 8th Edition.

I did a (short) search  on FSS/VFS in earlier, non-Unix OS’s (Tenex, Multics, CTSS, etc.), but none of those seem to have had a comparable concept.

Does anybody recall prior art (prior to 1984) in this area?

Paul

^ permalink raw reply	[flat|nested] 65+ messages in thread
* Re: [TUHS] VFS prior to 1984
@ 2020-06-23 22:17 Norman Wilson
  2020-06-23 22:24 ` Dave Horsfall
  0 siblings, 1 reply; 65+ messages in thread
From: Norman Wilson @ 2020-06-23 22:17 UTC (permalink / raw)
  To: tuhs

Rob Pike:

  For my taste, the various Unix file system switches that I've seen are too
  firmly tied to the idea of blocks and disks and all that, making them less
  flexible than they should have been. That's why the Plan 9 version is about
  names and byte streams, to make it as general as possible.

=====

The only file-system switch I know well is that in the later
Research systems.  It has nothing to do with disks or blocks.
It is about names and inodes: turn name to struct inode, read
arbitrary chunk of data, write arbitrary chunk of data, create
file, unlink file, abominable ill-defined system call that just
wouldn't die erm I mean ioctl, and so on.

It was certainly a cheap hack (as its author cheerfully admitted)
but it really was about I/O operations, not about simulating
disks.  That's why it so easily supported /proc (the one that
was just about processes, not the misnamed Linux one that
is really about all things in the kernel so you don't need
/dev/kmem).

I don't know a lot about later VFSes like those in SunOS or
Linux or the BSDs.  Blockiness might well have crept in in
support of memory-mapped I/O or in collaboration with the
buffer-cache implementation.  The Research version was never
used directly to support different on-disk file system formats
(we did a different pjw cheap hack for the one case that
mattered in the kernel, and used the idea later developed
more by FUSE for other cases because speed didn't matter).

Norman Wilson
Toronto ON

^ permalink raw reply	[flat|nested] 65+ messages in thread
* Re: [TUHS] VFS prior to 1984
@ 2020-06-24 14:31 Noel Chiappa
  2020-06-24 15:21 ` Clem Cole
  0 siblings, 1 reply; 65+ messages in thread
From: Noel Chiappa @ 2020-06-24 14:31 UTC (permalink / raw)
  To: tuhs; +Cc: jnc

    > From: Dave Horsfall <dave@horsfall.org>

    > Ioctl: the Swiss Army knife of system calls.  I thought it was a neat
    > idea when it arrived (much better then those primitive stty/gtty calls)
    > but now...

Like they say, when the only tool you have is a hammer...

Better syntax than stty/gtty, maybe but I'm not sure the semantics are that
much better. The problem is that, especially with devices, what the I/O
commands do is so widely varied that it's hard to fit them all under a
unified umbrella. Maybe some (e.g. asynchronous I/O), but not all.

	Noel


^ permalink raw reply	[flat|nested] 65+ messages in thread
* Re: [TUHS] VFS prior to 1984
@ 2020-06-24 17:51 Noel Chiappa
  2020-06-24 18:13 ` Richard Salz
  0 siblings, 1 reply; 65+ messages in thread
From: Noel Chiappa @ 2020-06-24 17:51 UTC (permalink / raw)
  To: tuhs; +Cc: jnc

    > From: Anthony Martin

    > wherein they state the following:
    >   A virtual file system, from the viewpoint of application programs on a
    >   computer, models the file system functions of other computers. This is
    >   done in the same way as with virtual terminals, a virtual file system
    >   consists of a UPP having virtual files (VF), and a UCP which executes
    >   virtual file system protocols.
    > I'd be interested if you find anything earlier.

MLDEV on ITS would, I think, fit under that description.

I don't know if there's a paper on it; it's mid-70's.

	Noel

^ permalink raw reply	[flat|nested] 65+ messages in thread
* Re: [TUHS] VFS prior to 1984
@ 2020-06-24 18:31 Norman Wilson
  2020-06-25  6:22 ` arnold
  0 siblings, 1 reply; 65+ messages in thread
From: Norman Wilson @ 2020-06-24 18:31 UTC (permalink / raw)
  To: tuhs

Reaching outside of UNIX, RSX/11 used external
supervisor-mode processes called ACPs (ancillary
control processes) to implement file systems.
I don't know exactly how they were plugged in,
but I do know they were pluggable, so their
interface must have constituted a file-system
switch of some sort.  RSX dates back into the
1970s.

At some point in the latter part of the 1980s,
Ralph Stamerjohn (a name instantly recognizable
in the 16-bit DEC software world) gave a DECUS
talk about implementing a remote file system
through ACPs: a stub ACP on the client exporting
RPCs over the network, a real one at the server
end.  I remember chatting with him about how
that did and didn't resemble the way pjw had
done it; interesting architectural comparison.

Norman Wilson
Toronto ON

^ permalink raw reply	[flat|nested] 65+ messages in thread
* Re: [TUHS] VFS prior to 1984
@ 2020-06-25 19:31 Noel Chiappa
  0 siblings, 0 replies; 65+ messages in thread
From: Noel Chiappa @ 2020-06-25 19:31 UTC (permalink / raw)
  To: tuhs; +Cc: jnc

    > From: "Greg A. Woods"

    > as Organick said in his 1972 book

A word of warning: i) Organick describes Multics as it was planned, not as it
was actually implemented; and ii) then it changed considerably during its
service life.

Examples of each: i) there was one linkage segment per processs, not per
segment (linkage info was copied across into the shared linkage segment when a
segment was dynamically added to a process' address space); ii) the New Storage
System.

The basic concepts (single level store, dynamic linking etc) are correct in
Organick, but be wary of anything past that. Not his fault, of course; things
just changed.


    > As far as I can remember Multics didn't really have the concept of a
    > "mount point".

In the original design, no. In 1973-75, with the New Storage System:

  https://multicians.org/nss.html

mountable volumes were added (see MTB 229, "Use of Demountable Logical
Volumes", linked from the page above). It was released to customers in
June, 1976.

	Noel

^ permalink raw reply	[flat|nested] 65+ messages in thread
* Re: [TUHS] VFS prior to 1984
@ 2020-06-25 20:23 Noel Chiappa
  0 siblings, 0 replies; 65+ messages in thread
From: Noel Chiappa @ 2020-06-25 20:23 UTC (permalink / raw)
  To: tuhs; +Cc: jnc

    > From: Richard Salz

    > A web search for "its mldev" finds several things (mostly by Lars
    > Brinkhoff it seems)

Yeah, other than the source:

  https://github.com/PDP-10/its/blob/master/src/sysen2/mldev.106

there's not a lot on it.


That's typical of a lot of the innovative work done at the AI Lab, LCS, etc;
they built some extraordinary tools, but to them they were just tools they
used to work on their research, their _real_ work. So why bother to write that
stuff up? So people who actually used them remember them, but other than
that...

Welcome to tomorrow, where everything gets re-invented, because everyone is too
busy to waste time learning about the past.

     Noel

^ permalink raw reply	[flat|nested] 65+ messages in thread
* Re: [TUHS] VFS prior to 1984
@ 2020-06-25 20:25 Noel Chiappa
  2020-06-26  5:49 ` Lars Brinkhoff
  0 siblings, 1 reply; 65+ messages in thread
From: Noel Chiappa @ 2020-06-25 20:25 UTC (permalink / raw)
  To: tuhs; +Cc: jnc

    > From: Rob Gingell

    > RSEXEC (Resource Sharing EXEC) done on TENEX earlier in the 1970s.

That was associated with the National Software Works project:

  https://apps.dtic.mil/dtic/tr/fulltext/u2/a132320.pdf

I think? (It's been four decades since I looked at NSW, so I don't recall
much about it.) Neither was TENEX-specific; e.g. there were Multics
implementations of RSEXEC and NSW.

	Noel

^ permalink raw reply	[flat|nested] 65+ messages in thread
* Re: [TUHS] VFS prior to 1984
@ 2020-06-29  9:11 Paul Ruizendaal
  2020-06-29 14:45 ` Larry McVoy
  2020-06-29 16:34 ` Heinz Lycklama
  0 siblings, 2 replies; 65+ messages in thread
From: Paul Ruizendaal @ 2020-06-29  9:11 UTC (permalink / raw)
  To: TUHS main list

Date: Wed, 24 Jun 2020 14:31:34 -0400 (EDT)
From: norman@oclsc.org (Norman Wilson)
> Reaching outside of UNIX, RSX/11 used external supervisor-mode processes called ACPs (ancillary control processes) to implement file systems. I don't know exactly how they were plugged in, but I do know they were pluggable, so their interface must have constituted a file-system switch of some sort. RSX dates back into the 1970s. At some point in the latter part of the 1980s, Ralph Stamerjohn (a name instantly recognizable in the 16-bit DEC software world) gave a DECUS talk about implementing a remote file system through ACPs: a stub ACP on the client exporting RPCs over the network, a real one at the server end. I remember chatting with him about how that did and didn't resemble the way pjw had done it; interesting architectural comparison.
> Norman Wilson Toronto ON

I am still digesting all the inputs (thanks, all!)

The above post made me realise that the delineation of what is a FSS/VFS or not, is not so easy.

I did a little bit of reading, and the concept of an ACP arrived with RSX11D in May 1973, but only matured in RSX11M in November 1974. As I understand it, originally in RSX11 file system code was closely tied to the low-level device driver for each device. ACP’s separated the file system code from the device driver itself, and became separate processes.

In essence there were two switches: one switch into abstract devices, implemented in ACP code and one kernel switch to deal with hardware interfacing. The first is indeed like a file system switch (although still tied to specific devices).

Looking at this stuff made me realise that my retro machine of choice (the TI990) went through a similar evolution. In the early seventies it had a sort of abstract device switch that linked to individual ‘device service routines’ (drivers). Initially, these modelled batch oriented ‘logical units’ that tied to files at the job control level. Later (late 70’s), the ‘open’ command would carry a file name and the file system was delegated to the device service routine. Still later (say 1983) this was used for networked disks.

As several people have observed in this topic, indeed there appears to be a close relationship between a device switch and a file system switch.





^ permalink raw reply	[flat|nested] 65+ messages in thread

end of thread, other threads:[~2020-07-07  1:08 UTC | newest]

Thread overview: 65+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-23  9:09 [TUHS] VFS prior to 1984 Paul Ruizendaal
2020-06-23 14:01 ` Larry McVoy
2020-06-23 15:12   ` Clem Cole
2020-06-23 15:55     ` Rich Morin
2020-06-23 20:38     ` Rob Pike
2020-06-23 20:57       ` Larry McVoy
2020-06-24  5:14       ` arnold
2020-06-24 21:08         ` Dave Horsfall
2020-06-24 19:30       ` Clem Cole
2020-06-24 19:36     ` Larry McVoy
2020-06-25  6:52       ` Rob Gingell
2020-07-05  0:05       ` Dave Horsfall
2020-07-05  0:16         ` Larry McVoy
2020-07-06  4:42           ` Dave Horsfall
2020-07-06 16:51           ` Chris Torek
2020-07-06 23:23             ` [TUHS] ECC memory John Gilmore
2020-07-07  1:07             ` [TUHS] VFS prior to 1984 Bakul Shah
2020-07-05  1:43         ` Clem Cole
2020-07-05 14:43           ` Larry McVoy
2020-07-05 18:40             ` Arthur Krewat
2020-07-05 20:08             ` Clem Cole
2020-07-05 20:42               ` John Cowan
2020-07-05 21:04                 ` Clem Cole
2020-07-05 21:14                   ` Dan Cross
2020-06-24 16:51 ` Anthony Martin
2020-06-24 17:31   ` Anthony Martin
2020-06-24 18:31   ` Paul Ruizendaal
2020-06-25  0:56     ` Rob Gingell via TUHS
2020-06-25  4:15       ` [TUHS] Oh, things were very different Rich Morin
2020-06-25 15:45         ` Lawrence Stewart
2020-06-25 16:24           ` Warner Losh
2020-06-25 17:57           ` Arthur Krewat
2020-06-25 20:22         ` Dave Horsfall
2020-06-25 20:42           ` Michael Kjörling
2020-06-25 20:49           ` Clem Cole
2020-06-26  0:48             ` Dave Horsfall
2020-06-24 19:05   ` [TUHS] VFS prior to 1984 Paul Ruizendaal
2020-06-24 20:27 ` Derek Fawcus
2020-06-24 21:33 ` Greg A. Woods
2020-06-25  0:45   ` Adam Thornton
2020-06-25 19:40     ` Greg A. Woods
2020-06-23 22:17 Norman Wilson
2020-06-23 22:24 ` Dave Horsfall
2020-06-24  4:09   ` Warner Losh
2020-06-24  5:10     ` Dave Horsfall
2020-06-24  5:33       ` Bakul Shah
2020-06-24  9:10         ` Andrew Warkentin
2020-06-24 14:31 Noel Chiappa
2020-06-24 15:21 ` Clem Cole
2020-06-24 17:51 Noel Chiappa
2020-06-24 18:13 ` Richard Salz
2020-06-24 18:46   ` Lars Brinkhoff
2020-06-24 18:31 Norman Wilson
2020-06-25  6:22 ` arnold
2020-06-25 19:31 Noel Chiappa
2020-06-25 20:23 Noel Chiappa
2020-06-25 20:25 Noel Chiappa
2020-06-26  5:49 ` Lars Brinkhoff
2020-06-26  8:34   ` Dave Horsfall
2020-06-26 11:13     ` arnold
2020-06-29  9:11 Paul Ruizendaal
2020-06-29 14:45 ` Larry McVoy
2020-06-29 14:53   ` Paul Ruizendaal
2020-06-29 15:14     ` Larry McVoy
2020-06-29 16:34 ` Heinz Lycklama

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).