Looking for Unix-11 for PDP-11

Yep. sounds right to me

Reads the paper Unix on a Microprocessor from 1977
$6K for 56KB machine. I wonder what the price of a 48Kb
cp/m machine was?

An interesting paper, @oldben:

Lycklama, H. (1978). UNIX Time-Sharing System: UNIX on a Microprocessor. Bell System Technical Journal, 57(6), 2087–2101. doi:10.1002/j.1538-7305.1978.tb02143.x

The abstract can be found here. It’s about the challenge of porting Unix to an LSI-11, where there’s no MMU, and where a 20k word OS is too large, so the question is how to squeeze into 8k words. Here’s a snippet:

Lycklama-Unix-1978

LSX came up on the TUHS (“The Unix Heritage Society”)
mailing list just a few days ago:

https://minnie.tuhs.org/pipermail/tuhs/2020-June/021313.html

[TUHS] LSX on the PDP-11/03 (LSI-11)
Heinz Lycklama
Jun 2 2020

On 5/30/2020 11:26 PM, Paul Riley wrote:

I’ve managed to acquire a PDP-11/03 with twin floppy drives (Sykes
Datatronics RX01 or RX02 equivalents, not sure yet which).

I’ve stumbled across LSX, and I have it running on SimH. . .

Paul, I’m surprised that copies of the LSX system are still around.
I’m assuming that you acquired only the binary code, and not the
source code. The LSX system source code could be compiled
on an LSX system running on floppy disks. I see you are getting
your C compiler issues addressed by others already.

Heinz Lycklama
Author of LSX at Bell Labs

I guess Dr. Lycklama had forgotten that Leonid Broukhis had written
to him in 2006 to obtain permission to include resurrected LSX
floppy images in the PUPS/TUHS archive.

LSX Unix Restoration page

LSX Unix Restoration Page

. . .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! . . .

Mini-Unix is also in the archive:

Aitch-Tee-Tee-Pee-Ess Colon Slash Slash
Double-You Double-You Double-You Dot tuhs Dot org Slash
Archive Slash Distributions Slash USDL Slash Mini-Unix
(Edit as necessary to recreate a valid URL. :-/ )

1 Like

Anyone know if this machine swapped or not?

I’ll go out on a limb and guess that it relies on Position Independent Code to do what it does. Once you have that, the kernel can be fixed in place and then you simply need to do your best to not stomp on things without the MMU protection.

Not a bad environment to run programs on, not so sure how good it is to develop them on, especially in something like C. I visualize lots of rebooting going on there.

Thanks @Jim_F, and welcome! I notice with a little amusement that pasting the obfuscated URL into a Google search returns the hoped-for result.

I found a little by Heinz Lycklama on Mini-Unix and LSX in this pups post:

LSX, also known as LSI-UNIX was developed for the first
microprocessor produced by DEC - the LSI-11. The whole
system ran in 20Kbytes of memory [NOT MB] with the OS
in the first 8K and the user program swapping in and
out of the upper 12K. More memory could be added, but
it really ran in this amount of memory. I used one
floppy disk (256KB) for the system boot and system
programs, and a second floppy disk (256KB) for user
programs and data. My motivation for producing this
scaled-down UNIX system was for use in the lab for
controlling special test and new equipment. It was
portable and was used to control a music synthesizer
developed by Hal Alles [one of my Bell Labs colleagues.]

To get the system to fit in the small memory footprint,
I stripped it of all non-essentials. Groups were not
supported, and pipes were supported in “user” space.
By this I mean I changed the shell to recognize “|”
and turn it into “> temp1; < temp1” and then remove
the temporary files at the end of the shell command.
I worked with Dennis Ritchie to reduce some of the
table sizes in the C compiler, and even yacc and lex,
so that all of these programs could run under LSX.

The LSX system was typically configured to use one
system floppy and one user floppy. LSX could even
be used to recompile itself - it was self-sustaining.
User programs were swapped into memory above 8K bytes.
The LSX system was added to within Bell Labs by a
number of researchers who had different floppy drivers
and/or needed to support different peripherals. The
system was produced in the summer of 1974 and found
much use within Bell Labs. If only Western Electric
[the precursor of Lucent, and licensor of the UNIX
system] had found a way to offer binary licenses
for the UNIX system back then, the UNIX system
would be running on all PC’s today rather than
DOS/Windows. We may be given a second chance
with Linux!

Mini-UNIX was developed by myself when a number of people
came to me and said that they wanted to be able to use
their PDP11/10 computers in the lab to run UNIX programs.
These computers had no memory management unit (MMU) and therefore
could not run unmodified UNIX kernels of the day. I took
on this project during the fall of 1974 while teaching
a number of Explorer Scouts about the UNIX system and
computing in general in the evening. My starting point
was LSX because it had already been modified to run
without an MMU.

This system ran in 12Kbytes and used 16Kbytes for user
programs. I used many of the same tricks to get Mini-UNIX
to run on PDP11 computers without an MMU as I used to
get LSX to run on the LSI-11 microcomputer. Although
I left the support for groups in (as I recall.) After
all, I had 4Kbytes more to work with. These systems
would support one or more RK05 disks with 2.5Mbytes
of disk each.

The Mini-UNIX system was licensed to many different
Universities and studied and modified by many students
and their professors. I’ve even heard of some who took
Mini-UNIX and made modifications to make it work on
an LSI-11 microcomputer. The Mini-UNIX system was
developed over a period of a few months, making
system changes and recompiling the system in the
evening while I was also teaching Explorer Scouts
about UNIX and computing. The compiles took a long
time - so I was able to “kill two birds with one
stone” so to speak.

And a little on running Mini-Unix in SIMH on Bob Eager’s site here.

And here’s the historical document Setting up Mini-Unix with other interesting documents nearby.

Nice! I guess I never came back to this post; my 11/34 has an MMU, and can actually run unmodified v6 Unix once I get it onto disks the machine supports, with the required drivers. I was able to boot and run v6 some time ago:

https://retrocomputingforum.com/t/booting-unix-v6-on-a-pdp-11-34-from-rl01/

I have since gotten an RL02 driver working, but not yet finished the process of getting they image built and installed due to time constraints.

I’ll try LSX, though! Hopefully it doesn’t require any LSI- or QBUS-specific hardware or features that I don’t have.

Another mini-UNIX resource:

http://www.tavi.co.uk/unixhistory/mini-unix.html

1 Like

I still find it remarkable how compact this is. It must say something about the code density of the PDP-11 instruction set (as well as the simplicity of the system, and perhaps the cleverness of the implementation.)

In the mini unix summary I found this

SPLIT Split a large file into more manageable pieces. Occasionally necessary for editing (ED).

which I found mildly amusing and also enlightening. And that string led me to this:
https://www.tuhs.org/cgi-bin/utree.pl?file=Mini-Unix/usr/doc/new/
which might well lead to more.