​http://doc.cat-v.org/bell_labs/utf-8_history​

http://www.linfo.org/thompson.html


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

肯尼斯·蓝·汤普逊是 UNIX 的主要发明人。 即便是经历了 35 年后的今天,UNIX 及其衍生品依然被广泛地认为是迄今为止最好的计算机操作系统。

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).

汤普森于 1943 年出生于路易斯安那州的新奥尔良,他的童年就像他所称的海军小子一样。他在加州大学伯克利分校(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

此后不久,在 1966 年,他被美国前电信垄断企业 AT&T 的研发机构贝尔实验室聘用,负责MULTICS(多路信息和计算服务)项目。MULTICS 由麻省理工学院(MIT),通用电气(GE)和贝尔实验室等联盟设计,作为麻省理工学院 CTSS(兼容时间共享系统)的继承者,是一个庞大,雄心勃勃,创新的操作系统,旨在支持数百个并发用户。不幸的是,该项目很快就变得笨拙,再加上它难以同时容纳三个以上的用户,导致其逐渐消亡。

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.

1969 年是人类首次登月的神奇年份,ARPANET(互联网的前身)推出,UNIX 诞生,还发生了许多其他有趣的事件。 比如这也是汤普森写 “太空旅行” 游戏的那一年。

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.

1969年,贝尔实验室退出了Multics项目,GE主机也被搬走了。于是Thompson决定自己手写一个操作系统,很大原因是因为他想要有一个合适的系统来继续玩他原来在Multics上编写的Space Travel(太空旅行游戏)。 正好实验室有一台没人用的DEC PDP-7。他大概用了1个多月的时间完成了这个操作系统(取名“UNICS”,即第一版Unix),直到他的妻子和小宝宝来加利福尼亚-圣地亚哥看他。 他大概花了1周时间来编写内核,1周时间编写Shell,1周时间编写编辑器,1周时间编写汇编程序(assembler),所有这些都是在PDP-7上用汇编语言写成的。 (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 memory​3

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.


  1. Moreover, 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.​​↩︎​
  2. MIT 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.​​↩︎​
  3. It 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.​​↩︎​