Cameron Jones Interview
April 17, 1998
Interviewwith Ken Thompson
A central role in the development of UNIX was played by Ken Thompson, who dominated the UNIX group as language, file system, and compiler expert while in the company of some of the greatest minds in computing. Thompson was in charge of building the basic aspects of UNIX even before it became an actual operating system. He was so focused on this task, he had to be prodded to discuss the transition from file system to operating system. Saying "there was a very quick rewrite that admitted it was an operating system, and it had a kernel user interface that you trapped across. I really can't remember what the realization was," indicates his lack of concern with the operating system. Clearly, looking back on such a momentous event as the instant UNIX was born, one would imagine that its creator would be eager to tell all the details without being asked. But that was not what Ken was there for; he was there to create a good file system, and, if possible, to create for himself a better way to program.
His ideas about the file system were centered around file-sharing, a concept which he felt was very important to the overall success of the project. The organization of the UNIX project mimicked the file-sharing system which he desired to implement ideally, as it was an extremely open mini-society of programmers, doing work for the good of the project with very little concern for money above their salary or fame as rewards. This lack of concern for rewards was caused in part by the fact that no one in the group anticipated that what they would eventually create would become an institution in computing. This was not the age of Bill Gates and Gordon Moore; there were very few prior cases of hugely successful software that made its creators rich. Each member of the group did, however, have his own motivation for the success of the project, that motivation was reflected in the area in which he chose to put his energies.
For Ken Thompson, the area of interest was undoubtedly the advancement of the art of programming. When asked "was [it] going to be multi-user system from the start," Thompson responded "I was more interested in myself. Just selfish notions of trying to get a environment to work in." These "selfish notions" helped create B, a language which Thompson acknowledges is nearly identical to BCPL. Without this new language, it would have been nearly impossible for the group to have developed and maintained UNIX as they did over the span of 3 years. Vital to Thompson's ideas about programming in UNIX was the concept of standard input and output. This idea led to the eventual implementation of piping in UNIX, which enabled programmers and regular users alike to create complex combinations of functions which worked together flawlessly. Not only did standard I/O lead to the eventual development of piping, but to Thompson it was also important because he saw UNIX taking over MULTICS' intended place as "the computing utility." This functionality made it important that every device, be it the largest server or the thinnest terminal, handle data input, output and storage in exactly the same way as every other. It was to be just like electric power, every electrical appliance can plug into any outlet, regardless of what its actual function was to be.
Directly following his statement about "selfish notions," Thompson immediately sets his work back into the context of the group's work, saying "You can get your own work done, but you can't really work faster unless there's a community of ideas, a community of help." This sense of community was a key to the success of the project. Progress was made because each member of the group realized that without the group's success, no individual could fulfil his goals. Thompson felt that one of the final goals of the group was to create something for the mass market, which served the idea of communal computing, saying "we always wanted to expand it and turn it back into communal things. We were always trying to get machines that we could take home, you know and share among wider groups of people." In the end, the goal of sharing their experience and application of computers with a wide audience was a goal.
An interesting aspect of Thompson's personality can be found in his description of the distribution of workload and accomplishments among the team. When speaking about the actual rewriting of UNIX as an operating system, he says "Essentially one person for a month, it was just myself." Prodded further to speak about the contributions of other members of the group, he briefly mentioned that Doug [McIlroy] "got involved", then says, "there were a lot of people involved, in a political sense, you know, trying to keep the machine for us, and get us the next machine, and that kind of stuff that weren't doing programming." This lack of appreciation for others' contributions to the effort betrays that the true nature of Thompson's effort was purely personal curiosity. He grew a bond with the machines, and it became a war to protect them from outside factions. When management decided to split the computer services group apart from the computer science group, Thompson complained "the computers were not with us anymore. . . a very, very different approach what we were used to up until this point . . . it was horrible just to use [their time sharing system]. This statement is just the tip of the iceberg about how he felt about the management.
There were various incidents which aroused his animosity towards management; prominent among these was the removal of the computers from their control. When their own managers would not fund the purchase of a computer for their use,"psychology research, came over and said 'well we'll fund it out of our area,' embarrassed the hell out of our management." Speaking of that psychology department, Thompson remarks "They just had insight, inspiration and unfortunately our management didn't." Driven by a desire for personal satisfaction, the urge to defeat management, and the quest to develop the best product ever made drove Ken Thompson to success in the UNIX project.