The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Paul Ruizendaal <pnr@planet.nl>
To: TUHS main list <tuhs@minnie.tuhs.org>
Subject: Re: [TUHS] 8th Edition timeline
Date: Wed, 8 Apr 2020 20:50:25 +0200	[thread overview]
Message-ID: <3FA2A5AF-F4E9-4AD8-9A06-6864DD855498@planet.nl> (raw)
In-Reply-To: <2298456D-A786-40C2-9C68-26C99E2002E1@planet.nl>

As was suggested on the list, I’ve reached out to Peter Weinberger to better understand the time line of the File System Switch and the 8th edition network file system. He has been very helpful, but the one line summary is that it is unfortunately too long ago to remember specific details with any certainty. In general Peter remembers that he was concerned that the project was too big for one person to do, and hence always looked for design choices that would leave the work scope manageable.

Time line.

Since my last post on this subject I have found that the ACM conference talk of March 1985 was also held 9 months earlier at a Usenix conference - leaving a time slot between end of 1981 and summer 1984. Peter vaguely remembers that the essential ideas were done "before 1983”. It would stand to reason that 1983 was spent on getting corner cases of the network file system right, but all this is no more than plausible conjecture.

File system switch (FSS).

The guiding thought for the FSS was to extend the philosophy of ‘everything is a file’ to new areas, also other than network files. Early implementations already included a simple, read-only ‘/proc’ file system for example. I asked if any experiments had been done with virtualising ‘/dev', but Peter could not recall any such work.

I personally find that the FSS has an elegance that fits with other parts of Research Unix and asked Peter about its origins. He does not recall any special "a-ha” moments, but does recall that the way it was done just felt natural to him. Other options would have included to do the switch at the sys call level (which felt too complicated) or at the block device level (which felt too limited).

I also asked about how his reworking of ’namei’ and centralising all namespace operations in that function came about (in my view it is key to a concise switch). Here, too, it is too long ago to remember any specifics, but Peter comments that he never liked to write much code and that spending time on finding ways to make the amount of coding as small and straightforward as possible would have been in character.

Eighth edition network file system

Once the FSS exists, a simplistic network file system is not hard - just do RPC to a remote server. Peter chose to do a user level file server in order to keep the work scope and complexity down to manageable levels. As highlighted in the ACM paper, the devil is in the detail of replicating all the semantics of normal local disk files. Cases like a file being kept alive if a process still has it open, the complexities of cross-mounted network files (let alone recursively mounted), handling failed connections, etc. were hard to sort out and get right.


> On 29 Mar 2020, at 20:12, Paul Ruizendaal <pnr@planet.nl> wrote:
> 
> On 29 Mar 2020, at 16:04, arnold@skeeve.com wrote:
>> 
>> Paul Ruizendaal <pnr@planet.nl> wrote:
>> 
>>> Related is the question when the "file system switch" was added. It must
>>> have been later than 1981 and before 1985, but I have not been able to
>>> pinpoint it further.
>> 
>> IIRC there was a "paper" (only an abstract) on the file system
>> switch published in a USENIX conference proceedings. That woud help
>> trace it down.
> 
> I have that paper (“The Unix 8th Edition Network File System”), it was presented at a March 1985 ACM conference. However, there are indications that the roots of the file system switch existed earlier, possibly much earlier.
> 
> I think Doug McIlroy once described 1973 as a pivotal year for Unix, with many concepts devised that would blossom in the following 3-5 years. I’m increasingly tempted to think that Summer ’81 - Summer ’82 was a similarly pivotal year.
> 
>> Peter Weinberger, who did it, is at Google; you could ask him
>> directly, as well.
> 
> That is a good idea. If someone has the email address I’d appreciate an off list message.
> 
> Paul


  parent reply	other threads:[~2020-04-08 18:51 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-29 12:27 Paul Ruizendaal
2020-03-29 14:04 ` arnold
2020-03-29 18:12   ` Paul Ruizendaal
2020-03-29 21:48     ` Rob Pike
2020-03-30  7:43       ` Paul Ruizendaal
2020-03-30  9:06         ` Rob Pike
2020-04-04 12:56           ` emanuel stiebler
2020-04-04 19:57             ` Noel Hunt
2020-04-04 21:32               ` Rob Pike
2020-04-04 22:39                 ` Noel Hunt
2020-04-05  1:38                 ` aksr
2020-04-05 13:17                 ` emanuel stiebler
2020-03-30 13:26         ` Clem Cole
2020-03-30 13:38           ` reed
2020-03-30 14:41             ` Clem Cole
2020-03-30 15:06               ` [TUHS] Sytek (was Re: 8th Edition timeline) Jon Forrest
2020-03-30 16:02           ` [TUHS] 8th Edition timeline Paul Ruizendaal
2020-03-30 19:31             ` Clem Cole
2020-03-31  2:44               ` Paul Ruizendaal
2020-04-08 18:50     ` Paul Ruizendaal [this message]
2020-04-08 18:58       ` Thomas Paulsen
2020-04-08 20:13         ` Paul Ruizendaal
2020-03-30  6:25   ` Paul Ruizendaal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3FA2A5AF-F4E9-4AD8-9A06-6864DD855498@planet.nl \
    --to=pnr@planet.nl \
    --cc=tuhs@minnie.tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).