[TUHS] The Curious Case of "x"-suffixed Kernel Headers in 50 Changes
segaloco via TUHS
tuhs at tuhs.org
Sat Jul 18 18:54:30 AEST 2026
I stumbled across something tonight that has me a bit curious. So both
Program Generic 3 and CB-UNIX 2.3 include a series of "x"-suffixed
headers in the kernel which contain the declarations for a number of
kernel data structures. For instance, filex.h in PG3 is:
> /*
> * Allocation for the file table.
> */
> struct file file[NFILE];
Well, the "50 Changes" tape issued between V6 and V7 also includes
similar header changes, for instance:
> ------ filex.h
> 0a1,4
> > /*
> > * Allocation for the file table.
> > */
> > struct file file[NFILE];
Several other bits from "50 Changes" appear in both PG3 and PWB1,
suggesting both were based on at least some portion of this updated V6,
for instance both include pause(2), alarm(2), and access(2). However,
neither PWB1 nor V7 include these "x"-suffixed headers. Additionally,
they are not in System III and beyond, suggesting they did not work
their way into UNIX/TS either. This leaves the Program Generic and
CB-UNIX lineages as the only ones that demonstrate this (although I have
not gone looking to see if these are in No. 2 SCCS UNIX yet, I don't
have kernel sources unfortunately but I may have a file schedule
somewhere.)
Anywho, this suggests some interesting context for the "50 Changes"
tape. My speculative brain wants to say this may indicate that the
changes swept up some USG-ish UNIX stuff, but this is just speculation.
Does anyone know the absolute providence of the 50 Changes tape? Is it
possible that the kernel version therein is a little more USG-ish than
research? That said, when you get down to sysent, the message passing
and error reporting features of USG UNIX are simply stubbed out as
"reserved for USG", where these are implemented in PG3.
By the way, the reason I'm looking into this 50 Changes tape is I want
to make a cleaner diff between V6 *at the time USG would've sampled it*
and PG3. Many of the 50 Changes are also in PG3, so presumably there
is a common ancestor, but the whole filex.h et. al. matter has
certainly muddied the situation. If I didn't know any better, I'd
want to believe the 50 Changes is the patch from V6 to USG PG1, but
that might be too far of a reach.
- Matt G.
More information about the TUHS
mailing list