10. The Life of Dennis Ritchie
The man who built an operating system, using a language he created.

An unexpected call in 1998
At the time, Dennis Ritchie led the research group developing the Inferno operating system and the Limbo programming language.[1]

Can Inferno really compete with Java?

Ring ring!
Ritchie and Ken Thompson were named recipients of the 1998 National Medal of Technology and received their medals at the White House in April 1999.[11]

The National Medal of Technology? Both of us? Well, Ken... looks like we're going to Washington.

Aren't we getting too many awards?

Yeah. I was happy with just the Turing Award.

Ha, same here.
His father and Bell Labs
In the 1940s, Dennis Ritchie’s father, Alistair E. Ritchie, studied switching circuit theory at Bell Labs.[2] Automatic telephone exchanges were already in use, but many calls still needed an operator to connect them.[12] Bell Labs, the Bell System's research organization, continued developing automatic switching technology in the postwar years.[13]

What do you do, Dad?
I work on switching circuits. They help connect phone calls.

We can combine switches to make circuits that do calculations. Some colleagues and I are writing a book about it.
Discovering computers at Harvard
A decade or so later.

Dad, I've been accepted to Harvard.

Congratulations. Have you decided whether to study physics or mathematics?
I can't decide. I like both.

Math or physics... Why do I have to choose?
Around 1960.

Introduction to Computing Learn about computers and programming Inquiries: ...

Wait... I could make the computer do the calculations.
A talk about computers caught Ritchie’s interest, and he took an introductory course. After learning about analog computers and punched-card equipment, his class wrote a program to run on a UNIVAC I.[3]

Although his undergraduate major was physics, Ritchie grew increasingly interested in both the theory and practice of computing.[3]


You studied physics, but your research is about computation...
It all comes back to math.
His graduate thesis concerned hierarchies of recursive functions, a topic now associated with computer science. He studied it as a graduate student in applied mathematics, while computer science was still emerging as a distinct discipline.[2][3]

Ritchie was also interested in the practical side of computing. For three years, he taught as a teaching assistant in the introductory course he had taken. By then, the course used an IBM 7094.[3]

Bell Labs and the birth of Unix
In 1967, Ritchie joined Bell Labs.[2]

Oh, are you Alistair's son?
Yes, I am.
I know your father well.

Welcome to Bell Labs. We're building an operating system called Multics with MIT and GE. Interested?
A new operating system? Sounds fun.

Well... there are three organizations involved.
In 1969, Bell Labs withdrew from the Multics project.[2]

So we're out of Multics. What do we use now?
I'm working on something. A new operating system. Want in?

A new operating system?
Ken Thompson was building a new operating system that drew on some ideas from Multics. Ritchie and their colleagues joined the effort, and the system became Unix.[2][4]

From B to C
Bell Labs, around 1972.
During Unix development, the team moved from the PDP-7 to the PDP-11. Their incompatible instruction sets meant rewriting the assembly code. Ritchie tried to implement Unix in Thompson's B language, but B had limitations on the PDP-11.[4]

How's the Unix rewrite going?
I think B needs some work.
B could not fully use the PDP-11's features. Ritchie added types and reworked the compiler, creating C. In the summer of 1973, the Unix kernel was rewritten in C.[4]

Heh. Barely need assembly anymore.

Wow! C is awesome!\
Unix and C spread from Bell Labs to universities and other institutions. Later, companies such as HP and Sun Microsystems built their own operating systems based on Unix code, helping make Unix a major industry standard.

Learning C through a book
Brian Kernighan, who worked at Bell Labs, wrote a B tutorial for in-house training. After C was developed, he wrote a C tutorial too. It later became the basis for a book.[1]


Dennis, remember my C tutorial? Want to turn it into a book together?
Sure. Let's do it.
The C Programming Language was first published in 1978, with a second edition following in 1988. Translated into many languages, it became widely read by people learning C.[4][5]
Second-edition cover. Image source: Wikipedia.

Beyond Unix: Plan 9

Hmm... What comes after Unix?
Bell Labs began developing an operating system called Plan 9 in the late 1980s as a successor to Unix. This research system rethought how computers could share resources.[6]

As the research group’s leader, Ritchie mainly managed and advised the team. He joked that his contribution was signing paychecks, though he also admitted to writing a little code himself.[1]

Are you coding?
Ah. You caught me.
Plan 9 was used inside Bell Labs, but finding outside customers was difficult. It did not widely replace Unix.

Now if only we could get people to use Plan 9...
Inferno and the ideas that lived on
In the 1990s, Bell Labs began developing Inferno and the Limbo programming language for a wide range of devices and networks. Limbo programs ran on the Dis virtual machine, making them less dependent on particular hardware.[7][8]

All I did was sign the paychecks...

Sun announced Java. Like Inferno, it uses a virtual machine.
Yes, I heard.
Although Ritchie contributed to and advised on their development, Plan 9 and Inferno did not spread as widely as Unix. Vita Nuova later continued Inferno’s development and distribution.[1][8]

We're not finding many users for Inferno either. It may be time to hand it over.
I'm glad someone can keep it going.
Marketing difficulties may have played a part, but Unix already worked well enough for its users, making it hard to replace. In The Art of Unix Programming, Eric S. Raymond drew this lesson from Plan 9.[9]

The most dangerous enemy of a better solution is an existing codebase that is just good enough.
Some ideas from Plan 9 influenced other systems. UTF-8, implemented in Plan 9 by Ken Thompson and Rob Pike, is one example.[10] The system itself did not become widespread, but its ideas lived on.

File interfaces
Life after retirement in 2007


We'll miss you around here.
Time to do some traveling.

How are you feeling? You've lost a lot of weight since the surgery.
I'm doing all right. Don't worry about me.

Dennis isn't answering. I'd better go check on him.
A quiet farewell in October 2011
Dennis Ritchie died at his home in New Jersey in October 2011.[1]

Dennis!


He accomplished so much, but lived so quietly.
Unix, C... His work is still everywhere.

End
The dialogue is dramatized from historical sources, not a record of actual conversations. The discovery and funeral scenes are imagined, not eyewitness reconstructions. Please leave a comment if you spot an error.
References
- Dennis M. Ritchie homepage and family memorial
- Dennis M. Ritchie, autobiographical sketch
- Interview with Dennis Ritchie (2003)
- Dennis M. Ritchie, The Development of the C Language
- Brian Kernighan, The C Programming Language
- Plan 9 from Bell Labs: Overview
- Phil Winterbottom and Rob Pike, The Design of the Inferno Virtual Machine
- Vita Nuova, Inferno
- Eric S. Raymond, The Art of Unix Programming: Plan 9
- Rob Pike and Ken Thompson, Hello World
- Dennis M. Ritchie, Letter from Washington
- David A. Price, Goodbye, Operator
- Nokia Bell Labs, History