<<

Remarks for Japan Prize award ceremony for , May 19, 2011, Murray Hill, NJ

M. Douglas McIlroy

Lots of people have exclaimed about what a revelation was. As Tony Hoare said of Algol 60, Unix was not only an improvement on its predecessors but also on most of its successors. The successors today are certainly more capable than Unix was in the 1970s, but rarely as elegant. Adoring admirers have fed goodies to a disheartening state of obesity. If only some reincarnation with the genius and sensibility of and Dennis Ritchie were still guiding the evolution of Unix! Unix was shaped both by the remarkable players who brought it into being and by the research environment of . Nobody has told that story better than Dennis himself did in the Bell System Technical Journal in 1984, but perhaps I can add some footnotes. When Bell Labs pulled out of , a visionary but underperforming project to create the computer utility of the future, Ken, Dennis and became convinced that a less ambitious system could provide an equally productive environment. In bull sessions Ken, Dennis and outlined a basic architecture that has stood the test of time. Having been burned by Multics, management was disinclined to pony up for more hardware to try their ideas on, but through the good offices of a sister center in Bell Labs research theyobtained first a cast-offPDP-7 computer and then a shinynew PDP-11. Early on, I, as Ken’sdepartment head, became fascinated by the system and switched my allegiance from the big iron of the comp center to this tinyexperimental system. As theywould state later in their famous 1974 paper,the system offered ‘‘features seldom found in evenmuch larger operating systems’’. And ... it was downright fun to use. -2-

The astonishingly capable little system attracted visitors likeflies. Folks immediately sawhow theycould use it for their own purposes. Because it was cheap theycould convince their management to let them try it. Almost overnight Unix flewout of the lab to sites all overthe Bell System, from typing pools to the maintenance floor in telephone switching centers. Thanks to cheap licensing, Unix also flewinto academic departments − most notably Berkeley, which molded it into the standard platform for Arpanet, from which in turn sprang the . Much good came from Unix having been forced to fly under Bell Labs budgetary radar.Had it been richly endowed, it could not have percolated so fast and far,and might well have ended up a niche system likeMultics. Much good also came from Bell Labs culture. Management always believed that the best research was inner-directed, and did not attempt to dissuade the Multics alumni from further operating-system research. The fact that another center − Visual and Acoustics Research − contributed both equipment and stafftoaproject in Computing Science Research well illustrates the collegiality of Bell Labs research, where organization charts didn’t necessarily reflect project affinities. KenThompson was undoubtedly the original moving spirit for Unix, butDennis Ritchie was in on it from the start. And it is Dennis we have to thank for the language. C made Unix easy to modify and eventually easy to install on newhardware. With hindsight one might viewCasadistillation of previous practice. Not so. Dennis discussed at length the puzzle of howtofully 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 knewit. The rightness of C is further attested by the fact that while Unix spread to all kinds of computer,C and its descendents spread evenfurther.Cbecame the language of choice for implementing all kinds of system both in and outside of Unix shops. C ev eninfluenced hardware architecture: proposed instruction sets came to be evaluated partly on the basis of howwell theycould be exploited by a C compiler. -3-

The spread of Unix was enabled by a major effort of Dennis and Steve Johnson to makeboth Unix and C portable across machines. The value of portability of applications had long been recognized, but operating systems, which brokered the interaction between applications and hardware, had been seen as inherently tied to the hardware. Yet from a more general perspective an is just a program that happens to run forever. Only small corners of it deal with the idiosyncrasies of a particular machine. Unix provedthat the reasons for standardizing or Cobol also weighed in favorofstandard operating systems. Newcomputers get offtoaflying start with a corpus of tried and true software and the learning curveisminimized. Iwell remember howeasy it was to get aboard the Bell Labs Cray machine, which came with Unix. There was almost no potential barrier to flipping back and forth between the supercomputer downstairs and microcomputers in the labs. Another important, but largely overlooked, contribution of Dennis’s wasthe page template for the Unix manual. Devised for the very first Unix manual, that template and the concise writing style that went with it, has stood the test of time. Latter-day deviations from the pattern seem flabby and obscure by comparison. Adistinctive feature of the man-page template was the BUGS section. Here real troubles were disclosed and infelicitous design decisions were noted as challenges for improvement. At one point, the gnomes of AT&T bowdlerized it: in the official Unix product BUGS became APPLICATION USAGE! But in general this beacon of honesty has persisted as part of the Unix ethos. Dennis was a fixture at meetings of the Usenix users group. Crowds networking in the corridors would break to pack his talks about current developments. Of course every newcomer wanted to see and hear the man behind the system. Old hands came to listen to the master perhaps even more eagerly.Ifyou read one of his papers, you’ll see why. Dennis combines perfect control of the technical matter with a polished, but easy writing style, and an unerring sense of howmuch to say.That felicity is also on display on his home page, which offers engaging pieces about many things he’sworked on. One tells of a foray into cryptographywherein he implemented a remarkable code-breaking technique due to Jim Reeds. This resulted in a visit by spooks from NSA, who gently discouraged conspicuous -4-

publication. On Dennis’shome page you can also read about Labscam, a wonderful practical jokethat I won’tspoil by summarizing today. Ritchie and Thompson made an amazing team; and theyplayed Unix and C likeafine instrument. Theysometimes 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, theyonce got their signals crossed and both wrote the same subroutine. The twoversions did not merely compute the same result, theydid it with identical ! Their output was prodigious. Once I counted howmuch production code theyhad written in the preceding year − 100,000 lines! Prodigious didn’tmean slapdash. Ken and Dennis have unerring design sense. They write code that works, code that can be read, code that can evolve. Amathematician’sdistance from the center of his universe is often measured by Erd¨o snumber − howmanydegrees of coauthorship separate him and the legendary Paul Erdos. It has been my good fortune to snag a Ritchie-Thompson number of one. But I am only one among thousands for whom Unix and C have been both an enabler and an inspiration. I’m sure all will me in applauding the wisdom of the Japan-Prize judges who recognized the singularity and pervasive influence of those inventions. Dennis, it is an honor to have this opportunity to both congratulate and thank you for the achievement. Reformatted, with proofreading corrections, October 13, 2011