Clem,
Many thanks for your informative post!
> Assuming I can read the tape, I know I do have a copy of 4.1a distribution on 9-track.
That is great news. Let me know once you had a chance to look at it. I am in no hurry, so whenever you have time, even if that is months from now.
> Diomidis is correct, 4.1a use Joy/Cooper/Leffler reimplementation of of the BBN stack, not the original BBN stack.
I suspected as much, but I am happy to hear it confirmed. I've been told on several occasions that 4.1a contained the original BBN stack.
> The BBN stack (Gurwitz et al) was for 4.1 (and other UNIX and non-Unix systems). I do not believe I have a copy of that tape. Rob or maybe Eric Cooper might.
>
> How Sam added the code into the UCB SCCS, I never knew (you can ask him directly, he is still findable these days). Eric Cooper took the basic BBN distribution and put it on the UCB 4.1 systems around campus >>before<< Joy started the sockets work i.e. the installation was done by installing 4.1, then taking the BBN tape and installing it as is.
I can confirm all this. I do have several copies of the BBN tapes from '81 and '82, they survived in Kirk McKusick's archive.
They indeed contain material that is 'copied over' a clean 4 or 4.1 build tree. The first complete BBN beta is from May 1981 and Joy started on his network code in October 1981.
> BTW: about 3 years later, the BBN2 stack comes out from Rob and team and it is actually even more interesting; because it now uses the sockets interface (not the Chaosnet/UofI nami trick), and adds a number of both performance enhancements (Van Jacobson's work, etc.) as well as a more complete implementation of the IP stack. I >>might<< have a copy of that tape squirreled away; but I'll have to look.
I think this might be the material that appears in the BSD source tree in 1985, right?
Van Jacobson's work is ~1988, I think, but I could well be mistaken.
I think the main performance improvement between the 1982 and the 1985 version was a switch from a kernel thread model to a software interrupt model, but as yet I haven't grasped why this is better and my assumption may be incorrect.