[TUHS] WECo UNIX 3B5 User's Manual Found

segaloco via TUHS tuhs at tuhs.org
Sat Jun 17 05:52:50 AEST 2023

Good day, I've just received in the mail a UNIX System User Reference Manual for the 3B5 computer.  It has a few differences with other documentation around it.  As usual with an initial expository message, lots of info here, mostly so it'll get in the archive and on the record.

So first off, I can't find a version reference in this thing.  It is branded as "UNIX System" consistent with the branding nomenclature in the System V era, but I can't actually find the term "System V" anywhere thus far.  However, a high level view implies relative parity with the initial release of System V.  There are some areas where nomenclature is closer in character to the Release 5.0 manual, for instance, the "basinf" section in the intro refers to the user guide as "UNIX User Guide" rather than "UNIX System User's Guide" which is found in later System V stuff.  In fact, this minor reference may point to some branching in the documentation between 4.x and SVR2 as I have the following in various manuals (prior to 4.1 i.e. 3.0/SysIII the reference is still directly to UNIX For Beginners, not a guide):

    - Release 4.1                - "UNIX User's Guide"
    - Release 5.0                - "UNIX User's Guide"
    - Release 5.0 BTL            - "UNIX User's Guide"
    - System V                   - "UNIX System User's Guide"
    - System V 3B5               - "UNIX User Guide"
    - System V R2 BTL            - "UNIX System User Guide"
    - System V DEC (1984)        - "UNIX System User Guide"
    - System V R2 (1986 Manuals) - "UNIX System User's Guide"

So SysV adds "System" to what was in Release 5.0, this carries through to conventional SVR2.  The 3B5 version, however, drops the apostrophe and 's' that were in the pre-SysV nomenclature but doesn't add "System".  Then even more confusing the SVR2 BTL copy appears to bear some lineage from this as it also has the dropped apostrophe and 's' but includes "System".  Strange.  Even stranger is I decided to take a peek at SVR2 docs from 1984, they lack the apostrophe and 's', but later SVR2 material from 1986 restores it.  I wonder if this implies the 3B5 branch was started in the 5.0 days, diverged a bit, and then was only partially recombined with System V before release, although on the flip side, this manual *does* include the edit, ex, and vi manpages which were not printed in time for the System V manual run (as they are included with a separate documentation package instead.)  This tracks with the BTL 5.0 having edit, ex, vi, and termcap present from Holmdel, the BTL manual got the pages early.  All that to say, there are things in this manual that aren't yet in published System V manuals at the time, but there are things in this manual that have since been altered by the time of the formal System V documentation, pointing to an earlier branch point and then ongoing cross-talk after that.

Included are references to a "3B Computer Network" and a few utilities associated.  There are a few other pages too I didn't see in other contemporary public manuals, in total:

    - dcon(1) - Spawns a shell on a remote system via a DATAKIT circuit
    - logdir(1) - Returns the home directory field from /etc/passwd, this is in the BTL versions, I don't see it in public SysV though
    - ncp(1) - Copies files over the DATAKIT network
    - nisend(1) - Copies files over the "3B Computer Local Network"
    - nistat(1) - Query the status of said network
    - nitable(1) - Display the configuration table of said network
    - niupdate(1) - Update said configuration table
    - nkill(1) - Kill but using process names instead of IDs, but doesn't define process names, be it argv[0], the name of the image file, etc...
    - rexec(1) - Executes commands over a DATAKIT network
    - rl(1) - Login remotely over the 3B Computer Network (distinct from dcon being DATAKIT remote logins) This appears to be uucp-derived (specifically cu(1))
    - dkdial(3) - Dials a DATAKIT connection
    - boothdr(4) - 3B5 only, provides the contents of <sys/boothdr.h> which supports storing parts of master(4), via mkboot(1M), in "a driver object file" to be used with "the self-config boot".

Section 6 is mentioned in the intro but then omitted from the rest of the manual, so nothing to compare there.  Also keeping with the documentation changes at the time, this does not include Sections 1M, 7, nor 8, as those are presumably in an accompanying Administrator's Reference Manual.  That is another thing pegging this as System V rather than SVR2, by SVR2 they had further divided from two to three manuals, splitting the user manual into Sections 1 and 6 (User) and Sections 2, 3, 4, and 5 (Programmer) (although even this isn't entirely true, I've got a "UNIX User's Manual" published in 1986, red ATTIS-style cover, that contains what appear to be selections from Sections 1, 2, and 3...it seems more geared towards folks writing portable software between SVR1 and SVR2 than anything)

Finally, here are the omissions I compared with the SVR2 BTL, SVR2 DEC, and 1986 manual mentioned above:

Removed by SVR2 public, only in the BTL version:
    - nscstat(1)
    - nsctorje(1)
    - nusend(1)
    - stlogin(1)
    - ststat(1)

Non-portable DEC stuff:
    - adb(1)
    - arcv(1)
    - kasb(1)
    - net(1)
    - vpr(1)
    - maus(2)
    - x25alnk(3) - This X.25 stuff never shows back up, probably dropped as of SVR2 BTL (1983)
    - x25clnk(3)
    - x25hlnk(3)
    - x25ipvc(3)

Non-portable 3B20S stuff:
    - cprs(1)
    - hpio(1)

Honeywell/GCOS Interop, gone by SVR2 BTL (1983):
    - dpd(1)
    - dpr(1)
    - fget(1)
    - fsend(1)
    - gcat(1)
    - gcosmail(1)

Graphics Subsystem, remains in SVR2 so probably not 3B5 supported as of this printing:
    - gdev(1)
    - ged(1)
    - graphics(1)
    - gutil(1)
    - stat(1)
    - toc(1)

So just to review, some matters this manual supports:

    - The initial 3B5 UNIX release seems closest in character to the initial System V version
    - Many DEC and 3B20-specific components are omitted
    - The Honeywell/GCOS interop was on the way out the door and likely never ported
    - The graphics subsystem was not supported on 3B5 as of this release
    - Synchronous terminals and NSC networking are taken internal likely by this release, certainly by SVR2
    - The 3B5 version supported "DATAKIT" and "3B Computer Network" networks
    - Included a logdir(1) command used in BTL for getting a user's login directory from /etc/passwd
    - Included an nkill(1) command to kill a process by its (undefined) name
    - The boot process included a header object for "driver object files" used with a "self-config boot" process

If there are any questions or any pages folks think I should peruse for details, just let me know.  Otherwise this'll won't be hitting my detailed analysis for a while, I'm currently in the midst of figuring out a branching scheme in my mandiff repo that'll facilitate tracking the various forks, as I've found many changes between V5 and V6 that are *not* reflected in various ways throughout PWB, Program Generic, CB, and 32V (as an example, go look up where lpr(I) is and isn't available.)

- Matt G.

P.S. Kudos to the production quality of this manual.  It's a small binder, the pages are the same size as the earlier comb-bound manuals.  The binder rings themselves are fixed to the back cover and the right side of the rings is flat instead of rounded, so the pages sit very nicely whether opened or closed.  This compares with the BTL SVR2 binder where the rings are perfectly round and affixed to the spine instead, so they sit differently depending on whether the binder is on a shelf or open on a desk, with pages risking getting all crumpled up getting bunched up at the edge of the rings.  Certainly has nothing to do with software or technical history, but the physical nature of the various publications has also been factoring into my study.  Here's a picture of the two covers by the way, since I haven't given any visuals on my work in a while: https://i.imgur.com/hhaaxfA.jpeg

More information about the TUHS mailing list