mirror of
https://github.com/DoctorWkt/unix-jun72.git
synced 2026-01-19 09:37:57 +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. Go into tools/ and do a make. This should build tools/mkfs, tools/ml
and tools/apout/apout. Now go back up to the top level.
5. You should now have the tools required to build the filesystems for
1e UNIX, and the kernel. Run tools/imgbuild, which builds the rf0.dsk
and rk0.dsk disk images. They should be size 483328 and 2490368.
6. Run tools/assemv2 to create the kernel source with some necessary
patches in build/, to assemble it as build/a.out, and to build a
bootable Simh memory image as build/loadfile.
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
Languages
C
54.3%
Assembly
38.1%
Diff
2.4%
Python
1.2%
Makefile
1.2%
Other
2.8%