10. Dennis Ritchie: A journey through C and Unix

Joone Hur
F/OSS Comics
Published in
6 min readOct 16, 2023

The man who developed an operating system with his programming language.

One day in 1999

“Will Inferno ever be able to compete with Java?”

In 1999, Dennis Ritchie was involved in the development of the Inferno operating system and a programming language called Limbo.

“Ring Ring”
“President Clinton is giving us the National Medal of Technology? Congratulations, Tom. It looks like we’ll have to go to Washington.”
“Aren’t we receiving too many awards?”
“Exactly. I was content just with the Turing Award.”

It seems that Dennis Ritchie’s success as a scientist was heavily influenced by his father(Alistair E. Ritchie), who worked as a researcher at Bell Labs.

1940s, Bell Labs

“Dad, what are you working on?” “Well, I research switching circuit theory, but it might be too complicated for you to understand now”
“We need many switches to create a digital circuit. I’m writing a book about it.”

A decade later,

“Dad, I’ve been accepted to Harvard.”
“Congratulations. Have you decided whether to study physics or mathematics?” “It’s hard to decide right now; both are so fascinating.”
“Math and physics, both are intriguing.”

Around 1960

<<Special course on computers! Learn computer programming with Mark I>> “Computer?”
“Using a computer, mathematical calculations can be done faster.”

Learning computer programming

Dennis Ritchie first learned programming on a UNIVAC computer. After learning about analog computing and punch card usage, he finally learned about digital computing[2].

Despite being an undergraduate student in physics, Dennis Ritchie began to show more interest in computers.

“You’re a physics student, but your thesis topic is about computational theory…” “Well, it’s just mathematics.”

His graduate thesis was about hierarchies of recursive functions, which was considered applied mathematics, as computer science hadn’t yet established itself as a discipline.

Dennis Ritchie was more interested in the practical than the theoretical. As a result, for three years, he taught computer programming as an instructor in the special computer course he had taken[2].

When Dennis Ritchie taught computer programming, IBM 7094 was used[2].

1967 at Bell Labs

Dennis Ritchie got a job at the Bell Labs Computing Sciences Research Center in 1967.

“Oh, are you Alistair’s son?” “Yes, I am.”
“Welcome to Bell Labs. Our team is co-developing a new operating system called Multics with other companies. Are you interested?” “A new operating system? It sounds interesting.”
“Hmm. Sounds tricky, especially when co-developing with other companies…”

1969 at Bell lab.

Dennis: Finally, we withdrew from the Multics project. But now, how do we create an operating system for telephone billing services?” “Don’t worry, I’m working on a new operating system. Interested?”
“A new operating system?”

Ken Thompson was developing a new operating system, taking some ideas from Multics and the existing code he was writing.

1972 at Bell Labs

During the development of UNIX, the computer was upgraded to PDP-11. Since the CPU instructions were not compatible, they had to rewrite the assembly code of UNIX. Then, they realized that they could implement UNIX with a high level language so Dennis Ritchie tried to rewrite UNIX using the B language he co-developed with Ken Thompson[3].

“What are you doing now?” “I’m trying to rewrite UNIX with the B language we made earlier, but it’s not easy. I think we need to modify the B language significantly.”

At that time, the B language could not utilize the latest features of the PDP-11. It was heavily modified and renamed to the C language in 1972. Accordingly, UNIX was also rewritten in C[4].

It’s great to no longer have to do assembly coding for OS kernel development.
“Wow, the C language is amazing!”

Unix and the C language are used within Bell Labs, and beginning in 1975, they began to be licensed and sold externally, spreading to universities and other institutions. Companies like HP and Sun Microsystems also began to create their own operating systems based on Unix code, making it a de facto industry standard.

Writing a book on C Programming

Brian Kernighan, who worked at Bell Labs, wrote a B language tutorial for in-house training. After the B language was upgraded to C, he naturally wrote a C language tutorial.

“Dennis, do you remember the C tutorial I wrote? How about making it a book? It would be great if you could help.” “That sounds good!”
Book cover, image source: Wikipedia (link)

The book “C Programming Language” was first published in 1978, and its second edition was released in 1988. It was translated into 20 languages, and by the 1990s, most students majoring in computer science studied C using this book.

Distributed Operating System Plan9

“Hmm… What operating system should we develop after UNIX?”

Bell Labs began developing an operating system called Plan9 in the mid-1980s as a successor to UNIX.

At that time, Dennis Ritchie was leading the Computing Techniques Research department working on Plan9. He participated in development more as an advisor than as a hands-on developer. He mentioned that his major task was just to approve salaries, but he also admitted to writing some of the code himself[5].

Plan9 began replacing UNIX within Bell Labs, but it was not easy to find customers outside.

it’s s not easy to find Plan9 customers.

In the 1990s, Bell Labs began developing an operating system called Inferno and a programming language called Limbo for use in network equipment. They introduced a virtual machine, which had many similarities to Java developed by Sun Microsystems

“Sun Microsystems announced Java, which is similar to Inferno. It operates based on a virtual machine.” “Yes, I heard.”
“Dennis, like Plan9, we also struggled to find customers who wanted to use Inferno. Despite the efforts of the sales and marketing team, we might have to hand the project over to another company.” “It’s good to hear that another company would acquire the project.”

Despite Dennis Ritchie’s involvement and advice, Bell Labs’ subsequent developments to UNIX, Plan9 and Inferno, were not successful in the market. There might have been various reasons, including marketing failures, but fundamentally, since UNIX was still usable, there was little reason to introduce another OS.

Eric Raymond, known for his book ‘The Cathedral and the Bazaar, mentioned Plan9[6], saying:

“There is a lesson here for ambitious system architects: the most dangerous enemy of a better solution is an existing codebase that is just good enough.”

Some ideas from Plan9, such as /proc, utf8, and clone, were also adopted in other UNIX and Linux systems.

Retirement in 2007

“I’m so sad you’re retiring.” “Finally, retirement. It’s a bit disappointing that Plan9 and Inferno weren’t successful, but now I should enjoy some travel.”
“How’s your health these days? After your prostate cancer surgery, you lost so much weight.” Dennis: “Hehe, don’t worry. There’s still so much that interests me.”
“I can’t reach Dennis on the phone; I might need to visit his house.”

Death

“Hey, Dennis!”

Living alone, Dennis Ritchie was found deceased in his home in Berkeley Heights, New Jersey, on October 12, 2011 [1].

“He did such a big thing, but he lived so quietly.” “After all, no one else has developed an operating system using the programming language they created.”

References

[1] Dennis Ritchie, Wikipedia
[2] Interview with Dennis Ritchie
[3] https://en.wikipedia.org/wiki/C_(programming_language)
[4] https://en.wikipedia.org/wiki/Unix
[5] Dennis Ritchie Homepage: https://www.bell-labs.com/usr/dmr/www/chist.html
[6] http://www.catb.org/esr/writings/taoup/html/plan9.html

--

--