Comments in line:
On 30 Mar 2020, at 15:26, Clem Cole
<clemc(a)ccc.com> wrote:
Paul - see below..
On Mon, Mar 30, 2020 at 3:43 AM Paul Ruizendaal <pnr(a)planet.nl> wrote:
To be honest, late 1981 sounds a bit too early for the merge. The 4.1 code was ready in
June 1981 and the ’select’ system call was first proposed in July 1981, so it is possible.
However, in the BSD line ’select’ was not fully implemented until March/April 1982.
Please be careful here. 4.1BSD is different from the
pre-'4.2' released and 4.2BSD itself. 4.1aBSD was the first pseudo release[1]
that started to have the major surgery to support Bill's sockets idea and splice in
the UCB rewrite of the BBN code. 4.1BSD was the first system for the Vax that really wide
distribution. 'Anyone' with an AT&T license could get it and most people
did. Remember this is the system that BBN (Gurwitz) did the original IP/TCP support (sans
sockets - i.e. /dev/ip /dev/tcp ...). Your date of June '81 for the 4.1BSD release
seems late, but I'll accept it. 3BSD was 1979, and I thought 4BSD was a year later,
with 4.1BSD a few months after 4BSD (few people actually got 4BSD)
I am aware of that. “20 years of Berkely Unix” says November 1980 for 4BSD and June 1981
for 4.1BSD. From the SCCS log I’d say November 9th and July 1st respectively.
As far as I can tell CSRG integrated the BBN stack with (almost) 4.1 in April 1981 - most
of that is in a separate tree, with a few #ifdef’s in the main tree. From SCCS it seems
that implementation work on sockets started in Oct/Nov 1981 and 4.1a was released in April
or March 1982. From the partial coverage in SCCS I’d say there is no BBN code in 4.1a
anymore. The socket API in that release was different from what ended being in 4.1c and
4.2, and seems to have had some wider visibility in 2.9BSD and UniPlus System V - both of
which used the 4.1a API (and probably code base).
That said, Bill and Sam did the heavy lifting on
select(2) first in 4.1aBSD and there were some issues (again I have forgotten the details
-- I do remember, I was working on my thesis and I had a do a huge rewrite of the AP
kernel support to handle select(2) properly). I remember talking to Sam (arguing with him
most probably) about it one night before it was fully created. I want to say, he had
worked on something similar at the firm he was at (the firm name I now forget -- si-mumble
-- they were in Mt. View) before he joined CRSG. I don't remember now the issues I
had, but I do remember it was a bit of mess to support the way the AP hardware assumed it
could do DMA on the UBA[2]
[1] 4.1a/4.1b/4.1cBSD was officially internal to UCB
and some ARPA-sites, although I would have expected someone like Dennis in 1127 to have
been sent it also, as wnj was in the process of leaving for Sun and he took them with him.
For instance, I would take 4.1c to Masscomp. The key is that these were not as widely
distributed as 4.1BSD. 4.2BSD would really accelerate BSD UNIX uptake, because of the
networking support but there was more than 2-3 years between 4.1BSD and 4.2BSD.
Yes, Summer 81 - Summer 82 must have been a vibrant year, with much interaction between
various Unix groups. By the way, dmr was on the 4.2BSD steering group.
[2] The AP's MMU/DMA interface at the time, was
causing me great hair, and that was likely to have been part of the reason I wanted some
help/changes in the KPI interface - which is actually funny, they eventually came with the
CMU Mach MMU changes of 4.4BSD (which was much more friendly to a
multiprocessor/coprocessor architecture). FWIW: I never got them when I was at UCB.