On Mon, Sep 12, 2016 at 3:20 AM, Greg 'groggy' Lehey <grog(a)lemis.com>
wrote:
Right, the discussion was about 4.1c. I just wanted
to confirm that
it was, in fact, the first version with TCP/IP.
I'll take a side trip to answer this question.... 4.1A was the first BSD
version that had the beginning of the wnj rewrite of the BBN code, but did
have an IP stack based on the BBN but with the beginnings of a new API.
(Again, if I can get some tapes read, I used to have 4.1A and 4.1B tapes).
FYI: straight 4.1 (GA code if you will) did have a IP stack - just not from
UCB nor a new API to use it. Please remember, UCB *did not have the
contract* for networking support for DARPA, BBN did. For an API, the BBN
code used the Chaosnet trick in nami of leaving text chars at the next of
the open call as parameters - i.e. open ("/dev/tcp/mumble") and the TCP
device would take if their. Hence with that hack, no new system calls were
used (just the traditional open/close/read/write).
Joy would create sockets/bind et al in response to the CMU Accent System
that they were building for DARPA on the triple-drip PERQs. But the IP
stack itself was from BBN (Gurwitz code). BTW: That's were the dreadful
mbuf's code came from. Bill also tried to get some other stacks besides IP
inside of the sockets framework, such as XNS and the ISO code, but in fact
that would take much hacking to sockets before it worked (in a sense).
That said, it was the release of 4.1C to the DARPA contractors and some
other specific places (such as Sun, Apollo, and Masscomp that I know) and
later the GA of 4.2BSD that made the IP stack for UNIX spread. With
BSD4.2 came two things for networking the full sockets API and sendmail as
its SMTP implementation (the BBN smtp was not used or released).
FYI: BBN (Rob) had written a somewhat OS independant IP/TCP stack (mbufs
were created so he could be independant of any specific OS kernel's memory
scheme). It ran in HP's 1000s and 3000's IIRC and a few other systems.
This was the code that was spliced in 4.1, as was the user level code
(telnet, ftp and smtp -- this without hacking BSD's delivermail stuff).
BBN would take 4.2 back and do an update beyond that but for whatever
reasons, few places ever really picked that code base up (we used it in
Stellix as we found it easier to make it parallel then the BSD code base).
Also, Eric Cooper and I put the BBN stack on the original 4.1 UCB CAD
systems on a Xerox 3M ethernet before 4.1A was available. IIRC Sam Leffler
was actually using the BBN code base to write the rcp/rsh/rexec and routed
stuff after seeing some of the XNS/PUP stuff at Xerox (routed is pretty
much a direct "rip-off" of the XNS way of doing routing) and that got
spliced into the wnj's stuff later.
Clem