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(a)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(a)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(a)gmail.com>
wrote:
>
>> On Thu, Dec 1, 2022 at 11:04 PM segaloco via TUHS tuhs(a)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-12…
>> >
>> > 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