[TUHS] A few comments on porting the Bourne shell

Paul Ruizendaal pnr at planet.nl
Sun Jan 1 20:25:21 AEST 2023


> On 1 Jan 2023, at 06:25, Warner Losh <imp at 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.







More information about the TUHS mailing list