10. Dennis Ritchie: A journey through C and Unix
The man who developed an operating system with his programming language.
One day in 1999
In 1999, Dennis Ritchie was involved in the development of the Inferno operating system and a programming language called Limbo.
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
A decade later,
Around 1960
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.
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.
1969 at Bell lab.
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].
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].
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.
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
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.
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
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:
Retirement in 2007
Death
Living alone, Dennis Ritchie was found deceased in his home in Berkeley Heights, New Jersey, on October 12, 2011 [1].
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