Bob Morris, interviewed by Michael S. Mahoney, reveals not only his contributions to Unix, but also the environment that fostered it. Surprisingly, this nurturing environment lacked leadership, support, and direction.
The most important aspect of the environment in which Unix developed at Bell Labs, according to Bob Morris’s account, was flexibility. There was no predetermined structure for Unix. Morris notes that this was not "…some God damn government project" where someone made decisions without the proper information. Conversely, Unix took the form its users needed. The Unix developers, including Dennis Ritchie, Ken Thompson, Rudd Canaday, and Joe Osanna, wrote the functions and operations that they, as users, needed. This fostered creativity as the users, or at least Morris, saw an opportunity to make a quality tool for their own work, and a possibility of publishing it.
Creativity could also flourish because there were no rigid leadership roles among the Unix developers. While Doug McIlroy oversaw the developments, he served primarily an administrative function. The prevailing attitude was that if you wanted something done, you had to "do it yourself." Morris explains, "If Ken…asked somebody to do something, the answer would be, ‘Go suck a grapefruit.’" However, this is not a sign of antagonism. It is evidence of cooperation.
The developers of Unix formed a close community. Sharing an attic in Murray Hill, New Jersey, the developers had terminals right next to each other and ate lunch together everyday. They could exchange advice and explain any changes they were making to the system. Morris notes that even "bitching" about something was a contribution in the early seventies. The result of this community was a consistency of approach in the methods of Unix. While acknowledging that Unix has some quirks, Morris comments, "I feel a consistency of approach in style, in general orientation, and in attitude." In addition to unifying the system, the close community allowed for frequent changes in the system.
Morris gives two examples of the responsiveness of Unix. First he explains that one day Ritchie and Thompson were arguing over what year something occurred, because the papers they had only contained the day and month. Morris easily sat down and rewrote the print program PR to display the year. The second example is that one day Morris noticed that as Ritchie was using DC, a calculator program, the program wipted out all the data that Ritchie had entered when it displayed an error message. Morris was able to change the code and recompile it before Ritchie could even report the problem.
It is now important to explain Morris’s background and contributions to Unix. Before joining Bell Labs and then the Unix team, Morris had used both MIT’s CTSS and Berkeley’s time sharing system. Although working at Bell Labs, Morris, who considers himself a mathematician, played no role in the creation of the Unix system and its fundamental ideas. He was eventually attracted to the Unix project because he saw it as a positive step away from the "technological backwater" that he considered Bell Labs computing to be at the time. Although Morris joined the Unix community as a user, he made contributed much to its development.
Morris implemented almost all mathematical and arithmetic operations for Unix. He was responsible for the operations that take care of inputting, storing, and outputting dates. He also contributed, to the best of his memory, all fundamental service routines such as calculating sines, cosines, tangents, logarithms, and exponentials. He also developed the high precision DC calculator program.
Another of Morris’s important contributions, although he considers it a side issue, is Unix’s security system. Morris explains that Unix always had some form of security, but it eventually needed a quality password system. His answer was encryption. However, simple encryption was not enough because if the encryption algorithm fell into the wrong hands, the system was violated. His answer "…was to find an encryption operator who would work in the direction of turning ordinary passwords into encrypted passwords, but extremely difficult to go the other route," from the encrypted to the unencrypted password. He acknowledges that, although he didn’t know it at the time, this technique had previously been developed in England. Knowing that people would try to "...run whole dictionaries through the damn thing," Morris designed the password lookup to be as slow as he thought users would tolerate (one second). The results of his efforts, although not perfect, are pretty difficult to overcome. Also, the encryption of the passwords allowed for the passwords to be kept in the same file with other user related information.
Mahoney’s interview with Morris touches on several other important issues. First, Morris believes that systems should be intuitive to use. Morris would answer the question, "What do these commands do?" with, borrowing Mahoney’s words, "What you think they ought to do? That is what it would make sense for them to do." Morris also explains how EQN, a mathematical text formatting program, works. He declares, "[If] I wrote integral from A to B of X, that it should damn well produce a nice integral sign and an A at the bottom of it and a B at the top of it and an integrand."
Finally, Morris comments on why he thinks Unix succeeded. He does not attribute success to any miracle. He admits that Unix was heavily derivative of other systems, especially CTSS. He also acknowledges, "In the crucial years, it [Unix] was not supported [by Bell Labs]. The years that made the difference between it continuing and not continuing. The best one can say of management’s role is, they didn’t manage to kill it. Hey, that’s fine. In many other organizations, they would have managed to kill it. At Bell Labs, they didn’t." Later he adds, "It was the right time to strike and one of the best things about UNIX...isn’t anything in UNIX itself. But timing. It was a darn good system, coming out at essentially exactly the right time."
Mahoney’s interview of Bob Morris reveals a great deal about Unix. I was at first dismayed at how disjointed the interview seemed, but after listening to and reading it several times, I found the connecting, prevailing threads. If you choose to examine the transcript, concentrate on it as a whole, and you will find a description of the unique environment that fostered Unix.