LSX Unix Restoration Page

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 - but no cat 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:

To run:

  1. Familiarize yourself with SIMH for PDP-11. Hint: the magic words are squeamish ossifrage, er, "Who is there?" (That's to say that the escape character is ctrl-E.)
  2. Familiarize yourself with Unix V6, preferably Mini-Unix. Or don't, but then don't complain that you have not been warned! Most importantly, on Unix V6, it's not cd, it's chdir!
  3. Download the LSX images.
  4. Create the lsx.ini file:
    at rx0 root.dsk
    at rx1 usr.dsk
    set cpu 48k
    boot rx0
    Despite 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.

  5. Run pdp11 lsx.ini, type lsx at the prompt.
  6. Imagine it is the year 1976. This will help avoiding excessive oohing and aahing, as well as spitting and cursing. A possible undesirable side-effect: less laughing.
  7. Please let me know of your experience or any problems.

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 rk0
Type "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.

Started August 24, 2006; updated September 15

Leonid Broukhis, without Xes and Ques, 2006