Building UNIX

Ken (seated) and Dennis working on UNIX

UNIX was born from the ashes of the MULTICS project at Bell Labs. Although many people involved in MULTICS contributed to UNIX, it really was the creation of one brilliant software designer: Ken Thompson.

As discussed in my previous blog post, Bell Labs abandoned the MULTICS project because it was too big, too complex, too late, and too costly. Even before MULTICS was abandoned, Ken Thompson decided he wanted to build a small, efficient system which would achieve most of the goals of MULTICS. Dennis Ritchie and I joined him in this effort. The three of us were the youngest members of the computing science research department. Ken and Dennis had worked together before I joined MULTICS. Dennis and I had worked together building a BCPL compiler.

Dennis was single and Ken had a wife but no children. Both of them were accustomed to arriving in the early afternoon and working well into the night. I, on the other hand, had two children so I needed to work regular hours, getting home for supper by about 7PM. I would arrive about 9AM and work independently until lunch, when Ken and Dennis would arrive. We would start our work day together with lunch. Bell Labs had a service dining room, which we used. It closed at 1:30. Often, around noon, I would have to phone Ken and Dennis at their homes to remind them to come to work before the service dining room closed. We would start lunch around 1 or 1:30 and sit at the dining room table working until 3 or 4 in the afternoon. The wait staff got used to cleaning up around us.

One of the most memorable events during our work on UNIX was the day we sat in my office hashing out the details of the UNIX file system. Bell Labs had just instituted a new service: dictation over the telephone, which I had been wanting to try. So after we finished our design work for the day, around 7PM, I dictated the notes of our design on the phone. The next day the typed notes arrived on my desk. They were full of strange and amusing sentences created by the typist trying to understand our technical terms, but the basics of the UNIX file system design were there. I wish I had kept those notes, but at the time we had no idea how important UNIX would become.

I also wish I had kept a copy, several years later, of the patent application for the UNIX file system, signed by Ken, Dennis, and me. The patent was denied because, I was told, software patents were so new that the U.S. Patent Office did not know what to do with them.

Once the basics of the file system were designed I set to work on file system groups. I wanted a many-to-many relationship between users and files, but could not find a way to implement it that was not too expensive in computer time. We settled on the one-to-many implementation.

We reached the point in our design where we needed a computer on which to implement UNIX. We went to our executive director to ask for a DEC PDP-11 machine. He told us no. He said that Bell Labs had been badly burned by MULTICS and that there was no way Bell Labs would ever build another operating system. I believed him and left the computing science research department to form a new research group (which quickly became a department) elsewhere in Bell Labs. See my next post.

I’ve often said that was the last time I ever believed management. Ken and Dennis did not believe the Executive Director. They went to the Patent department (others say it was the Statistics area, but I think it was Patent). They told the patent lawyers that if they bought a PDP-11 for Ken and Dennis, then Ken and Dennis would provide them with a system to do their paperwork. This is why the early UNIX contained so many text-processing tools (e.g. NROFF, TROFF, GREP, etc.). UNIX was built, the Patent department used it, and UNIX took off.

Once I left the computing science research department I had little contact with UNIX, other than being co-author of the UNIX file system patent application. One other event does stick in my mind. Shortly after UNIX was finished a new printer was acquired for use with it. I’d been told about it, and warned that it smelled strongly of ammonia (used to develop the printed images). I went to see the machine, which was about 6 feet long and 5 feet high and housed in its own small room. Looking at it, I said that it did not smell as bad as I had been told. “You have cats” commented someone. He was right.

If I had not left the UNIX project so early I probably would be as famous as Ken and Dennis. On the other hand, I would not have had the opportunities to build my own teams to do very interesting work.

– Rudd Canaday (ruddcanaday.com)

    – Start of blog: My adventures in software
    – Previous post: How UNIX Came to Be
    – Next post: Inventing a Database Server (coming Sunday March 23)


Share this post:

This entry was posted in Uncategorized and tagged , , , , , . Bookmark the permalink.