7. PDP-11 — Defining Normal
In 1970, DEC launched a machine that would change everything. The PDP-11
was a radical break. It was a 16-bit machine with an orthogonal instruction set
that made it far easier to program than anything before it. It had eight
general-purpose registers (later models had more). It introduced the
Unibus, a standardized bus that made adding peripherals simple. And the design scaled up from a tiny 4K embedded controller
to a system with 8 megabytes that could rival mainframes — a scale factor of
2,000.
The design was so elegant that every major microprocessor architecture that came
after — the Intel x86, the Motorola 68000 — was visibly shaped by it. The 68000's
register set, the x86's addressing modes, the very idea of what a CPU should look
like: the PDP-11 defined it.
Where Unix Grew Up
In 1970, Ken Thompson and Dennis Ritchie at Bell Labs ported their experimental
operating system — Unix — to the PDP-11/20. It was the first
machine Unix ran on as a named operating system. Over the next decade, Unix and
the PDP-11 evolved together. The C programming language was designed specifically
to be efficient on the PDP-11's architecture. The abstract machine that C targets,
to this day, is a PDP-11 in its fundamental assumptions.
The PDP-11's influence is even visible in the syntax of C itself. The close relationship between arrays and pointers in C — the fact that array[i] is equivalent to *(array + i) — is not an accident of language design. It reflects the PDP-11's architecture, where memory addressing was uniform and efficient. C was not designed for an abstract machine; it was designed for the PDP-11.
The Unix source code for the PDP-11 contains one of the most famous comments in programming history. In the I/O driver for the 11/20, Ken Thompson wrote: "You are not expected to understand this". It was a joke about the complexity of the interrupt system, but it became legendary.
When you open a terminal on a modern Linux or macOS system, you are in a direct
line of descent from a programmer sitting at a PDP-11 in 1971. The file system hierarchy, the pipe operator, the shell
itself — all of it was invented on the PDP-11.
The Road Not Taken — RSX-11
But Unix was not the only operating system on the PDP-11, and in fact it was
DEC's least favorite. The company's own RSX-11M was a
groundbreaking multi-user, real-time OS that feels utterly different
from Unix. But its integrated development environment, its seamless multitasking,
its approach to resource management — RSX was an alternative vision of computing
that could have won. Easily.
Here is where the story takes a strange turn. When Microsoft decided to break
with the MS-DOS past in the late 1980s, Dave Cutler,
the lead architect of RSX-11M (and later of DEC's VMS), was tasked with building a new operating
system from scratch. That became Windows NT. Its kernel
design, its I/O model, and its structured exception handling all bear the marks
of the PDP-11 RSX heritage. So: the other half of the modern desktop, the non-Unix
half, also traces back to the PDP-11.
Over 600,000 PDP-11s were sold. They were used in laboratories, factories,
universities, telephone exchanges, and spacecraft. The top-of-the-line PDP-11/70 pushed performance further with a second MASSBUS interface, capable of transferring data at 4 megabytes per second — breathtaking speed in 1975. The architecture remained
in production for over 25 years. When you use any modern computer — PC, Mac,
or Linux workstation — you are running on decisions made by the PDP-11's
designers in the late 1960s.