Got a little present for folks today. Been working on this for a little while now, and
while there'll probably be some edits here and there, I believe it to be quite
accurate.
After the link is a manpage restoration of the UNIX 4.1 User's Manual (3B20S) that I
bought a little while ago:
https://gitlab.com/segaloco/pwb4u_man
The permuted index is the only significant piece that isn't done, but that
shouldn't impact the informational value. Note this is just u_man, I haven't
found a complimentary a_man copy yet. I hope one will turn up one of these days, but I
plan on at least analyzing the gap between System III and System V with regards to those
pages as a future project.
My process involved diff'ing the available III and V manpage sources and reconciling
differences between the two and 4.1 with some copy-paste here and some restoration there.
Where differences couldn't be resolved, I simply removed content to match the
physical pages. One minute detail that is also not filled in is the page count in
M.folio. So I didn't count the pages. Maybe someday. In any case, I appreciate the
opportunity this has given me to learn the manpage macros pretty well.
Anywho, in the second pass of verifying the changes I took some notes on noteworthy
mentions. This list is not an exhaustive analysis but represents some of the areas where
significant developments shine through in the text:
System III->4.1 (No claims are made as to what occurred at 4.0):
- The documentation is cleaned up quite a bit in general, in what seems like a push
towards commercial-ready manuals. Many sections are edited to be more clear and
descriptive. There is also a notable shift towards gender neutral language. The editors
and acknowledgements info are removed, casting an anonymous shadow over the manual
maintainers and their muses alike.
- The tty manpage is renamed termio, reflecting the shifting terminal interface
landscape at this time.
- This release adds IPC with a familiar interface to what is in System V. According
to various accounts the IPC was under heavy development at this time, but while the
underlying components may have been shifting and changing, the documentation changes
suggest a relatively stable programmer API by this point. The only IPC-related piece
System V adds is icprm(1).
- The LP print service is added here. The old lpr system is still there in the
background; it is in System V. However, it is relegated to DEC only status.
- SGS and COFF development components show up with 4.1 3B-20. No telling what else
they officially supported in the 4.x timeframe. The System V pages as described below
indicate a number of supported platforms.
- The shell gets the $CDPATH and ulimit features
- Many system features show a trend towards portability (except the PDP-11, the system
appears to be moving away from it)
- The Virtual Protocol Machine (VPM) seems to go from targeting KMC11 to UN53 and
V.35. Haven't researched what these are yet, but VPM is on the move.
- As of 4.1, 3B-20 does *not* support: Fortran, BASIC, Honeywell/GCOS 6000
connectivity, lpr printing, SNOBOL, standalone C
- Added pages include cflow(1), cprs(1), cxref(1), dis(1), dump(1) (was a tape dump
(1m), now a SGS tool), enable(1), hpio(1), ipcs(1), list(1), lp(1), lpstat(1), newform(1),
sadp(1), trouble(1), x25pvc(1), msgctl(2), msgget(2), msgop(2), plock(2), semctl(2),
semget(2), semop(2), shmctl(2), shmget(2), shmop(2), sys3b(2), drand48(3c), getcwd(3c),
hsearch(3c), ld*(3x) (COFF library), setbuf(3s), stdipc(3c), strtol(3c), termio(4)
(renamed from tty(4)), ldfcn(5), mosd(5), mptx(5), jotto(6)
- Removed pages include cref(1), dump(1m), fget.odemon(1c), odpd(1c), orjestat(1c),
reform(1), tp(1), typo(1), xref(1), tp(4), tty(4) (renamed to termio(4))
- Some pages were skipped and show back up in System V with minimal changes, meaning
they were probably in 4.x: adb(1), arcv(1), bs(1), dpd(1c), dpr(1c), efl(1), f77(1),
factor(1), fget(1c), fget.demon(1c), fsend(1c), gcat(1c), gcosmail(1c), kas(b)/kun(b)(1),
lpd(1c), lpr(1), ratfor(1), scc(1), sno(1), vpr(1)
4.1->System V (Likewise, there was at least a 4.2):
- Documentation is cleaned up and edited some more. Almost everywhere that the name
"UNIX" occurs, it has been replaced with some variation on "The UNIX
System" with a capital S. This is lower case in my 5.0 manual which I have not
combed for differences with System V yet. Still, the "system" following is
standard by 5.0 it seems. This is right around the time of dashing Bell associations too,
so variations of this manual exist with and without the Bell logo on the front, and with
varying degrees of modification to explain the legal landscape involved.
- Section 3 in particular sees a pretty significant rewrite effort. This coincides
with MR 1055 here:
https://archive.org/details/unix-system-release-description-system-v/I%20-%…
- A new portable archive format is introduced. By the sounds of it, this introduces a
new header type into the ar(4) format.
- A new 1024-block filesystem is introduced, along with necessary support.
- A new synchronous terminal interface is added.
- VAX is supported by SGS/COFF now. Additional platforms as suggested by formatting
marks in the pages include: Basic-16, Bellmac 32, and 8086, in addition to the already
supported 3B-20. Unknown whether these platforms found any support with USG releases.
- ex(1) is added (along with vi(1) and edit(1)). There is also the se(1) editor which
I don't know much about.
- CB-init is added, shaking up the /etc/inittab format and many login-related
features. MAUS also steps in from CB for shared memory on PDP-11.
- Added pages include asa(1), convert(1), cpp(1), edit(1), ex(1), fsplit(1), ipcrm(1),
machid(1), makekey(1), net(1c), nscstat(1c), nsctorje(1c), nusend(1c), scat(1), se(1),
stlogin(1), ststat(1), vi(1), maus(2), clock(3c), dial(3c), erf(3m), getut(3c),
matherr(3m), memory(3c), sputl(3x), ttyslot(3c), x25*(3c), filehdr(4), gettydefs(4),
issue(4), linenum(4), reloc(4), scnhdr(4), syms(4)
- Removed pages include vpmc(1c), vpmsave(1c), vpmset(1c), x25pvc(1c), fptrap(3x)
That's all I've got. As time goes on I'll start documenting worthwhile
tidbits in the Wiki. If there's any question of the contents of any of the pages,
I'll happily consult the original and make corrections, and can scan any page to
verify the contents if needed. I'll eventually be scanning the whole thing, just not
right now. Feel free to open a pull request if you think something needs to change.
- Matt G.