[TUHS] Paging code in SysV R2

Dan Cross crossd at gmail.com
Wed Mar 30 01:57:20 AEST 2022

On Tue, Mar 29, 2022 at 11:25 AM Paul Ruizendaal <pnr at 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.

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 at 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 at 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.
> >
> >
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20220329/8c95a258/attachment.htm>

More information about the TUHS mailing list