Once again, I very much appreciate the background you're able to provide Clem!  Looking at these sorts of differences in files on various archives is certainly deriving an incomplete picture, and this sort of history of the circumstances surrounding the ongoings of the time lend much reasoning to what otherwise looks a little opaque just stepping through code and documentation files.

Understanding the transition to a more formal distribution (i.e. snapshots of a development machine vs. intentionally packaged distributions) helps explain some of the discrepancies I'm seeing as I study documentation and what was available more.  I feel there are lessons to be learned there that still apply today.  I know thinking about that dichotomy is making me reconsider a few things about how my own team shares stuff around with other dev groups in our org.  We're currently in the "I archive them a copy of whatever's sitting in source control" stage and am trying to get away from that.  Hopefully whatever I land on doesn't also become a "never again!"

- Matt G.
------- Original Message -------
On Tuesday, October 17th, 2023 at 1:11 PM, Clem Cole <clemc@ccc.com> wrote:

Matt -- a couple of things to consider.

There is a huge demarcation up to and including 4.1BSD vs. anything afterward. DARPA created CSRG after 4.1BSD was released. And 4.1 was primarily the "FASTVAX" work vs. 4.0. Remember, it was wnj's work to demonstrate that UNIX was just as fast as VMS, which had been used to convince DARPA to let the contract for "UNIX support" (creating CSRG) vs. using an "officially supported" system from DEC directly which a number of the contractors wanted. Once CSRG started, two things changed at Berkeley that had huge external ramifications:
  • The manner distributions [master tapes] were created.
  • How released SW was named.
While there are common people and some of the tech is the same, trying to compare anything post 4.1BSD with the earlier system will be confusing if not just lead to flawed conclusions -- not so much because of technical differences [which start to get larger] but because of the processes and procedures associated with the releases themselves and how they were distributed.

BTW: Research somewhat went through some of the same changes. Basically, V0-> V1 -> V2 -> V3 -> V4 is the state of Ken's system at the time, and the "release" number is not (yet) very formal [Lou Katz talks about the RK05 that Ken copied for him for the first official released outside - V4 at Columbia]. The key is that someone in research writes tapes [imaging your RK05]. - but the early 'research releases' are ephemeral. Starting with V6, Ken/Dennis masters a tape in research, and the IBM shop is imaging that for people licensing the IP -- i.e., everyone is getting the same bits on their tape. Although with V6, the famous "patch tape" leaks independently, and with V7, the master tape that I believe srb originally created was updated to add the "agenda" directory - so if you got one of the first tapes [like I did], that directory is missing.


So remember that UCB uses a similar scheme for BSD, 2BSD, 3BSD, 4BSD, and 4.1BSD. In fact, the standard scheme was you sent the ILO a blank tape, and it was returned to you with the bits on it. For the first two, we have the contents of the development area on the Cory Hall machine. With the 3/4/4.1 release, it is the contents from Ernie [as I recall, Bob Kriddle or one of his minions was responsible for copying tapes for the ILO]. But contents (i.e. the bits) change anytime the tapes are spun (they were written in batches for the ILO -- who handled the licensing/distribution). BTW the other ILO distributions worked the same way. I would write any requested CAD tape every couple of weeks when they asked me too.

But starting with CSRG, Sam set up a distribution area. And the copies sent out were just that. Also, by then, if you asked for a copy, you were paying UCB $1000 or so for the costs, but it included the tape (the original BSD tape was either free with the self-stamped tape or very nominal). Also, remember 4.1A, 4.1B, and 4.1C were beta's or release candidates -- they were not widely distributed like 4.1BSD had been. 4.2 was the first official release from CSRG. [Don't forget BBN had the official DARPA network stack - and that was for 4.1].

Basically. the primary DARPA folks like BBN, MIT, Stanford, UCLA, CMU, Utah, etc.. might have gotten a copy of 4.1A/B/C to give feedback. That's why you see the socket interface change so dramatically between 4.1A and 4.1C. Simple 4.1A was Kirk's new file system and the first shot at BSD's network stack [again remember UNIX has a TCP/IP stack already that any DARPA contractor could get from BBN - but you had to have a BBN license for it -- but that's a different story]. With 4.2 we see the wider world get everything, and of course, the network stack and sockets interface would start their spread from the UCB code base.

I hope this helps,
Clem