For a very long time, the smallest Unix system for the PDP-11 compatible machines - LSX, adapted from Unix V6 by Dr. Heinz Lycklama - was feared lost because it was never officially released outside of Bell Labs and nobody bothered to keep it for posterity.
Luckily, some RX01 floppies labeled "LSX" were found by me during Vintage Computer Festival 2004
in Pavl Zachary's PDP-11 software pile (blue boxes right in the center), and Pavl kindly invited me to his
garage, where we managed to run LSX and spent some time capturing
the octal dumps of the six 256 Kb disks we have found at 9600 baud with
a notebook. Luckily there was the
od executable -
Soon after I realized that these dumps were incomplete: the RX01 disks were 77 tracks by 26 sectors of 128 bytes each, totaling 256256 bytes. Not a multiple of 512, therefore 2 sectors were missing (We did not have time to figure out how to duplicate floppies nor there were any spares, and we were loath to edit or compile any new programs to keep the original contents intact).
Due to a peculiar mapping of physical to logical blocks those 2 sectors were among the ones used by the boot loader, so an attempt to boot LSX under SIMH failed miserably. I have brought the floppies kindly loaned by Pavl to someone known to have the necessary hardware connected to a contemporary computer in hope of obtaining full low-level dumps. Unfortunately, that path led nowhere, I got tired of asking and prodding, and let myself virtually forget about the project.
A few days ago, on a whim I tricked the Mini-Unix/SIMH combination to mount the LSX images and have found on one of them the data necessary to recreate the missing blocks, and LSX was brought back to life! (Do not look here if you want to experience it yourself.)
Immediately, I wrote an e-mail to Dr. Heinz Lycklama, and he has responded with his permission to release the LSX images to include them in the PUPS archives. Meanwhile, here they are:
at rx0 root.dsk at rx1 usr.dsk set cpu 48k boot rx0Despite claims to the contrary, LSX needed at least 40 kbytes. That's 20 kilowords: 8 kilowords (16 kilobytes, 400008) for the system and 12 kilowords (24 kilobytes, 600008) for the user programs. This is the LSX kernel:
# ls -l /lsx -rwxrwxrwx 1 75 11272 Oct 29 03:10 /lsx # size /lsx 10740+516+4346=15602 (36362) #And this is
/lib/c1, the second pass of the C compiler, the largest executable on the root disk:
# ls -l /lib/c1 -rwxr-xr-x 1 0 21278 Sep 8 12:07 /lib/c1 # size /lib/c1 14284+6978+1688=22950 (54646)
Before the computers were byte-oriented (and for some time after the first byte-oriented computers appeared), people were thinking in words, not bytes; and the mist of time can obscure anyone's memory.
pdp11 lsx.ini, type
lsxat the prompt.
For your convenience, here are the same images with data in the logical sequence. They can, presumably, be mounted by any Unix that understands the V6 file system, e.g. Mini-Unix (that one had been verified), if you map them to a common hard disk device, e.g. RK. This is a sample SIMH .ini file for Mini-Unix:
at rk0 tape1.bin at rk1 usr.fs set cpu 64k boot rk0Type "rkmx" at the prompt to boot Mini-Unix, login as root,
/etc/mount /dev/rk1 /mnt; chdir /mnt.
The extracted source code - modified to conform to a modern C syntax, and the floppy image manipulation tool (courtesy of Serge Vakulenko) can be found here. Use the tool to extract the original sources and binaries.
A port to a Soviet LSI-11 clone BK-0010 is envisioned.