Nearly everyone has benefitted from the work that M. Douglas McIlroy'53, accomplished during his 70-year career. And yet, his name is not widely known.
McIlroy - mathematician, engineer, and programmer - graduated with a B.E.P. degree in engineering physics from the School of Applied and Engineering Physics at Cornell University where he became fascinated with computers.
He spent most of his 40-year career at Bell Telephone Laboratories in the math and computer science department, where he participated in the genesis of the Unix operating system, one of his notable achievements. The creation of Unix arose from the desire to have a "convenient, interactive, usable computer system that could support many users," according to a Bell Labs review from 2004. Before Unix, operating systems were machine-specific, and comparatively clunky in the tasks they could do.
As research department head, McIlroy hired Ken Thompson, who invented Unix in the late 1960s along with Denis Ritchie. McIlroy was one of its first users, developing his concept of pipes, which he described as the "disarmingly simple but powerful idea of feeding output of one computer program directly into another program running at the same time."
His idea for pipes arose from an early research project at Bell Labs that involved the use of macros, computer programs that imitate keyboard or mouse actions. McIlroy and his colleague, Doug Eastwood, introduced macros into the machine-language assembler, which converts human-readable representations of machine instructions into binary code. By incorporating macros into assembly language, creation of higher-level operations and even of special-purpose languages within this very low-level programming environment was made possible.
"This idea was most thoroughly taken up by the developers of telephone-switching equipment," McIlroy said. "Compilation of switching code implemented in macros became one of Bell Labs' biggest consumers of computer time. My paper, 'Macro Instruction Extension of Compiler Languages' was the first one published on this hot topic of the 1960s."
But McIlroy started thinking about how to link macros together and applied his concept of pipes to the newly invented Unix operating system. This allowed and encouraged the practice of assembling complicated software programs out of simple, standard software tools. This approach was a radical change from the way programs were written in the 1950s and 1960s but is ubiquitous in computer programs today.
The use of pipes contributed to the flexibility, portability and ease-of-use that characterized Unix. Combined with an approach of writing programs as a series of tools, pipes helped ensure the longevity of Unix. In Bell Labs review from the early 2000s McIlroy explained, "the philosophy for Unix that everyone started to put forth was, 'Write programs that do one thing and do it well. Write programs to work together. Write programs that handle text streams because that is a universal interface.' All of these ideas, which add up to the tool approach, might have been there in an unformed way prior to pipes, but they really came in afterwards."
Today, Unix - or its derivatives such as Linux and BSD - is still used in devices ranging from internet servers and supercomputers to personal computers and smartphones.
According to the Unix users' group USENIX, McIlroy's major influence on the design of macros, along with his development of the concept of pipes, won him the 2024 USENIX Software Tools User Group Award. The award committee wrote that "While many people have added to this interface, contributing tools and programs over the years, one name stands out as a significant contributor, one who originally wrote some of the most basic and timeless tools for this system… In addition, he has made contributions to various computer languages such as Lisp, PL/1, and TMG, and he helped influence Snobol, Altran, and C++." That same year, while receiving his award, McIlroy was surprised with the USENIX Lifetime Achievement Award, an annual recognition that "celebrates singular contributions to the UNIX community of both intellectual achievement and service that are not recognized in any other forum." Two years later, in 2006, McIlroy was elected to the National Academy of Engineering.
Early years
McIlroy grew up in Ithaca and as a legacy of Cornell. His father, Malcolm McIlroy '23, was a professor of electrical engineering at Cornell, and had a consulting business analyzing gas and water distribution systems using an analog computer he invented. His mother, Dorothy, ran the analyzer after Malcolm died.
McIlroy decided to study at Cornell "because of the unique curriculum offered by engineering physics." In 1949, the year he entered Cornell, the field of computer science did not exist. But engineering physics students had flexibility in designing their curricula, so McIlroy enrolled in a numerical analysis course in the mathematics department. In a serendipitous occurrence, Cornell acquired its first computer, an IBM CPC, that semester, and McIlroy remembers that the professor, Bob Walker, made sure that students in his class were able to use it.
"These days, we would not even call it a computer," said McIlroy, "but, I was hooked from the start, and have ever since applied my training in engineering, physics and math to this endlessly fascinating vocation." From Cornell, McIlroy completed his Ph.D. at MIT, where he had access to "Whirlwind II," the largest computer at any university that was available to students. "Large" at that time was mostly related to size, as Whirlwind II required two stories and several rooms in one building yet had only 2 kilobytes of memory.
Bell Labs and retirement
After MIT, McIlroy joined the math and computer science departments At Bell Laboratories.
"It's ironic," he said. "In the 1950s, the only thing people thought computers were good for were math, scientific computing and bookkeeping. In fact, I learned that the director of mathematics when I was first hired told the people hiring me, 'If you want to hire this guy, you can. But what's he going to be doing in five years?' There was this notion afoot that once you got computers programmed, there wasn't much more to be done. That notion belonged to the old guard and was profoundly wrong.
"My work at Bell Labs was very rewarding." McIlroy said. "I did system programming and also many other eclectic things along the way. My job often required me to act as a buffer between researchers and higher management and ensure that the researchers had the space and tools to do their work. Plus, it gave me the excuse to see what they were doing, which was invariably fascinating."
One of those "eclectic things" not related to his regular job was exploring map projections, an interest that began in the 1970s inspired by his "childhood dream of becoming a cartographer." In 1983, he began creating annual holiday cards using graphic compilations of various map projections.
After retiring from Bell Labs in 1997, McIlroy and his wife, Barbara - whom he met at Bell Labs - moved to Hanover, New Hampshire, home of Dartmouth College. "Our son attended Dartmouth, and fortunately, we came to know and love the place," explains McIlroy.
The Dartmouth computer science department offered McIlroy a position as an adjunct professor which he still holds. Although retired, he is still able to do what he loves: teaching, participating in thesis committees and having the opportunity to "look in on all kinds of interesting, different things," such as whether or not BingChat can do math.
Advice for students
According to McIlroy, a positive change in the Cornell student experience since the 1950s has been the opportunity students now have to do original lab research and work on project teams. "There weren't annual racing car contests, robotic contests or those sorts of things in those days. We also did not do research where you didn't know what the outcome was. In our fifth year of engineering physics, we did a senior lab project, but that just consisted of dusting off some 50-year-old equipment and running a well-known ancient experiment. You did learn how to make obsolete equipment work, but you didn't really learn anything about research. So both of these things have changed in the interim, and definitely for the better."
McIlroy offered this piece of advice that is even more relevant today than it was when he was a student: Take classes outside of your department.
"Spread your wings wide. I took courses in astronomy, philosophy, Russian history, history of science, literature and numerical analysis," he said. "Later in life I often found that something I had learned in one of these extracurricular courses gave me the answer to questions asked of me."
Looking back on his career, McIlroy said he feels lucky to have participated in the early days of computing and to have helped it grow a billionfold since his time at Cornell.
"I marvel at the 70-year evolution of hardware that has made computers one thousand times as fast as Whirlwind with a million times as much memory - computers that we can now carry around in our pockets," he said. And, because of his fascination with computer science, his vision of what computers could be, and his programming skill, McIlroy has been an essential part of this transition.