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(a)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
ᐧ
ᐧ