User Tools

Site Tools


systems:4th_edition

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:4th_edition [2023/06/01 05:47] – Add changelog segalocosystems:4th_edition [2026/04/30 10:06] (current) segaloco
Line 3: Line 3:
 **Release Date:** November 1973\\ **Release Date:** November 1973\\
 **Released By:** Bell Labs Research\\ **Released By:** Bell Labs Research\\
-**Source Code: ** a kernel which predates 4th Edition is [[http://www.tuhs.org/Archive/PDP-11/Distributions/research/Dennis_v3/nsys.tar.gz|nsys.tar.gz]] in the [[http://www.tuhs.org/Archive/PDP-11/Distributions/research/Dennis_v3/|Unix Archive]]\\ +**Source Code: ** [[https://www.tuhs.org/Archive/Distributions/Research/Utah_v4/unix_v4.tar|unix_v4.tar]] in the [[https://www.tuhs.org/Archive/Distributions/Research/Utah_v4/|Unix Archive]], browsable in the [[https://www.tuhs.org/cgi-bin/utree.pl?file=V4|Unix Tree]]\\ 
-**Documentation: ** [[http://www.tuhs.org/Archive/PDP-11/Distributions/research/Dennis_v4/v4man.tar.gz|4th Edition man pages]], browsable in the [[http://www.tuhs.org/cgi-bin/utree.pl?file=V4|Unix Tree]]+**Documentation: ** [[https://www.tuhs.org/Archive/Distributions/Research/Dennis_v4/v4man.tar.gz|4th Edition man pages]], browsable in the [[https://www.tuhs.org/cgi-bin/utree.pl?file=V4|Unix Tree]]
  
-The fourth edition of Unix was the first version to have a kernel written in a high level language, C, along with some of the commands. A full and complete copy of Fourth Edition no longer existsWe have:+The fourth edition of Unix was the first version to have a kernel written in a high level language, C, along with some of the commands. A late snapshot of the Fourth Edition has been recovered [[https://www.tuhs.org/Archive/Distributions/Research/Utah_v4/|here]].  Along with this, we have:
  
   * The manuals for Fourth Edition in machine-readable format, and   * The manuals for Fourth Edition in machine-readable format, and
Line 13: Line 13:
 The "nsys" kernel was donated by Dennis Ritchie. This is a version of the kernel quite close to that released in Fourth Edition, but without pipes. Dennis Ritchie writes: The "nsys" kernel was donated by Dennis Ritchie. This is a version of the kernel quite close to that released in Fourth Edition, but without pipes. Dennis Ritchie writes:
  
-This is a tar archive derived from a DECtape labelled "nsys". What is contains is just the kernel source, written in the pre-K&R dialect of C. It is intended only for PDP-11/45, and has setup and memory-handling code that will not work on other models (it's missing things special to the later, smaller models, and the larger physical address space of the still later 11/70.) It appears that it is intended to be loaded into memory at physical address 0, and transferred to at location 0.+[[https://www.tuhs.org/Archive/Distributions/Research/Dennis_v3/nsys.tar.gz|This]] is a tar archive derived from a DECtape labelled "nsys". What is contains is just the kernel source, written in the pre-K&R dialect of C. It is intended only for PDP-11/45, and has setup and memory-handling code that will not work on other models (it's missing things special to the later, smaller models, and the larger physical address space of the still later 11/70.) It appears that it is intended to be loaded into memory at physical address 0, and transferred to at location 0.
  
-The Fourth Edition marks the first edition of research UNIX for which the accompanying manual is produced in NROFF rather than ROFF.  Many deprecated/retired pages can be found in the manx folder that still bear ROFF formatting.+The Fourth Edition marks the first edition of research UNIX for which the accompanying manual is produced in NROFF rather than ROFF.  Many deprecated/retired pages can be found in the manx directory that still bear ROFF formatting.
  
-Changes include:+Among the more noticeable changes are:
  
-  * Epoch is redefined as seconds from 1/1/1970 instead of ms from 1/1/1972 +  * The filesystem has been altered to support 14 character file names (over the previous 8 characters), to support group IDs, and to support indirect blocks allowing the use of larger storage devices (e.g. RP-11 disks) 
-  * Addition of the signal(II) syscall, deprecating cemt, fpe, ilgins, intr, and quit syscalls for specific signals+  * The object file loader has dropped support for V1-style a.out binaries but now supports shared text segments, and associated development tools have been modified to support this as well 
 +  * The epoch is redefined in seconds instead of milliseconds and with a reference date of 1/1/1970, starting the modern UNIX epoch 
 +  * The signal(II) system call is added to replace individual system calls for redirecting specific exceptions 
 +  * The contents of the /sys filesystem have been merged with the /usr filesystem 
 +  * Pipes have gained their familiar | syntax (along with ^)replacing the > which could be confused with output redirection 
 +  * Block devices now present both buffered and raw interfaces 
 +  * The init process now offloads machine-specific startup to /etc/rc rather than requiring modification for different disks and other localisms 
 + 
 +Other changes include:
   * Alteration of makdir(II) into the mknod(II) syscall   * Alteration of makdir(II) into the mknod(II) syscall
   * Removal of the mdate(II) and rele(II) syscalls   * Removal of the mdate(II) and rele(II) syscalls
Line 29: Line 37:
   * kill(II) can now be used to send arbitrary signals, not just kill itself   * kill(II) can now be used to send arbitrary signals, not just kill itself
   * stat(II) now reports if a file is a block or character special file   * stat(II) now reports if a file is a block or character special file
-  * exec(II) drops support for V1 a.out files 
  
   * Deprecation of applications targeting the assembly version of UNIX such as tmg(VI) and m6(VI)   * Deprecation of applications targeting the assembly version of UNIX such as tmg(VI) and m6(VI)
Line 41: Line 48:
   * date(I) adds support for setting the year   * date(I) adds support for setting the year
   * Core files now include the per-process data at the front, not the back   * Core files now include the per-process data at the front, not the back
-  * Adds support for shared text segments 
   * login(I) now always prompts for a password as opposed to receiving it as an argument   * login(I) now always prompts for a password as opposed to receiving it as an argument
-  * Manpages have been moved from /sys/man to /usr/man 
-  * Sources have been moved from /sys/sys to /usr/sys 
-  * Supports using | or ^ as pipe instead of > 
   * The tty driver supports 12 terminals instead of 10   * The tty driver supports 12 terminals instead of 10
   * the tty driver now discards the entire buffer on overflow instead of printing '#' per overflow character   * the tty driver now discards the entire buffer on overflow instead of printing '#' per overflow character
   * The tty driver maps uppercase to lowercase if only uppercase is used   * The tty driver maps uppercase to lowercase if only uppercase is used
   * The console driver now has greater parity with other tty drivers   * The console driver now has greater parity with other tty drivers
-  * Block devices now present a raw interface and buffered access 
-  * Filesystem filenames (as opposed to ar(I) filenames) are extended to 14 characters 
-  * Filesystem objects (as opposed to ar(I) objects) now support group bits 
-  * In both above cases, ar(I) is *not* updated to support these 
-  * Indirect blocks are added to support larger filesystems (e.g. RP disks) 
   * 2741 terminal support appears to be on the way out   * 2741 terminal support appears to be on the way out
-  * The init system now utilizes /etc/rc for operations such as mounting disks (rather than filesystems being hard-coded into init) 
   * A new boot procedure is provided for the C UNIX system   * A new boot procedure is provided for the C UNIX system
  
Line 67: Line 64:
   * Section VIII adds ino, mkfs, mknod, sync, update   * Section VIII adds ino, mkfs, mknod, sync, update
  
-For more information about Fourth Edition Unix, see [[http://cm.bell-labs.com/cm/cs/who/dmr/hist.html|The Evolution of the Unix Time-sharing System]] by Dennis Ritchie.+For more information about Fourth Edition Unix, see [[https://www.nokia.com/bell-labs/about/dennis-m-ritchie/hist.html|The Evolution of the Unix Time-sharing System]] by Dennis Ritchie.
  
systems/4th_edition.1685562476.txt.gz · Last modified: by segaloco