Page MenuHomeFreeBSD

bsd-family-tree: Add 2.8BSD relationship to 7th edition
ClosedPublic

Authored by imp on Jun 24 2021, 3:12 PM.

Details

Summary

The 2.8BSD tapes were the first ones to include a kernel, both source
and a bootable tape. This was an AT&T V7 kernel, with a number of bug
fixes, features in use at Berkeley, performance enhancements that were
circulating to V7 in the licensee community and some build system
changes. It lacks the tell-tale changes that are in 32V, however, at
least according to the extant sources in the TUHS archives.

As such, there's a direct line from V7 unix to 2.8BSD. The V6 lines to
1BSD and 2BSD seem at first to be a little misleading since the tapes
appeared to just include software that ran in V6. However, ashell was
derived from the v6 shell, and ex was an enhanced v6 ed, so I left that
line in place.

In addition, the 2.8BSD tapes incliuded the 4.1BSD job control code and
some userland utilities, so that line is still correct and wasn't
removed.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

imp requested review of this revision.Jun 24 2021, 3:12 PM
imp created this revision.

Since there is already a lineage from the Seventh Edition to 2.8BSD via 32V, 3BSD, 4.0BSD and 4.1BSD, I don't think it's easy to find what happened by looking at the historical code.

In Salus's book A Quarter Century of UNIX (p. 61) there is no such arrow in the corresponding diagram.

On the other hand, on pp. 171, 172 of the same book Mike Karels narrates: "was a group doing data collection on a PDP-11/40 running V6 Unix […] I was put in charge […] we had a disk crash and lost a bunch of customized V6 stuff. And V7 was coming out a this time […] So rather than reconstruct the V6 stuff, we got V7. […] But then I began working on what became 2.8BSD."

So it seems that 2.8 was probably based on the V7 code and that this change is appropriate.

In D30883#694898, @dds wrote:

Since there is already a lineage from the Seventh Edition to 2.8BSD via 32V, 3BSD, 4.0BSD and 4.1BSD, I don't think it's easy to find what happened by looking at the historical code.

Generally, I would concur with this statement, having looked at a lot of historic code. In this case, though, it was easy to determine that a patched V7 kernel was present, that the kernel didn't have changes from 32V, 3BSD or 4.0BSD in it (since the structure had also started to change) and that the V7 kernel and user land were clearly not present in any of the earlier 2BSD tapes that I could tell. The changes from V7 to 32V weren't large, for example, and it's easy enough to see they were absent from 2.8BSD. However, finding supporting historical commentary like you've done helps :)

In Salus's book A Quarter Century of UNIX (p. 61) there is no such arrow in the corresponding diagram.

On the other hand, on pp. 171, 172 of the same book Mike Karels narrates: "was a group doing data collection on a PDP-11/40 running V6 Unix […] I was put in charge […] we had a disk crash and lost a bunch of customized V6 stuff. And V7 was coming out a this time […] So rather than reconstruct the V6 stuff, we got V7. […] But then I began working on what became 2.8BSD."

Ah yes. I recall now that Mike had related that story to me, in less detail, over drinks at BSDcan one year... Always good to find it in writing...

So it seems that 2.8 was probably based on the V7 code and that this change is appropriate.

Excellent. Thank you!

This revision was not accepted when it landed; it landed in state Needs Review.Jun 25 2021, 5:31 PM
This revision was automatically updated to reflect the committed changes.