[TUHS] VFS prior to 1984

Paul Ruizendaal pnr at planet.nl
Thu Jun 25 04:31:00 AEST 2020

On 24 Jun 2020, at 18:51, Anthony Martin <ality at pbrane.org> wrote:
> Paul Ruizendaal <pnr at planet.nl> once said:
>> 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?
> The concept of the "remote inode" was introduced in:
> Luderer, G. W., Che, H., Haggerty, J. P., Kirslis, P. A., & Marshall,
> W. T. (1981). A distributed UNIX system based on a virtual circuit
> switch. ACM SIGOPS Operating Systems Review, 15(5), 160-168.

> The only other prior art I know of is
>  Toda, I. W. A. O. (1980). DCNA higher level protocols. IEEE
>  Transactions on Communications, 28(4), 575-584.
> 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.

Thanks for those pointers: I had not thought to include distributed systems in my initial search. Clem also pointed out LOCUS in this area. It would seem that S/F-Unix (the Luderer paper) and LOCUS happened at about the same time and both have the concept of a remote inode.

The Luderer paper has only a few details about implementation and besides describing the remote inode concept they mention:

“Of 27 system call types related to files, 18 result in message traffic if remote files are involved. Of these, 10 contain a path name as an argument, and the remaining 8 refer to already opened files. Path names or the data read or written can be up to 64K bytes long. The structure of each message is a type code followed by type-dependent data.”

In a way, the approach resembles the system call forwarding that Heinz Lycklama did for his 'satellite systems' work.

I asked Bill Marshall (one of the S/F co-authors) about it a few months ago and he recalls that they ran into problems with corner case semantics in their implementation, and that Peter Weinberger later approached the issue afresh 'thinking about the hard cases first.' Bill does not have S/F-Unix source code, and I have not been able to contact Gottfried Luderer yet.

I have not yet been able to look at the DCNA paper yet.

> I'd be interested if you find anything earlier.

I came across this 1979 paper by P.M. Lu from Bell Labs Naperville

The abstract says:

"RIDE (Resource-Sharing in a Distributed Environment) has been designed and implemented for the UNIX operating system to provide sharing of remote files, remote process invocation and interprocess communication in a distributed computing environment. The system is designed to support a uniform interface for both local and remote access in a network. The user programs can be executed in a single or multiple machine environment without any program modification.”

I do not know what RIDE was and if its approach qualifies as a FSS precursor. Maybe it is like 'Unix United / Newcastle Connection' in its approach.

It does seem an interesting paper in any case, as its front page includes: 'This system was designed to replace the network interface programs that previously operated on the SPIDER system.'

More information about the TUHS mailing list