User Tools

Site Tools


systems:usg3

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
systems:usg3 [2023/05/21 17:10] – created segalocosystems:usg3 [2026/05/25 17:49] (current) segaloco
Line 3: Line 3:
 **Release Date:** March, 1977\\ **Release Date:** March, 1977\\
 **Released By:** UNIX Support Group\\ **Released By:** UNIX Support Group\\
-**Source Code: ** None Available\\ +**Source Code: ** [[https://www.tuhs.org/Archive/Distributions/USDL/Cloutier_USG_PG3/usg_pg_issue_3.tar.bz2|usg_pg_issue_3.tar.bz2]] in the [[https://www.tuhs.org/Archive/Distributions/USDL/Cloutier_USG_PG3/|Unix Archive]], browsable in the [[https://www.tuhs.org/cgi-bin/utree.pl?file=USG_PG3|Unix Tree]]\\ 
-**Documentation: ** [[https://www.tuhs.org/Archive/Documentation/Manuals/MERT_Release_0|MERT_Release_0]]'UNIX portion is based on the Issue 3 manual, and the introduction can be consulted as to which pages have been replaced as part of MERT Release 0\\+**Documentation: ** The [[https://www.tuhs.org/Archive/Documentation/Manuals/Program_Generic_Issue_3/UNIX_Programmers_Manual_Program_Generic_Issue_3.pdf|UNIX Programmer's Manual]]'for PG-1C300 has been preserved in the [[https://www.tuhs.org/Archive/Documentation/Manuals/Program_Generic_Issue_3/|Unix Archive]]\\ 
 +A WIP reconstruction of the manpage sources is maintained [[https://gitlab.com/segaloco/usg_man/-/tree/pg3|here]]
  
-UNIX Program Generic Issue 3, otherwise known as PG-1C300, is a version of the UNIX operating system issued by the UNIX Support Group in March of 1977.  The Program Generic line was used as a standard, supported UNIX base on which to base other projects and supply a computing environment to a larger group of users than the Research group could support.+UNIX Program Generic Issue 3, otherwise known as PG-1C300, is a version of the UNIX operating system issued by the UNIX Support Group in March of 1977.  The Program Generic line was used as a standard, supported UNIX base on which to base other projects and supply a computing environment to a larger group of users than the Research group could support.  PG 3 would go on to serve as the base of the real-time MERT Release 0 system.
  
-PG 3 would go on to serve as the base of the real-time MERT Release 0 system.  The majority of the pages in the above manual descend from the Issue 3 manual.+One particular change is the adoption of a new runlevel-based init system, an ancestor of the inittab-driven systems found in later UNIX branches.  Issue 3 also sees the adoption of SCCS from the PWB project as well as half-duplex terminal support, allowing for the use of various Dataspeed (Teletype) Model 40 terminals.
  
-One curious matter is the exclusion of page called "lines" in section V (File Formats).  In the available [[systems:cb1|CB-UNIX]] manualthere is a partially included lines(5page that bears striking similarity to the nearby inittab(5pagewhich of course would go on to be the inittab introduced commercially with System V.  This page which has been omitted from MERT Release 0 may very well represent an appearance of a CB-UNIX-like init environment in Issue 3 in 1977.  An owner of an Issue 2 manual (in an email that will be linked when foundconfirmed that Issue 2'init system was more in line with that of Research UNIX, making this lines-based init an Issue 3 feature.+On April 25th, 2026 it was announced that copy of Program Generic Issue 3 had been successfully archived, preserved, and resurrected in SimH's PDP-11 emulator.  More can be found [[https://www.tuhs.org/pipermail/tuhs/2026-April/033604.html|here]]. 
 + 
 +Program Generic Issue 3 includes the following differences from Issue 2: 
 + 
 +  * Support for half-duplex terminals such as the Teletype/Dataspeed 40/1 and 40/2 and Tektronix 4010 and 4012 are added via the hd(IVdriver.  More can be found in the document [[https://www.tuhs.org/Archive/Documentation/TechReports/USG_Library/1077_UNIX_DH_11_Driver_to_Support_Both_TTY_and_Dataspeed_40_Terminals.pdf|UNIX DH-11 Driver to Support Both TTY and Dataspeed 40 Timesharing Terminals]] 
 +  * The db(I) and cdb(I) debuggers are retired in favor of adb(I). 
 +  * The PWB/SCCS Release 3 is added.  This version is the prior release described in the PWB/SCCS Release 4.0 PIB [[https://www.tuhs.org/cgi-bin/utree.pl?file=PWB1/usr/news/pibs|here]]. 
 +  * as(I) and ld(I) allow specification of the output file name. 
 +  * cat(I) gains the -u (unbuffered) option. 
 +  * cc(I) will pass ".s" files to the assembler. 
 +  * The -E-D, -I, and -C options are added to cc(I).  In particular, the -C option is used to specify "compool" directory for include searches.  The default directory is "/compool/" Additionally an -h option is provided to include the CWD (as opposed to the directory of a source filein the search path for local includes. 
 +  * cd is added as an alias for chdir(I). 
 +  * Support for the sticky bit is added. 
 +  * The chroot(I) command is added. 
 +  * The cp(I) command gains a -t option to report the number of blocks copied. 
 +  * The cpall(Iand mvall(I) commands are added to bulk-transfer filesystem objects. 
 +  * utmp and wtmp are moved into /etc 
 +  * dd(I) loses the sync conversion flag 
 +  * diff(I) takes on the more familiar e and f optionsdropping 1 and 2. 
 +  * diff(I) adds the b option for ignoring whitespace. 
 +  * diff3(I) is added. 
 +  * ed(I) regular expressions add '-' ranges. 
 +  * ed(I) adds subsequent matching of prior subexpressions. 
 +  * ed(I) adds the Q and E commands to override warnings on q and e. 
 +  * ed(I) adds a u command to undo the last s command. 
 +  * Typesetting utilities troff(I), eqn(I), neqn(I), and tbl(VI) are added. 
 +  * ld(I) adds -e and -b options for defining the entry point and memory base respectively. 
 +  * The lines(V)-based init(VIII) is added, resulting in changes to getty(VIII) as well as the retirement of many tty-flavored utilities and pages in favor of line-flavored utilities.  This init system resembles CB/System V init much moreso than Research init. 
 +  * The ps(I) command adds PPID, CPU, NICE, LNE, and TIME for the parent process-id, CPU process magic number, process penalty, line number, and user/system time respectively. 
 +  * The sed(I) command is added. 
 +  * Kill and erase reassignment are added to stty(I). 
 +  * The tail(I) and tee(I) text filters are added. 
 +  * The wall(I) command is added. 
 +  * Character count is added to wc(I). 
 +  * The who(I) command is greatly expanded with regards to the lines(V)-based init and accounting. 
 +  * Errno 14 has been reassigned EFAULT for "Memory fault"
 +  * Errnos 33-37 have been assigned ETABLE, EFUNC, ENOMSG, ENOALOC, and EBIOCTL. 
 +  * The mdate(II) syscall is dropped. 
 +  * The access, acct, ioctl, ptrace, and tell syscalls are added. 
 +  * The chroot(II) syscall is added, later showing up in 1980'Release 3.0
 +  * The call(II) syscall is added as a combined fork-exec. 
 +  * The errlog(II) syscall is added for error logging to an error daemon. 
 +  * The msg(II) IPC primitive is added (more [[https://www.tuhs.org/Archive/Documentation/TechReports/USG_Library/1090_Proposal_for_UNIX_Interprocess_Communication.pdf|here]]) 
 +  * The getppid syscall is added to support IPC. 
 +  * The lock(II) semaphore interface is greatly expanded. 
 +  * The signal(II) syscall adds 15 (catchable kill) and 18 (death of a child) signals. 
 +  * TTY 1200 baud support is more clearly stated. 
 +  * The times(II) syscall now returns a struct of longs. 
 +  * The itol(III) and ltoi(III) subroutines are added for packing/unpacking between longs and ints. 
 +  * The lseek(III) subroutine is added for using longs with seeks. 
 +  * The %D, %O, and %X format specifiers for printf(III) are added for specifying decimal, octal, or hexadecimal *long* integers respectively. 
 +  * A %u specifier is added for unsigned integers in printf(III). 
 +  * The cm(IV) minitape interface is added. 
 +  * Line disciplines are supported in the tty(IV) driver via ioctl(II). 
 +  * The dp(IV) Dataphone interface timeout is doubled from 5 to 10 seconds. 
 +  * The suggested hp(IV) disk geometry has changed. 
 +  * The a.out(V) magic number 405 is added as an "overlay" file. 
 +  * A recsize field is added to the header structure of a dump(V)
 +  * The reform(VI) utility is added. 
 +  * The accton(VIII) utility is added. 
 +  * The dcheck(VIII) and ncheck(VIII) disk utilities are added. 
 +  * The dump(VIII) and restor(VIII) command adds options for 800/1600 bpi switching. 
 +  * The errdemon(VIII) and errpt(VIII) error reporting mechanism is added. 
 +  * The iostat(VIII) I/O statistics utility is added. 
 +  * The load(VIII), mkconf(VIII) and mkpt(VIII) system generation utilities are documented. 
 + 
 +See Shamim Sharifuddin Pirzada'[[https://www.tuhs.org/Archive/Documentation/Theses/Shamim_Sharfuddin_Pirzada-1988-PhD-Thesis.pdf|A Statistical Examination of The Evolution of the UNIX System]] for more information about the history of USG UNIX.
systems/usg3.1684653027.txt.gz · Last modified: by segaloco