Analysis time now that I've actually sat down with the 3.0, 4.1, and 5.0 manuals and looked at several things side-by-side. Very raw notes are here:
https://pastebin.com/m7K4jxn5
The first and most obvious thing is that the 4.1 manual does not include the 1M, 7, and 8 manual sections, just like the 5.0 manual, so I unfortunately still do not have a complete picture of the userland environment available in UNIX 4.x. That means there is a second manual, the 3B20S UNIX Administrator's Manual Release 4.1, somewhere out there in the wild. Maybe I'll come across it someday, who knows. In any case, 4.1 sees the manual page sections swap from their 3.0 to their 5.0 configuration, so special files moved to 7 and those before it shuffled a bit.
The title page has minor changes. 4.1 sees the removal of the editor names and Laboratory 364 address, moves the Bell Labs trademark notice to the front page, and adds the not for disclosure text. 5.0 only seems to add "System" to the title name.
The intro undergoes several changes between 3.0 and 4.1, but relatively few between 4.1 and 5.0, meaning the wealth of the rewrite was in the 4.x period. Notable changes include:
- Hardware-specific pages will be noted in the page mast
- Obsolete functions will be marked as such
- References to dpr and fget as example networking applications are replaced with send and uucp, moving from RJE to UUCP?
- A reference to UNIX as a "supervisor" is updated to "kernel"
As for utilities, this manual is indeed 3B20 specific in that it omits many pieces that either weren't available on 3B20 yet at the time or weren't relevant to the platform. Notable omissions include SNOBOL, Fortran, and BASIC.
We see IPC start to take form here, with all SysV IPC interfaces except icprm provided in 4.1. Icprm is then provided in 5.0. 4.1 also marks the replacement of cref and xref with cxref, which survives to this day in the POSIX standard. Another POSIX utility, cflow, is also added to 4.1. The LP printing service also finds its start in 4.1. A few 3B20 development tools such as a disassembler and C source listing application are added. Unknown to what degree this sort of thing was supported on various architectures. There is a slight adjustment to the Virtual Protocol Machine (vpm) interface in 4.1, dropping vpmstart for vpmsave and vpmset. 4.1 sees the removal of mmcheck and typo utilities, presumably starting to be split off towards WWB/DWB-land, although the UNIX 5.0 Bell Labs manual I have does have more of those sorts of commands. I didn't pull that one in this analysis, I'll compare that one to the Western Electric 5.0 at a later time. An application in 3.0 called dump for some sort of filesystem dumping is replaced with a wholly different application, also called dump, for dumping parts of object files.
UNIX 4.1 also includes a handful of library function additions, and, aside from IPC, the plock and sys3b syscalls for locking and 3B-specific system calls respectively. The added library functions are: drand48, getcwd, hsearch, regcmp, stdipc, strtol, tsearch, and a number of ld-prefixed object file functions. These all survive into 5.0. Two new errnos are added for IPC: ENOMSG and EIDRM.
A terminal interface called termio is briefly introduced in 4.1, but doesn't appear in my 5.0 manuals. A couple of macro packages, mosd and mptx, are added in 4.1. Finally, a game called jotto is added to the games list.
On to 5.0. Without a 4.1 Administrator's Manual, it's hard to tell what in those sections originated where, but as far as differences, the 5.0 manual contains pages describing general versions of ar, as, ld, size, and strip, as well as PDP-11-specific versions. What I can't tell yet is if this common + PDP vs one-tool-per-arch approach came about in 4.1 or 5.0, as in 3.0 there are, for instance, as.pdp and as.vax. Somewhere between 4.1 and 5.0 the KMC11 tools become KMC11B tools. The machid command is added to identify system architectures. NROFF and TROFF are on the same manual page in 4.1 but split to two separate ones in 5.0, perhaps indicating ditroff developments. I haven't looked at the differences in the actual pages yet. 5.0 introduces the 'se' screen editor and ststat for synchronous terminal reporting.
5.0 also adds another slew of library function pages: clock, erf, ftw, getut, matherr, memory, sputl, ttyslot, and some BX.25 link management bits.
5.0 introduces data file format pages for the common a.out format (as opposed to PDP-11 format). There are pages for the a.out itself, ar changes, filehdr, ldfcn, and linenum. Additionally, there are added files for gettydefs and issue for the new init/getty (sysvinit) system.
In fact, that touches on one major change, 5.0 does indeed represent the first instance of the ubiquitous init system being present in the commercial line. From what I can tell, sysvinit was borrowed into 5.0 from the latest CB-UNIX at the time. While I don't have the Administrator's Manual here, I do have the inittab description in section 4, and the description in 4.1 describes the same file as 3.0 rather than 5.0.
In other words, this manual confirms that the init currently implemented by the sysvinit project and used since 5.0 truly did start with System V, as 4.1 used the older inittab format from 3.0. I've been curious for a while now where this particular init comes from, because it isn't the research init that consumes /etc/rc and /etc/ttys but neither is it the sysvinit that eats id:runlevel:flags:command inittab lines, but rather runlevel:id:flags:command. I've had a hunch that this represents an earlier USG init that perhaps CB borrowed as well but further developed after they branched it off and it eventually got worked back into 5.0. Either way, it's nice putting that to bed with solid proof, 4.1 never used sysvinit and it really did break out of Bell with System V.
So the general picture I'm seeing start to form is: UNIX 4.1 was a user experience somewhere between UNIX 3.0 and UNIX 5.0, as one would expect, but closer to 5.0 than 3.0. The system incorporated the new IPC, cflow, cxref, LP printing, several portability improvements, changes to the Virtual Protocol Machine, process/text/data locking, 3B support, mosd and mptx macros, and began moving away from the PDP-11 as the primary platform. Documentation changes would've largely been the split of the User's Manual sections 1M, 7, and 8 out into a separate Administrator's Manual and the production of two volumes of Documents for UNIX (vs the 1 Volume? of UNIX 3.0).
UNIX 5.0 then shows these trends continuing, more generality of commands, addition of a new init/getty system from CB-UNIX. The 'se' screen editor is added, object file processing applications are generalized (this could've happened sometime before 5.0), and some sort of synchronous terminal interface is added. Also, an auto call unit is added. Several drivers show up for storage devices sometime between 3.0 and 5.0 and 3B20 administrative documentation is added.
Humorously, a sentence is removed from the intro to the games section after 3.0 stating to consider using cron(1) to prevent abuse of the games section during working hours. Perhaps Bell management acquiesced to routine games of wump. As an aside, wump was one of the first programs I ran on a real UNIX, I had figured out how to rsh into an old RS/6000 in the server closet at a lab I was working in at the time, played many rounds of wump and quiz on it. I remember setting up a SVR4/386 machine out of an old instrument computer that was lying around there too, I miss that server room...
Well I think that's certainly enough for one email. Wanted to get some analysis on the matter out since it'll be a while before I've got the manual scanned, wanted to give folks some stuff to crunch on. I'll be slowly and lazily comparing applications themselves as I work through the manual but I certainly don't intend to read every single line, so it'll just be spot checking for typesetting consistency, if a page "looks" like everything is identical, I probably won't pay it any mind.
------- Original Message -------
On Saturday, December 10th, 2022 at 10:28 PM, John Cowan <cowan@ccil.org> wrote:
Okay, I've done a quick and dirty conversion to PDF and put it on line. My public Google Drive folder is <
https://tinyurl.com/johnwcowan-public>, and the file is oap-ef.pdf (all four pages).
On Sat, Dec 10, 2022 at 9:21 PM segaloco via TUHS <
tuhs@tuhs.org> wrote:
Here's the raw TIFFs of the quad-not-tri-fold. I don't know where cool kids upload their stuff these days, and I don't have a server on hand at present to pop them up on so here's the temporary service Google lottery turned up, these links are good for 5 days. These are just raws because I have no idea the "page order". I plan on doing another scan and proper PDF when I swing back around to my larger backlog of work.
https://tempfile.io/en/UsIiCxdEX4GzNZD/preview
https://tempfile.io/en/fBUARNk3iY7u2im/preview
https://tempfile.io/en/oWlNbcWQDBXnD19/preview
https://tempfile.io/en/CA51aK9E9AdOu7g/preview
Btw if anyone has any hosting suggestions, I'm all ears. Part of the reason I've stuck with 300dpi in the past is simply finding somewhere that'll accept the behemoth of a scan a 600dpi of some of these hundred page manuals would be. Hosting is my main block. Granted, Warren has generally allowed space for the Documents for UNIX 4 collection, there's still the matter of me getting stuff to Warren in the first place.
- Matt G.
P.S. I didn't look at these, remembered at the last minute out the door so just scanned and uploaded.
P.P.S. Scanned the 4.1 manual cover too.....in b/w, so need to do that one again. That won't be tonight, but I unbound it so will likely start on the formal scans once I'm moved.
------- Original Message -------
On Saturday, December 10th, 2022 at 4:07 PM, Jason T <silent700@gmail.com> wrote:
> On Thu, Dec 1, 2022 at 11:04 PM segaloco via TUHS tuhs@tuhs.org wrote:
>
> > Exciting development in the process of finding lost documentation, just sealed this one on eBay: https://www.ebay.com/itm/385266550881?mkcid=16&mkevt=1&mkrid=711-127632-2357-0&ssspo=abbj5srltbk&sssrc=2047675&ssuid=&widget_ver=artemis&media=COPY
> >
> > After the link is a (now closed) auction for a Western Electric 3B20S UNIX User's Manual Release 4.1, something I thought I'd never see and wasn't sure actually exited: print manuals for 4.x.
>
>
> This is quite cool, and I didn't know it existed, either. I'm looking
> forward to the scan of it, but if it's not too much trouble, I wonder
> if you could take a nice 600dpi color jpg scan of the cover as well?
> It might make a nice poster someday.
>
> -jt