[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ih] Early Unix networking



On 10 Oct 2016, at 18:33 , Jeremy C. Reed wrote:

> I have slowly been authoring a book about this from the Berkeley Unix 
> perspective.

That is welcome news. I'm sure I will find your book a very good read once it is ready!

It would seem that your and my focus are mostly complementary. Networking in BSD is 1982 and later (respectfully ignoring uucp and berknet), my interest is 1982 and before. We overlap for 1982 :^)

>> => does anybody know of a preserved good copy of the 4.1a distribution 
>> tape?
> 
> It is included in the CSRG set (disk 1).
> https://www.mckusick.com/csrg/
> (Now available in some git and subversion repos online too.)
> But it doesn't include the sys nor IP networking code, so doesn't help 
> much.

Yes, that partial directory tree is what was Kirk McKusick could rescue from the damaged tape.

> Nevertheless the disk1's 4.1c.1 code does have SCCS files for the sys 
> networking code from October 1981 and later. See sys/netinet/SCCS/ and 
> sys/vaxif/SCCS/s.if_en.c for example. (Again note these SCCS files is 
> separate from the disk4 sccs code. I didn't look recently but I recall 
> some of this history and some of the files in the SCCS files is 
> different from the disk4.)

Ah, didn't know that. I looked at the SCCS included on disk 4 only.

> The SCCS history references ../bbnnet/ code. I thknk the files were just 
> renamed, for example ../bbnnet/fsm.h is tcp_fsm.h (which does have SCCS 
> history in late October 1981).

Partly so. I have a few snapshots of the code Gurwitz sent to CSRG during 1981. This code is in line with the design proposal in IEN168. My last snapshot is from January 1982, two months before the release of 4.1a, if I'm not mistaken. In those two months the API was changed from the Network-Unix-like original to a primordial sockets API. There was a build switch to build with either the network stack in "bbnnet" or with the network stack in "inet". I think the latter was alpha code at the time 4.1a was "released".

According to BBN Quarterly #28, late in 1982 Gurwitz changed the design from being run on a second kernel thread to being driven by software interrupts. The code appears to have been further developed and maintained by Gurwitz and Partridge as late as 1984. It is this evolved version that appears in the "deprecated" subdirectory in October 1985. Unfortunately, all the development between March 1982 and October 1985 on the "bbnnet" code is not covered by SCCS and also not included on the 4.1c and 4.2 BSD distribution tapes.

> So I think using SCCS and renaming files you can reconstruct the 
> original VAX implementation from Gurwitz.

Yes, making some guesses about the integration of the early Gurwitz code with the early sockets API that should be a doable effort. However, finding the real code would be even better.

Paul