User Tools

Site Tools


systems:usg3

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
systems:usg3 [2026/04/30 10:28] 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 [[systems:mert0|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 [[systems:sys5|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 [[systems:usg2|Issue 2]]'s 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.1777508923.txt.gz · Last modified: by segaloco