UNIX First Edition

From Computer History Wiki
Revision as of 19:13, 29 February 2024 by Jnc (talk | contribs) (External links: +Unix Programmer's Manual)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Unix V1
Logging into a Unix Version 1 box
Type: Multitasking, multiuser
Creator: Western Electric, AT&T
Architecture: PDP-11
Previous Version: 'Edition Zero'
This Version: V1
Next Version: V2
Latest Version: SYSVr4 - Solaris 10 (2009)
Date Released: 1972

The UNIX First Edition (V1) occurred when UNIX was re-written for the then-new PDP-11, a 'cheap' minicomputer, from the PDP-7 for which it was originally written, at Bell Laboratories. (Both versions were written in assembly language.) The machine purchased for the move was one of the first PDP-11/20's built; there was no disk mass storage available from DEC for the machine when it first arrived.

Bell Labs' management had been persuaded to buy the PDP-11 to fill a need for typesetting for the Labs' patent department. (None of the available typesetting products exactly filled the formatting requirements for patent applications; the UNIX group promised to produce something that would.) This turned out to be enough of a success, with the patent people and the researchers sharing a machine (dangerous, since the -11/20 had no hardware memory management) that a second -11/20 was purchased for the sole use of the patent department. UNIX soon spread to other groups at Bell; the Switching Control Center System group also used UNIX on an -11/20 for their early work.

Apparently, when first run, it had only an RF11 with a single RS11 disk drive (512KB) for both swapping and the file system. By the time of the version for which we have the source code (below), an RK11 had been added; swapping remained on the RF11. The version which we have also required a KE11-A (use is made of it throughout the kernel).

Source index

The following table shows what functionality is in each source code module:

Module Functionality
u0 trap and interrupt vectors; initialization
u1 system call handling; core dump; exit/wait/fork; file operations; gtty/stty
u2 directory operations; exec; stat; time; break; seek/tell; close
u3 swapping operations; scheduler
u4 clock; paper tape device driver; sleep/wakeup
u5 file system (including free list and inodes)
u6 input/output (including devices)
u7 terminals; clists; open/close; mount/unmount
u8 mass storage drivers; block buffer management
u9 asynchronous serial line drivers
ux variables

This table is not to be heavily relied on, as it's not very detailed yet; e.g. terminal code is scattered through several modules.

Restoration project

The source for has been restored by the work of Warren Toomey, Tim Newsham and others. The current project homepage is located here.

On December 2008, the project made its first release using scanned printouts as source material, a team was able to re-enter the source files, and using apout they were able to construct a system using various bits from later UNIX versions into a booting system for SIMH's PDP-11 emulator.

How do I get this to run?!

There is a packaged version that will easily install on Windows machines that can be downloaded here

You can find all the pieces for this below:

The current binary build can be downloaded from the google code page here.

You need a version of SIMH 3.8-1 or higher, as they will incorporate certain changes required for V1 UNIX.

What Runs?

Not very much!

External links