We caught up with the pioneers who brought us the Unix operating system and asked them to share some memories of the early days of Unix development.
Unix co-developer Ken Thompson worked at Bell Labs from 1966 until he retired in December 2000. He recalls this prank:
“The Unix room was on the sixth floor at one end of Bell Labs. The cafeteria was on the ground floor about a quarter of a mile away. There were dozens of ways to walk to lunch. You could pick one of four or five staircases and any segment of the six floors. One day, we were walking through the fourth floor, which was being renovated. It looked like a bombed out city. The walls and ceilings were open with pipes and wires hanging everywhere. I noticed that there were, what looked like, speakers throughout the ceiling. I had always wanted to tap into the Bell Labs PA system and thought this was a perfect chance.”
[ALSO: The last days of Unix]
“At night, I examined the speakers more closely and discovered that they were not really speakers, but white noise transducers. I chased the wires back to a panel that contained the generator and amplifier. Without anything specific on my mind, I borrowed the keys to the panel, duplicated them and put them back. Months later, after the construction was all done, I discovered the keys in my desk and decided to investigate. The generator was active and the amplifier volume was set to 1. In the office area, I could hear the noise, but only because I knew it was there.”
“OK, I started turning the volume up by one notch every week. I would walk through the office area at least once a week on the way to the cafeteria. By the time that the volume was up to 8, still no one had noticed it but, to me, it sounded like Niagara. Everyone in the offices was screaming at each other. At that point, I couldn't help but laugh. On questioning, I told my lunch buddies what was going on. The word spread like a virus and, the very next day, the panel was open and the amplifier was removed. I still have a mental image of two people sitting across a table from each other yelling at each other in a normal conversation.”
Doug McIlroy remembers Unix co-developer Dennis Ritchie, who died in 2011.
“Ken Thompson was undoubtedly the original moving spirit for Unix, but Dennis Ritchie was in on it from the start. And it is Dennis we have to thank for the C language. C made Unix easy to modify and, eventually, easy to install on new hardware. With hindsight, one might view C as a distillation of previous practice. Not so. Dennis discussed at length the puzzle of how to fully exploit byte-addressed machines. He finally came up with a beautiful way to reconcile address arithmetic with indexing — one of those inventions that is so right that once you see it, you think you always knew it. The rightness of C is further attested by the fact that while Unix spread to all kinds of computers, C and its descendents spread even further. C became the language of choice for implementing all kinds of system software, both in and outside of Unix shops. C even influenced hardware architecture: proposed instruction sets came to be evaluated partly on the basis of how well they could be exploited by a C compiler.
“Ritchie and Thompson made an amazing team; and they played Unix and C like a fine instrument. They sometimes divided up work almost on a subroutine-by-subroutine basis with such rapport that it almost seemed like the work of a single person. In fact, as Dennis has recounted, they once got their signals crossed and both wrote the same subroutine. The two versions did not merely compute the same result; they did it with identical source code. Their output was prodigious. Once I counted how much production code they had written in the preceding year — 100,000 lines. Prodigious didn’t mean slapdash. Ken and Dennis have unerring design sense. They write code that works, code that can be read, code that can evolve.”
Peter Neumann remembers Joe Ossanna, who died in 1977.
“Joe and Stan Dunten at MIT were the two people with the deepest experience on input-output system issues. They became the ‘go-to’ folks at Bell Labs and MIT for the Multics I/O subsystem, in addition to what it had to do in order to fit in with the rest of Multics.
“Joe had an amazing grasp of everything in that area. He was invaluable to the Multics effort. He was also a warm and thoughtful person. I miss him very much.”
Douglas McIlroy shares vivid memories from the Unix lab
“Personal high for me was the introduction of pipes — a story that's often been told. I had been smitten with stream processing back in 1964 when Conway published the idea of co-routines. I had lobbied for direct process-to-process IO for some time, but only when I came up with the catchy name, ‘pipe’ and suggested a workable shell syntax did Ken Thompson vow to do it. It happened overnight and, the next day, we had a wonderful orgy of ‘look at this one.’ Within a week, even our secretaries were using pipes as if the feature had always been there.
“The birth of C, which I think can fairly be called the baseline workhorse language even today — it is the implementation language for myriad other languages and systems.
“I don't know the counts of Unix and Linux servers. I do know that my heart sinks whenever I look under the hood in Linux. It is has been so overfed by loving hands. Over 240 system calls! Gigabytes of source! AC compiler with a 250-page user manual (not counting the language definition)! A simple page turner, ‘less,’ has over 40 options and 60 commands! It's proof that open-source can breed monsters just like the commercial pros. Miraculously, though, this monster works.”
Peter Neumann explains the etymology of Unix.
“Don't fall for the story in Peter Salus's book that I coined the name Unics. I don't think I ever claimed that, although I certainly contributed to the pun on the original version of Ken's system being a castrated one-user Multics (Eunuchs). Brian Kernighan may well have been the initiator of ‘unics.’ The Bell Labs PR folks eventually wanted it changed to Unix, probably to avoid the pun.”
“I remember Ken coming in for lunch one day (he tended to program into the wee hours) with a thousand-line operating system kernel that he had written to run on a PDP-7, which Max Matthews had that no one was using. I suggested that it was only a one-user system, so the next morning, Ken came in with another thousand lines and it had become a multiuser system. The rest is history...”
Rudd Canaday shares fond memories, plus why he left.
“Because I had children, I tended to work normal hours. With no such restriction, both Ken and Dennis usually would come to work in the early afternoon and work well into the night. Early in the design of Unix, Ken, Dennis and I fell into the habit of having lunch every day in the service dining room, which closed, as I remember, at 1:30 pm. Most days around noon, I would have to call Ken and Dennis at home to remind them to come to work before the dining room closed. We would go for lunch just before they closed and work at our lunch table well into the afternoon. The staff got used to cleaning up around us and then leaving us there to work.
“One day Ken, Dennis, and I were in my office using the blackboard to design the Unix file system. Bell Labs had just inaugurated a new telephone dictation system available 24/7, which I had wanted to try. So, when we finished for the day, I picked up the phone and dictated notes on our design. The next day the notes arrived on my desk. The notes were useful even though the typist's attempts to make sense of the technical jargon were hilarious. After using the notes to continue our design work, I threw them away. I would love to have those notes now. Several years after I left the Unix project, a patent application for the Unix file system by me, Ken, and Dennis arrived for my signature. I signed it, but did not keep a copy. I wish I had. Subsequently the patent was denied because, I was told, the U.S. Patent Office, at that time, was unsure about and uncomfortable with software patents.
“I left because Ken, Dennis, and I had gone about as far as we could with Unix without a machine. But, when we asked for funds to buy a machine, we were told that BTL, which had just abandoned MULTICS, was not willing to fund another operating system. I believed management and left the Unix project to start a new research group (which built the back-end database machine). I've often said that was the last time I believed what my management told me. Ken and Dennis went to (I was told) the patent department and promised a system that would do their paperwork if they supplied a machine. That's why, I believe, the early Unix had so many text processing tools (nroff, troff, etc.).”
Brian Kernighan chats about pipes and pipelines:
“It's hard to imagine just how far Unix systems have come in the past 40 years. A bit of searching reminded me of the wonderful remark by Dennis Ritchie that ‘the number of Unix installations has grown to 10, with more expected,’ which I think dates from about 1972, probably around the time of the third or fourth edition. I do recall one occasion, a few years after that, when someone brought in a classified advertisement from the New York Times (remember when papers still had classifieds?) that was seeking Unix programmers; the consensus in the Unix room at Bell Labs was that in some way Unix had made the big leagues; it had ‘arrived.’”
“In his 1979 paper on The Evolution of Unix, Dennis Ritchie said, ‘One of the comforting things about old memories is their tendency to take on a rosy glow. The memory fixes on what was good and what lasted, and on the joy of helping to create the improvements that made life better.’ I cherish a lot of memories of those good old days.”
“The Unix room was, in some ways, ahead of the curve in providing a large open space with tables where people could work or just hang out. It was often noisy, but it made for very effective communication. Everyone had a private office, but everyone spent some time in the communal space, perhaps just for coffee, or to ask a question about how something worked. And when the system was small and the group was compact, it was also the place to hear about new ideas and new programs.”
“I remember one day where the new ‘pipe’ feature had just been implemented in the shell. What a neat idea: take the output of one program and make it the input of another program. There was a frenzy of activity as people modified programs, so that they would work in pipelines, not just from file arguments. It probably only lasted a day (in my rosy memory) but, in some ways, it changed the world forever.”
“Unix also was created at a time when we had keyboard input and minimal graphics capabilities. So the text processing software lost out to WYSIWYG methods. The result is that it's easier for me to create a table when writing it by hand; but it's more difficult to generate a table out of a software script. This suits the industry — when success is measured by counting eyeballs, the industry likes programs that require the user to be personally present and paying attention. But it raises the effort required to link up multiple applications, which was a great strength of the ‘pipe’ mechanism on Unix.”
Bill Joy reveals the beginnings of Berkeley Unix: “More than 30 years ago, I had changed Unix to run with virtual memory on the VAX. I was at Bell Labs in Murray Hill, N.J., hanging out with the original Unix research group. I was talking with Steve Bourne who, like me, had written a new ‘shell’ (command line interpreter) for Unix.”
“He mentioned another machine, in a different department, where they would love to have my new-fangled Unix. One night, we stayed up all night and changed the OS — when people came in the next morning, they had Berkeley Unix, rather than the internal (non-research) Bell Labs version they were previously running. It was quite an audacious change to make with no wide notice or permission requested (and; therefore, denied).”
“But it all went quite smoothly; the new system was more reliable and faster. It was a ‘coals to Newcastle’ moment and, for me, marked the arrival of Berkeley Unix as a real thing. Berkeley Unix, as it is well known, brought a quality implementation of the TCP/IP Internet protocols. It was really the first high-performance one and with, what is now called, ‘software defined networking.’"
“I have never understood the focus on hardware black boxes for networking. To me, software defined networking was the way to go. Perhaps that's why Sun and Cisco were separate companies, even though both came out of Stanford and on similar hardware.”
David Korn tells the cookie story, plus ‘a true Woody Allen moment’: