Looking for Unix-11 for PDP-11

It’s more a “running when last shut off” situation than “running”, and we all know how that goes.

I actually found 4x PDP-11/34As, a bevy of terminals and printing terminals, a pile of RL01/02s and RX01/02s, some disks, and some documentation. I’m very, very excited.

That’s a veritable mother lode!

I am growing more convinced that the images from classiccmp/bitsavers above are just regular Unix v5/v6/v7 images, and not UNIX-11 for the smaller PDPs. I’ve been unable to boot them in SIMH. I have also been unable to boot them on simulated 11/45 or 11/70 machines, though, so perhaps I’m dong something wrong.

More study is warranted.

In the meantime, though, as seen in this other post,. I have many other things to occupy my time. I’ll revisit booting UNIX-11 once I have anything at all booting!

1 Like

By Unix-11, it seems we mean an early Unix for a PDP-11 that lacks an MMU… I still don’t have an answer but I’ve found a number of interesting links:

The earliest mention of Unix-11 I found is in The UNIX Time-Sharing System by Ritchie from 1970 or so:

There are two versions of UNIX. The first, which has been in existence about a year, runs on the PDP-7 and -9 computers; a more modern version, a few months old, uses the PDP-11. This document describes UNIX-11…

UNIX-7 also has a version of the compiler writing language TMGL contributed by M. D. McIlroy, and besides its own assembler, there is a PDP-11 assembler which was used to write UNIX-11.

In the later and prettier paper from 1974, The UNIX TimeSharing System we find there are now three versions of UNIX, and

The second version ran on the unprotected PDP-11/20 computer.

Here’s a dissertation, by John Gilmour, aiming to run this version in emulation, in 2018:

The Restoration of UNIX: Emulating UNIX version 1.0 on a 16-
bit DEC PDP 11/20

In 1995 two engineers, Paul Vixie and Keith Bostic, dug deep enough to find several DEC tapes “under the floor of the computer room [at Bell Labs]” (UNIX Past) which held several original binary files for UNIX. With much help from several individuals, these two engineers were able to reverse engineer the binary tapes they found and 15 years later, put up a repository for this ancient system on GitHub. There it has stayed, waiting for someone to use it like it was meant to be used, on a DEC PDP 11/20, the computer UNIX v1 was initially written for.

the repository of UNIX v1 that can be found on GitHub is at its core the original version of UNIX, but alas, has some makeup of v2. This is where their research ends, and where ours begins.

Here’s Nick Janetakis doing something similar in 2017 using a Docker image of a suitably equipped SIMH:

and there are some related links and pointers in this stackexchange post:

Here’s Warren Toomey in 2010, with First edition Unix: Its creation and restoration

Until recently, the earliest versions of the Unix operating system were believed to have been lost completely. In 2008, however, a restoration team from the Unix Heritage Society completed an effort to resurrect and restore the first edition Unix to a running and usable state from a newly discovered listing of the system’s assembly source code.

… because the PDP-11/20 provided no memory protection against kernel corruption by the running process, it was considered a courtesy for a programmer to yell ‘‘a.out?’’—the name of the Unix assembler’s default output file—before running a new executable for the first time. This gave the other users a chance to save any files they were editing.

(Just for fun, another anecdote from Ritchie’s oddities paper:

at some point several were sitting around working away. Bob Morris asked, almost conversationally, “what are the arguments to ld?” Someone told him. We continued typing for the next minute, as a thought began to percolate, not quite to the top of the brain-- in other words, not quite fast enough. The terminal stopped echoing before anyone could stop and say “Hold on Bob, what is it you’re trying to do?”

)

Enough time has passed and enough technology invented that some people now can wonder how a multi user OS is even possible without memory protection. Some discussion and links here and here.

Ritchie’s 1979 paper The Evolution of the Unix Time-sharing System is an interesting read.

2 Likes

Note that Paul Vixie can be found in Twitter, in case one wants to ask for directions/recollections.

I just found reference to this memo from H. Lycklama in January of 1977:

http://www.60bits.net/msu/mycomp/terak/termubel.htm

It opens with:

The MINI-UNIX Operating System was written to run on all PDP-11 processors without the memory management unit available on the PDP-11/40, 11/45 and 11/70 processors and is therefore restricted to a 28K word address space. The operating system itself (MX) is basically a modified version of the Version 6 UNIX Operating System (1) and as such supports most of the standard UNIX system calls.

Now, this is for a considerably smaller machine than the 11/34, and it appears to require an RK05 (which I do not have). However, drivers for an RL01 or RL02 (which I do have) may be able to be ported from Version 6 or a BSD Unix.

I found this while reading Diane Neisius’s PDP-11 page, which documents her experiences playing with a PDP-11/03. It’s quite an interesting read.

1 Like

Certainly is!

Rambling the Web in my summer holidays in 2012, I finally found there really WAS an Unix variant for the PDP 11/03, too: LSX (abbreviated for “LSI-UNIX”). It is a still more stripped-down version of Mini-Unix which in turn was an adaption of Unix V6 to machines without MMU. While Mini-Unix can serve four users at once but still needs a RK05 hard disk, LSX serves only one user and fits onto two RX01 floppies. It already can run in 40kB RAM and of course also needs no MMU. Nevertheless it’s a complete OS including a C development kit. More than I was longing for. 30 years later, the Holy Grail, finally just before my eyes!!! :slight_smile:

Edit: here’s her reference 11, Unix on a Microprocessor from 1977.

1 Like

Well, now, this is truly interesting. hmmmm
But I REALLY don’t need any more projects to not finish.

Is that really true, though? :wink:

Oh, yes. I have more unfinished projects than most people start in a lifetime.

I suspect you are in very good company here, at least. :wink:

I had to move a Teletype restoration out of the way to set up this PDP-11/34A. I had to move a Nixie tube frequency counter out of the way to set the Teletype down. Who knows what I had to move to make room for the frequency counter. :smiley:

1 Like

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.