Thursday, 13 October 2011

Life of Dennis Ritchie

As co-inventor of Unix and the programming language C, he had a key role in shaping today's computing environment

Dennis Ritchie in May 2011, when he was awarded the Japan prize. Photograph: Victoria Will/AP Images for the Japan Prize Foundation

 The American computer scientist Dennis Ritchie, who has died aged 70 after a long illness, was one of the co-inventors of the Unix operating system and the C programming language. Unix and C provided the infrastructure software and tools that created much of today's computing environment – from the internet to smartphones – and so have played a central part in shaping the modern world.

The origins of Unix go back to the 1960s, long before the microchip and personal computers had been invented. The nearest thing to personal computing was the so-called computer utility. This consisted of a large mainframe computer that was used simultaneously, and at great expense, by a couple of dozen users sitting at typewriter terminals.

By the middle of the decade, the computer utility appeared to provide the way ahead, and a consortium of General Electric, Bell Labs and the Massachusetts Institute of Technology (MIT) embarked on a project called Multics (Multiplexed Information and Computing Service). Multics would be the world's largest computer utility, supporting several hundred simultaneous users. Bell Labs was responsible for the operating software.

Ritchie joined the programming division of Bell Labs in 1967. His father, Alistair Ritchie, had had a long career there, and had co-authored an influential technical book, The Design of Switching Circuits (1951). Dennis was born to Alistair and and his wife Jean in the northern New York suburb of Bronxville, and grew up in New Jersey, where Bell Labs had its Murray Hill site. He studied physics and applied mathematics for a bachelor's degree (1963) and computer science for a PhD (1968) at Harvard University.

Multics was in crisis when he arrived at the research organisation. Indeed, many big software projects were in crisis – people were just beginning to learn that writing large programs was horrendously difficult and costly. In 1969, after four years of development, Bell Labs pulled out of the project.

Ritchie and another lead programmer on Multics, Ken Thompson, were left somewhat bereft by the project's demise. Multics promised a wonderful computing experience, but the operating system was too complex to build. This led them to rethink their software philosophy. They would build a simpler, smaller system that they would call Unix – the name was "a kind of treacherous pun on Multics", Ritchie once explained.

The idea was not immediately appreciated by their managers, and they had to "scrounge around" for an obsolete computer to develop Unix. The computer had just 16 kilobytes of memory, and this alone was an encouragement to keep things simple. If Multics was the victim of baroque software architecture, then Unix would be pure Bauhaus.

Unix was designed over a period of a few months in 1969, and a prototype was running early the following year. Their colleagues remained unconvinced. However, by offering to write some text-processing software, Ritchie and Thompson managed to persuade the Bell Labs patent department to acquire a full-size computer and run Unix on it.

They decided to rewrite the operating system entirely for the new machine. The first version of Unix had been written in the computers' native machine code, which was difficult and slow. For this next version of Unix, Ritchie invented a new language called C, which bridged the gap between machine code and programming languages such as Fortran and Cobol.

C also had an interesting ancestry. The progenitor was a language jointly designed at Cambridge and London universities in 1964 and known as CPL (Combined Programming Language). CPL never survived, but one of the development team, Martin Richards, became a visitor at MIT. There he designed a simpler version of the language for systems implementation, BCPL (Basic CPL).

Once Thompson and Ritchie discovered BCPL, they decided to use it for writing Unix: to do so they squeezed it into 8 kilobytes and renamed it B. Finally, a new and improved version was developed and named C, which, Ritchie mused, "left open the question whether the name represented a progression through the alphabet or through the letters BCPL".

C made writing software immeasurably easier and it also made software portable – so that a program written in C could run on any machine. The new version of Unix was completed in 1973, and since it was written in C, it, too, was portable.

Because Bell Labs's parent, AT&T, was a regulated telephone monopoly, it was prohibited from competing in the computer industry, and so had no pecuniary interest in Unix. This allowed Ritchie and Thompson to distribute Unix free of charge to universities and research institutions, which loved its clean, economical design.

Universities began to train their students in Unix and C, and when they graduated they took the culture into industry, where it blossomed. In 1978 Ritchie and a colleague, Brian Kernighan, wrote a textbook, The C Programming Language, which became a bestselling programming primer for the next 15 years. Despite the prosaic title, it was equally a book about programming style, and it shaped programming practices worldwide.

Ritchie and Thompson got early recognition for their work when they received the 1983 Turing award of the Association of Computing Machinery, often dubbed the Nobel prize of computing. But the Unix story was just beginning. The Advanced Projects Research Agency of the US department of defence adopted Unix for the network research that eventually created the internet, and it remains the software glue that binds everything together.

Steve Jobs was a Unix devotee. When he was ousted from Apple Computer in 1985, he used Unix as the basis for his NeXT computer workstation. After his return to Apple ten years later, he brought Unix with him and it became the foundation for all of Apple's current products.
Unix is also at the heart of today's open-source software movement. In the 1980s, following deregulation, AT&T began to assert its intellectual property rights in Unix. A Finnish computer science student named Linus Torvalds decided that the world needed a free version of Unix, which became known as Linux. The system was written by hundreds of programmers, mostly steeped in the Unix and C culture, collaborating over the internet. Today, the free Linux operating system powers billions of electronic devices, from smartphones to set-top boxes.
Ritchie and Thompson – usually together – received many honours and awards, culminating with the National Medal of Science awarded by President Clinton in 1998. The citation described their inventions has having "led to enormous advances in hardware, software, and networking systems and stimulated the growth of an entire industry." Earlier this year, the pair won a Japan prize. Ritchie spent all his career at Bell Labs, retiring as head of systems software research in 2007.

Dennis MacAlistair Ritchie, computer scientist, born 9 September 1941; died 8 October 2011

No comments:

Post a Comment