On 1 Jan 2023, at 06:25, Warner Losh
<imp(a)bsdimp.com> wrote:
Still begs the question of when 32v started paging. :)
The London/Reiser paper includes:
"Work on the C compiler began in mid-December 1977. The hardware arrived on March 3.
We held a party on May 19 to celebrate successful multiuser operation of the
system."
John Reiser had the following timeline in a mail conversation about a year ago.
"Our VAX-11/780, the first one delivered to a customer, arrived Feb.12, 1978
(Lincoln's Birthday). Tom and I had been preparing using PDP-11/45 since
December, and we achieved "login: " on the console DECwriter by April 15
(the deadline for US income tax filing). The rest of 1978 was "tuning",
and preparing for the release of "UNIX-32/V" to UC Berkeley.”
The dates don’t match to the day, but the timeline is essentially the same (moreover,
delivery of VAX hardware is not the same as it being operational, achieving login: is but
the first step of bringing the user land up).
This sets a minimum timeline for arriving at a first version of “slowsys”. The timestamps
on the surviving files of slowsys show January 1979.
Joy and Babaoglu write in “Converting a Swap-Based System to do Paging in an Architecture
Lacking Page-Referenced Bits”:
"In the fall of 1978 the Computer Science Division of the University of California at
Berkeley purchased a VAX-11/780 and arranged to run an early version of UNIX for the VAX
provided by Bell Laboratories under a cooperative research agreement. [...] A subsequent
version of the system was capable of loading processes into noncontiguous real memory
locations, called scatter loading , and was able to swap only portions of a process,
called partial swapping, as deemed necessary by the memory contention. This would become
the basis for the paging system development discussed in this paper.”
This places the earliest moment for scatter paging as the Fall of 1978. The timestamps of
the surviving files of sys show March 1979, which is the latest moment.
The for the timeline of 32V with true demand paging John Reiser recalled:
"My annual performance review in early 1979 said "Well done; but don't ever
do
it again” because it was not regarded as "Research”. So what did I do? I did
it again; this time, with demand paging. I designed and implemented mmap() based
on experience with PDP-10/Tenex PMAP page mapping system call. I fretted over
introducing the first UNIX system call with 6 arguments.”
John recalls that it was a 6 or 7 months effort, with the last few being a "long
tail" of decreasing attention. The would place this third version as completed around
the Fall of 1979. This is consistent with Rob Pike’s recollection that he saw it being
demonstrated early in 1980.
In 1980 Research had to chose how to progress in the field of memory management. The
Reiser system was cool, but not supported by management and the BSD VM system was seen as
good enough to use. 3BSD is from early 1980, 4BSD from late 1980. Likely the conflicting
recollections of Bill Joy are because it was a snapshot somewhere in between (plus the
general issues around recollection). In any case, the 1985 snapshot of 8th edition appears
to have been based on 4.1BSD (early 1981), so that is when the systems split.