LINFO

Ken Thompson: A Brief Introduction


Kenneth Lane Thompson was the principal inventor of UNIX. Even today, more than 35 years later, UNIX and its descendants are still widely regarded as the best computer operating systems to have ever been developed.1

Thompson was born in 1943 in New Orleans, Louisiana and spent his childhood as what he called a navy brat. He received his Bachelor's and Master's degrees, both in electrical engineering, from the University of California at Berkeley (UCB).

Soon thereafter, in 1966, he was hired by Bell Labs, the research and development arm of AT&T, the former U.S. telecommunications monopoly, to work on the MULTICS (an acronym for multiplexed information and computing service) project. Designed by a consortium including the Massachusetts Institute of Technology (MIT), General Electric (GE) and Bell Labs as a successor to MIT's CTSS (compatible time sharing system), MULTICS was a large, ambitious and innovative operating system that was intended to support hundreds of simultaneous users. Unfortunately, the project soon became unwieldy, which, together with the fact that it had difficulty accommodating more than three simultaneous users, led to its gradual demise.2

1969 was that magic year in which mankind first went to the moon, ARPANET (the precursor to the Internet) was launched, UNIX was born, and a number of other interesting events occurred. It was also the year that Thompson wrote the game Space Travel.

Space Travel, which enabled a pilot to fly a vehicle around a simulation of the solar system, observe the scenery and land on the various planets and their moons, played a greater role in the development of the computer industry than any other game. Thompson originally wrote it for use on MULTICS, but he soon began work on rewriting it for use on a little-used and already-obsolete PDP-7 computer that was at Bell Labs. Not only was Space Travel one of the first games for use on any computer and one of the first application programs to run on UNIX, but it also served as a valuable introduction for Thompson to the awkward process of preparing programs for the PDP-7. This proficiency that he gained with the PDP-7 was one of the factors that made his development of UNIX possible.

Also in 1969, Bell Labs withdrew from the MULTICS project and Thompson decided to write his own operating system, in large part because he wanted a decent system on which to run his game on the PDP-7. He accomplished this in little more than a month, while his wife Bonnie and infant son Corey were visiting their family in San Diego, California. He spent one week each writing the kernel (i.e., core of the operating system), the shell (which is used to read and run commands that are typed into the computer), an editor and an assembler (a program to convert source code into machine code that can be directly understood by a computer's CPU). He wrote all of this in PDP-7 assembly language.

The PDP-7 on which he developed and first ran his operating system had an 18-bit word length (in contrast to the now nearly universal eight bit word length) and only four kilobytes of memory3 (which is only a small fraction of the capacity of a single modern floppy disk). This extremely small memory was undoubtedly a major factor in Thompson's keeping his operating system extremely small and providing it with an elegant simplicity that has, in turn, played an important role in the great success of it and its various descendants (including Linux).

The following year Thompson wrote the B programming language, which started out as an effort to improve the existing BCPL (basic combined programming language) language. The most important thing about B is that it became a precursor to the C language, the original version of which was completed by Dennis Ritchie in 1972. It was Thompson's insistence, in keeping with his philosophy about simplicity, that was responsible for the name for Ritchie's new language being kept short and simple. C soon became one of the world's most powerful and commonly used programming languages and remains so even today. Ritchie, who joined Bell Labs the year after Thompson, also played a major role in the early development of UNIX.

In 1972, Thompson rewrote the UNIX kernel in C. This was the move that assured the system's future success, because it made it portable. That is, it enabled UNIX to be adapted for different platforms (i.e., processor and architecture types) with relative ease, thus breaking the long-standing practice of tying operating systems to the hardware on which they ran.

In 1973 Thompson made his first public presentation about UNIX. The publication of his paper from that presentation in a prestigious journal the following year gave the system a great deal of visibility in the academic community. It was noticed by the right people at UCB, Thompson's alma mater, and this led to the first copy of the operating system being shipped to that university.

It also led to his return to UCB in 1975, where he served as a visiting professor into 1976. That university had begun using UNIX, and Thompson wanted to assist it in further developing the system. For Thompson, the benefit was, in addition to the nostalgia, the opportunity to work with a new group of people and the consequent additional intellectual stimulation. This return resulted in UCB becoming one of the two leading developers of UNIX (i.e., along with Bell Labs).

Later, while back at Bell Labs, Thompson and Rob Pike were the principal creators of a new operating system, Plan 9, that was based on UNIX but which incorporated a number of innovations. As part of this work, he also created UTF-8 (eight bit Unicode transformation format), which is now almost universally used for character encoding. Among his other activities was the development of improved chess-playing software.

In 1983, Thompson and Ritchie received additional industry recognition by being awarded the ACM Turing award. This is widely considered to be the most prestigious award in the academic computer science community.

Thompson views the great success of UNIX as being largely a matter of serendipity. But it is also due to the fact that it facilitated the huge paradigm shift from highly centralized mainframe computers to smaller, less expensive and decentralized computers that ran standardized operating systems rather than those dictated by their manufacturers. He views his own success in developing the system to the fact that he is a bottom-up thinker; that is, he visualizes complex systems by initially focusing on their most basic components and how they interact, rather than first focusing on the complete systems.

Thompson, like Linus Torvalds, the founder of Linux, is another example of history being shaped by the right person being ready at the right time. It is also an example of how a single person with an idea and dedication can accomplish something that eludes large organizations with huge concentrations of talent and massive budgets. Moreover, both are also examples of people who have created great works not with any intention for personal profit but rather because of their dedication to their craft and their desire to improve it, with the result that the world is also improved.

Thompson retired from Bell Labs on December 1, 2000 and moved to California.


________
1Moreover, one of its descendants, Linux, is the most rapidly growing operating system today, and some industry experts expect that it could eventually become the dominant operating system.

2MIT ended its development association with MULTICS in 1977. Honeywell sold its computer business to Bull in the mid-1980s, and development was terminated by Bull in 1988.

3It is sometimes mentioned that Bill Gates, the co-founder of Microsoft, wrote a compiler that only required four kilobytes of memory. However, Thompson wrote an entire operating system that could operate with the same amount of memory -- and not just an ordinary operating system.




Created January 14, 2006. Updated August 24, 2007.
Copyright © 2006 - 2007. The Linux Information Project. All Rights Reserved.