[pups] Some more PDP-11 UNIX Geneaology

Warren Toomey wkt at henry.cs.adfa.edu.au
Mon Mar 5 10:54:19 AEST 2001

	Just received this from Heinz Lycklama, the creator of Mini-UNIX
and who worked on the floor below Ken and Dennis. It's some interesting
details of some of the offshoots of Research UNIX.

----- Forwarded message from Heinz Lycklama -----

From: Heinz Lycklama <heinz at osta.com>
To: Warren Toomey <wkt at cs.adfa.edu.au>
Subject: Re: Genealogy of Mini UNIX?

Warren, I was checking thru my email and noticed that I never
really answered your questions on the history of UNIX. Just
noticed your web site with some of the information. I do not
have any UNIX source code in my possession - LSX, Mini-UNIX,
MERT or SPS [all described in the BSTJ July/August 1978
edition.] However, I can fill in some of the gaps for you.
Here they are:

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.

The MERT system was designed and implemented by Doug
Bayer and myself at Bell Labs, mostly in the time frame
from 1972 to 1976, when the PDP11/45 computer was first
introduced. It was the first computer that supported
kernel, supervisor and user address spaces. We need
all three spaces so that we could support multiple
computing environments (supervisors) and still
support real-time tasks.

We concentrated on doing the UNIX system supervisor first
but later on we also added support for RSX-11D, DEC's
real-time operating system at the time. It was a very large
undertaking and took us a number of years to accomplish.
There was a need for real-time operating systems in the
development parts of Bell Labs and we soon picked up
real customers for the MERT system. I remember that
during the early years, before we had any customers, we
were encouraged by Ken Thompson to continue the work.
He also saw the need.

The MERT system was eventually used by a number of Bell
Labs customers at all of the major Bell Labs locations.
It was even used as the basis of a fault-resilient
switching system, called duplexing MERT, or DMERT.
Later yet, the key real-time features of the MERT
system were incorporated into later versions of the
main UNIX operating system.

SPS, the Satellite Processor System, was developed
by Carl Christensen and myself. We developed it to
satisfy a need to tie many of our mini- and microcomputers
in the lab together, and to be able to use the familiar
UNIX system and tools to develop distributed applications
for use in the lab. What we did was basically was enable
"UNIX programs" to run on mini-computers in the lab
as if the programs were developed on run on a full
UNIX system. Whenever the program made a "system
call", we trapped it and sent the system call number
and parameters to a UNIX program running on the
host computer. The host computer executed the system
call on behalf of the program running in the
Satellite Processor and returned the results back to it.
This was a great productivity tool for many people
developing lab applications at various Bell Labs
locations. The system was widely distributed within
the Bell System.

Heinz Lycklama

----- End of forwarded message from Heinz Lycklama -----

Received: (from major at localhost)
	by minnie.cs.adfa.edu.au (8.9.3/8.9.3) id DAA12547
	for pups-liszt; Tue, 6 Mar 2001 03:56:58 +1100 (EST)
	(envelope-from owner-pups at minnie.cs.adfa.edu.au)

More information about the TUHS mailing list