In message <199901241958.AA15845(a)world.std.com>om>, Allison J Parent writes:
<On Sat, 23 Jan 1999, Allison J Parent wrote:
<> Unix didn't always have the idea of virtual memory. See Minix for an
<> example of that also V4 and maybe V5 unix didn't either.
<
<I would expect that the original PDP7 that ran UNIX didn't have VM...
No it didn't. I'm fairly certain that VM didn't appear until V7 on pdp-11
or maybe later.
There've already been a few followups on this and I'm to lazy to mix
all the references together. So I arbitrarily pick this point in
the thread to jump in.
The complete answer depends on what one means by VM. (Hey, here we
go with the definitions again.) If you take the pure viewpoint
and say that VM is the distinction between a virtual address and
a physical address, then all you need is an address translation
unit. These memory management units (MMUs) on PDP-11s were used
pretty early on. I don't know exactly how early, however. The
first 11 UNIX was ported to was the 11/20 (only called that after
other models were introduced; the 11/20 was the first model of the
11). If the story I heard in college is correct, there were only
three examples of a prototype MMU ever built for the 11/20 and
the one I saw had as many cards as the CPU. I doubt that Bell
Labs worked with one of those. The next model they ported to
was the 11/45 which had a rather good MMU including separate I/D
spaces. I don't know where along the line MMU support was added,
but it was definitely there by the time 6th edition came along
and John Lions wrote his masterpiece on it. One of the tables
in Peter Saulus's book suggests that it must have happened
somewhere between 3rd edition and 6th edition.
If by VM one refers to the ability to swap individual pages and
to do demand paging, then there were several attempts to
get paging into UNIX. The first was purely experimental using
an 11/55 (or 11/60, I can't remember). I don't remember my
source, but I do remember it reporting that performance was
very poor, and the line of research was not followed any
further. When Berkeley took 32V (the Bell Labs VAX port)
and added paging, they released 3BSD as Chuck mentioned.
As usual, if you want to look further at UNIX history, look
at the early papers and at Salus's book *A Quarter Centry of
UNIX*.
Brian L. Stuart