1
0
mirror of https://github.com/DoctorWkt/unix-jun72.git synced 2026-02-13 11:34:44 +00:00

Welcome to the 1st Edition UNIX repository. Here you will find the kernel
source code and userland binaries which will allow you to run 1e UNIX on
a PDP-11 simulator.

Build Instructions
------------------
Unless otherwise noted, file and directory names refer to this repository.

1. Download the source code for the Simh simulator from here:
   http://simh.trailing-edge.com/. Unpack it somewhere. Make the
   BIN/ directory in Simh at the top level.

2. Copy misc/pdp11_ke.c into the Simh PDP11/ directory, and apply
   the misc/KE.diff patch to the source code:

	patch -l < misc/KE.diff

   We have had some reports that to patch and compile on Ubuntu, you will
   need to do this:
       patch -p0 -l < misc/KE.diff
       OSTYPE=macos make pdp11

3. In Simh, do make pdp11 to make the pdp11 simulator in the BIN/ directory.
   Copy the BIN/pdp11 executable into the tools/ directory.

4. Do a make.  This will do several things.  It will build tools/mkfs, 
   tools/ml and tools/apout/apout. These tools are required to build the 
   filesystems for 1e UNIX, and the kernel.  It will create kernel sources 
   with some necessary patches, assemble it and build a bootable Simh memory 
   image which is installed into images.  Finally it will build the rf0.dsk, 
   rk0.dsk and tape images and install these in images.  

Running 1st Edition UNIX
------------------------

1. Run ./simh.cfg which starts the pdp11 simulator. You should see this:

   PDP-11 simulator V3.7-3
   ./simh.cfg> #!tools/pdp11
   Unknown command
   Disabling CR
   Disabling XQ
   RF: buffering file in memory
   TC0: 16b format, buffering file in memory

   You will receive a login: prompt:

2. Type in root followed by <RETURN>. You should receive a # prompt.

3. Type in an ls -l command. You should see something like this:

   total    6
    43 sdrwr-  2 root    620 Jan  1 00:00:00 bin
    42 sdrwr-  2 root    250 Jan  1 00:00:00 dev
   104 sdrwr-  2 root    110 Jan  1 00:00:00 etc
   114 sdrwr-  2 root     50 Jan  1 00:00:00 tmp
    41 sdrwr-  7 root     70 Jan  1 00:00:00 usr

4. To shut the system down, enter ctrl-E to stop the simulator, and q to quit.
   You do not need to sync the system before shutdown.

Documentation
-------------

The manuals for 1st Edition UNIX are available here:
http://www.cs.bell-labs.com/who/dmr/1stEdman.html, and
http://www.bitsavers.org/pdf/bellLabs/unix/UNIX_ProgrammersManual_Nov71.pdf

Some documentation of the internals of the 1st Edition UNIX are available here:
http://www.bitsavers.org/pdf/bellLabs/unix/PreliminaryUnixImplementationDocument
_Jun72.pdf

Details of the PDP-11/20 architecture and its peripherals can be found at:
http://www.bitsavers.org/pdf/dec/pdp11/handbooks/PDP1120_Handbook_1972.pdf
http://www.bitsavers.org/pdf/dec/pdp11/handbooks/PDP11_PeripheralsHbk_1972.pdf

The C compiler from 2nd Edition UNIX is also installed and works, but the
language is a very early dialect of C. The closest reference to the language
at this point in time is this, but it is probably 2 years too late:
http://cm.bell-labs.com/cm/cs/who/dmr/cman74.pdf

The userland binaries come from a period somewhere between the 1st and 2nd
Edition of UNIX. You may find the 2e manuals useful too:
http://www.bitsavers.org/pdf/bellLabs/unix/Unix_2nd_Edition_Manual_Jun72.pdf

Repository Layout
-----------------

pages/		- OCR'd pages from the PreliminaryUnixImplementation document
rebuilt/	- kernel source rebuilt from the OCR'd pages, as asm files
patches/	- patches to rebuilt/ files to get kernel to run
fs/		- userland binaries and files, used to make rf0.dsk and rk0.dsk
src/		- source code for userland: there is not much available
tools/		- tools and scripts to build the kernel and filesystem
build/		- build area: patched kernel files, patched filesystems
misc/		- misc. files, e.g. the Simh patch for KE11A support
notes/		- notes on the work done to get 1e UNIX to run again
diffs/		- Differences between pages/* and the high quality OCR
                  done by James Markevitch.  Includes headers and footers.
Description
The working source code to PDP-11 Unix from 1972.
Readme 827 KiB
Languages
C 54.3%
Assembly 38.1%
Diff 2.4%
Python 1.2%
Makefile 1.2%
Other 2.8%