Ken Thompson UNIX systems father

thompson01

Kenneth Thompson, or as they call him “Ken”, the creator of UNIX and co-inventor of the “C” language. He was born in February 1943, New Orleans, Louisiana. Ken is a computer scientist and co-winner of the A.M. Turing Award with Dennis Richie in 1983, this award is the highest honor in computer science. Thompson and Ritchie were jointly cited for development of generic operating systems theories and specifically for implementation of UNIX operating system which they invented at Bell Laboratories. Ken earned the Bachelor’s degree in 1965 and the Master’s degree in 1966 in electrical engineering field from the University of California, Berkeley (UCB). He went to work at Bell Labs after graduation, where he worked first on the Multics project.

“I think the major good idea in UNIX was its clean and simple interface: open, close, read, and write.”

Ken Thompson

Bell Laboratories & UNIX

In 1966, Ken was hired by Bell Labs to work on the MULTICS project (The Multiplexed Information and Computing Service). The project was designed with consortium including General Electric (GE), Massachusetts Institute of Technology (MIT), and Bell Labs as it was successor to MIT’s Compatible Time Sharing System (CTSS), MULTICS was an ambitious, innovative, and large operating system which was supposed to support hundreds of simultaneous users. Unfortunately, the project soon became unwieldy, which, with the fact that it struggled accommodating over three simultaneous users, resulted in its gradual demise.

“It is only the inadequacy of the criminal code that saves the hackers from very serious prosecution.”

Ken Thompson

1969 was magic year when UNIX was born, humans first went along to the moon, ARPANET was released (the precursor on the Internet), as well as a number of other interesting events occurred. It was also the year which Thompson wrote the Space Travel game.

The Space Travel Game

This game observed scenery and land on different planets and their moons, enabled pilot to fly vehicle around simulation of the solar system, played more important role in the computer industry development than any other game. Ken Thompson wrote the game originally for using on MULTICS, but he soon started to work on rewriting it for using on little-used and already-obsolete PDP-7 computer which was at Bell Labs. Not only Space Travel was one of the first games to be used on any computer and one of first app programs to run on UNIX, but also it served as valuable intro for Ken to awkward process of preparing programs for the PDP-7. That proficiency which he gained with the PDP-7 was one of the main factors which made his development of UNIX possible.

“I still have a full-time day job, which is why it took me five years to write An Ear to the Ground, and why I won’t have another book finished by next week.”

Ken Thompson

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

“I wanted to separate data from programs, because data and instructions are very different.”

Ken Thompson

The PDP-7 Computer

The PDP-7 was the computer on which Ken developed and also first ran his operating system. It had an 18-bit word length and only four kilobytes of memory3 which was only small fraction of capacity of single modern floppy disk. That extremely small memory was a major factor in Ken’s keeping his operating system small and also providing it with elegant simplicity which has played very important role in the success of it and its spiritual descendants.

The UNIX Development

In 1970, Thompson wrote a programming language called “B” language, which started out to improve the basic combined programming language (BCPL) language. The most important thing we need to say about B is that it became the precursor to “C” language, which was completed and released by Dennis Ritchie in 1972. This was Ken Thompson’s insistence, to keep with his philosophy about the simplicity, which was responsible for the name for Dennis Ritchie’s new language to be kept short and simple. “C” later became one of the world’s most powerful and widely used programming languages and it remains so even today. Dennis Ritchie joined Bell Labs directly the year after Ken Thompson and he played major role in early development of the UNIX.

“That brings me to Dennis Ritchie. Our collaboration has been a thing of beauty.”

Ken Thompson

Ken Thompson rewrote the UNIX kernel in the “C” language in 1972, which was the move that changed and assured the UNIX’s future success, as it made the UNIX more portable. This means that “C” enabled UNIX to be adapted for different platforms with relative ease, thus breaking long-standing practice of tying the operating systems to hardware on which they could run.

In 1973, Ken Thompson made the first public presentation about UNIX. Publication of the paper from his presentation in prestigious journal in 1974 gave the system another great deal of visibility inside the academic community. The publication was noticed by the right people at the UCB, Ken’s alma mater, which led to the 1st copy of the operating system and was being shipped to that university.

This also led to Ken’s return to the UCB in 1975, where Thompson served as visiting professor into 1976. They had begun using UNIX, and Ken Thompson needed to assist it in further developing his system. For Ken, the benefit was, plus the nostalgia, an opportunity to work with new groups of people and consequent additional intellectual stimulation which resulted in the UCB to become one of the two leading developers of UNIX.

“I have to keep up with the scientific literature as part of my job, but increasingly I found myself reading things that weren’t really relevant to my academic work, but were relevant to gardening.”

Ken Thompson

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

Thompson and Ritchie have received an additional industry recognition in 1983 by being awarded the ACM Turing award which is widely considered as the most prestigious award in academic computer science community.

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

“The X server has to be the biggest program I’ve ever seen that doesn’t do anything for you.”

Ken Thompson

During the early 1980s, the influence of the UNIX in the academic circles led to a large-scale adoption of UNIX by many commercial startups, for example Solaris, HP-UX and AIX. Particularly of BSD version, originating from the University of California, Berkeley. Nowadays, in addition to the certified UNIX systems that I already stated, Unix-like operating systems like Linux and BSD descendants (NetBSD, FreeBSD, and OpenBSD) are now commonly encountered.

In 1983, Ken Thompson was named fellow by Bell Labs. He also assisted Dennis Ritchie in creation of the Plan 9 operating system in 1995 and the Inferno operating system in 1996 at Bell Labs. Later in 1998, Ken Thompson and Dennis Ritchie were awarded together the U.S. National Medal of Technology for their UNIX development.

“You can’t trust code that you did not totally create yourself.”

Ken Thompson

Ken Thompson is another real example of history being shaped by right person who is ready at right time in right place. He is also an example of how single person with just an idea and dedication could accomplish something which eludes the large organizations with enormous concentrations of talent and budgets. Moreover, He is also an example of person who has created great work without any intention for any personal profit but rather because of his dedication to his craft and his desire to improve it, resulted that the world is also improved.

Ken Thompson decided to retire from Bell Labs in 2000 and has moved later to California. Later, he worked at Entrisphere, Inc as a fellow till 2006 and now he works at Google as Distinguished Engineer. His recent work included the co-design of Go programming language.

Thompson’s Awards

  • National Academy of Engineering in 1980
  • Turing Award in 1983
  • IEEE Richard W. Hamming Medal in 1990
  • Fellow of the Computer History Museum in 1997
  • National Medal of Technology in 1999
  • Tsutomu Kanai Award in 1999
  • Japan Prize in 2011