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. It is a reconstructed UNIX as it was around 1972 instead of a true 1e UNIX image. There was a printout of the slightly post V1 kernel. And there was data recovered from DECtape from around V2 or V3.
The early versions of UNIX were epitomes of sophisticated concepts packaged into elegant systems. UNIX' influence has been so powerful that it reverberates down to affect us in the 21st century. The history of the development of UNIX has been well documented, and over the past decade or so, efforts have been made to find and conserve the software and documentation artifacts from the earliest period of UNIX history. The paper The Restoration of Early UNIX Artifacts written by Warren Toomey details the work that has been done to restore the artifacts from this time to working order and the lessons learned from this work.
Unless otherwise noted, file and directory names refer to this repository.
Simply execute make
. This will do several things. It will build tools/pdp11
,
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 the kernel and build a bootable
SIMH memory image which is installed into the
images directory.
Finally, the make
will build the rf0.dsk
, rk0.dsk
and tape
images and
install these in the images
directory. You can also do a make clean
to clean
out the images/
and build/
directories. A make distclean
will clean out the
images/
, build/
and tools/
directories accordingly.
- Execute
make run
or./simh.cfg
, and you should see this:
PDP-11 simulator V4.0-0 Current git commit id: fc5bda90
Disabling XQ
RF: buffering file in memory
TC0: 16b format, buffering file in memory
Listening on port 5555
You will receive a login:
prompt:
-
Type in
root
followed by RETURN key. You should receive a#
prompt. -
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
-
To change directories, use
chdir
, e.g.chdir /usr
. The only editor installed ised
. You can check A Tutorial Introduction to the UNIX Text Editor for its usage. -
To log in multiple times, telnet to localhost port 5555. The system is configured to allow 8 remote logins.
-
To shut the system down, press
Ctrl-E
to stop the simulator, andq
to quit. You do not need to sync the system before shutdown.
The manuals for 1st Edition UNIX are available here: https://www.bell-labs.com/usr/dmr/www/1stEdman.html, http://www.bitsavers.org/pdf/bellLabs/unix/UNIX_ProgrammersManual_Nov71.pdf, and http://man.cat-v.org/unix-1st/.
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, and 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: https://www.bell-labs.com/usr/dmr/www/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.
pages/
- OCR'd pages from the Preliminary Release of UNIX Implementation Document.
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
images/
- final disk and tape images to be used by the SIMH simulator
notes/
- notes on the work done to get 1e UNIX to run again
- 7th Edition Unix at 40 / video
- pdp7-unix resurrects Unix on the PDP-7 from scans of the original assembly code.
- The Unix Heritage Society
- Unix History Repository
- Warner's History of Unix BSDCan 2020 Talk
- Research UNIX v7 for Raspberry Pi
- ed Editor V1 Javascript Edition
- pdp11-B is an effort to recreate the B compiler for the PDP-11 as authentically as possible.
- B compiler is capable of compiling itself.