The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Dan Cross <crossd@gmail.com>
To: Paul Ruizendaal <pnr@planet.nl>
Cc: TUHS main list <tuhs@minnie.tuhs.org>
Subject: Re: [TUHS] Paging code in SysV R2
Date: Tue, 29 Mar 2022 11:57:20 -0400	[thread overview]
Message-ID: <CAEoi9W6M9__g7dvQqDA2GyE7+JG-Z=WQkA_sbUzK66ZuMRdERg@mail.gmail.com> (raw)
In-Reply-To: <9316583A-2461-40B9-8B87-15AC4A719198@planet.nl>

[-- Attachment #1: Type: text/plain, Size: 3953 bytes --]

On Tue, Mar 29, 2022 at 11:25 AM Paul Ruizendaal <pnr@planet.nl> wrote:

> No, sorry, my scope of interest is mostly 1975-1985.
>
> I did read the Mach virtual memory paper from 1988 - from that paper I
> gather that the data structures used are totally different from those in
> Sys V or BSD.
>
> There is also the VM implementation that Richard Miller did on SysV r1 in
> 1983.  Interestingly, his design seems to parallel the choices made by
> Reiser a few years before, but it is lighter touch. Both Reiser and Miller
> refer to Denning and Tenex as prior art. Miller's 1984 Usenix paper about
> this project argues that doing approximated LRU from the page table data
> results in a process local working set view, which he argued was preferable
> to the system global working set view generated in the BSD clock algorithm.
>

I brought this up on this list back in 2017, but a few years later, Charles
Forsyth in the UK did a VM system for SunOS 4 based on the EMAS system.
https://www.terzarima.net/doc/taste.pdf

I'm not quite sure when this was written, but it cites papers from 1989, so
sometime that year or 1990, would be my guess.

        - Dan C.

> On 29 Mar 2022, at 16:05, Clem Cole <clemc@ccc.com> wrote:
> >
> > Fascinating - thank you.
> >
> > Have you figured out that path from here to the SVR4 code base that was
> used for the x86 [which I think also went through a few more generations
> after the SVR4 release]?
> >
> > Clem
> >
> > On Tue, Mar 29, 2022 at 7:22 AM Paul Ruizendaal via TUHS <
> tuhs@minnie.tuhs.org> wrote:
> >
> > I did not have a lot of time to work on documenting the evolution of
> paging / virtual memory code in 32V, Sys III and early SysV in the past
> months, but I did get some more background information that seems worth
> sharing.
> >
> > My understanding of the virtual memory story at USG is now as follows:
> >
> > Somewhere in 1981/82 a project plan for Unix 5 / System V was made and
> evolving John Reiser’s virtual memory code for 32V-r3 was part of that
> plan. “Evolving” in this context meant making it more maintainable and more
> hardware independent. John’s code assumed a memory page, a disk block and a
> file block all to be the same size, and it needed to be more general. It
> was also designed around the VAX MMU and this too needed to be generalised.
> The person assigned to that job was Bob (Robert) Baron, reporting to Tom
> Raleigh. The project involved quite a bit of re-architecting and progress
> was slowish. On top of that Bob left for CMU to work on Mach. Tom Raleigh
> tried to pick up where Bob had left off, but progress remained slowish.
> >
> > In parallel, Keith Kelleman and Steve Burroff were working on Unix for
> the 3B20 Unix. They did paging code from scratch around the 3B20 MMU (which
> used a more or less ‘modern’ page table design) and developed their idea
> for the “regions” abstraction to support large, non-contiguous address
> spaces. It seems that they built on the main working set ideas/concepts in
> the Reiser/Baron/Raleigh code base, combined these with their “regions”
> idea, made it multi-processor capable and made it all work on the 3B20.
> Around that time Tom Raleigh seems to have transferred to Bellcore, and the
> VAX code base got orphaned.
> >
> > Two young engineers appear to have picked up the work on the VAX code
> base: Dean Jagels and Jim McCormick. My understanding is that they
> essentially back ported the 3B20 work to the VAX, falling back on the
> Reiser/Baron/Raleigh work where necessary. They got it working, and as far
> as I can tell, this is what got released in 1984 as part of SysV R2.4 for
> the VAX (the oldest surviving source code for this that I could find).
> >
> > This somewhat tortuous birth may in part explain why Research chose to
> use the 4BSD virtual memory code for 8th edition.
> >
> >
>
>

[-- Attachment #2: Type: text/html, Size: 4631 bytes --]

  reply	other threads:[~2022-03-29 15:59 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-29 11:21 Paul Ruizendaal via TUHS
2022-03-29 12:38 ` Rob Pike
2022-03-29 14:05 ` Clem Cole
2022-03-29 15:24   ` Paul Ruizendaal
2022-03-29 15:57     ` Dan Cross [this message]
2022-03-29 16:01     ` Larry McVoy

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='CAEoi9W6M9__g7dvQqDA2GyE7+JG-Z=WQkA_sbUzK66ZuMRdERg@mail.gmail.com' \
    --to=crossd@gmail.com \
    --cc=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).