Rick Rashid shares the birth of Mach/Unix
My first USENIX conference was also the coming out event for Mach within the Unix community. It was summer of 1986 in Atlanta and the paper I presented was Mach: A New Kernel Foundation for Unix Development. One of the decisions that I and my graduate students at CMU made early in the development of Mach was to layer Unix on top of it so we could make our OS research accessible to the large community of Unix users. Submitting a paper on our system's performance and features to the USENIX community was an important first step toward that goal.
Unix and its various versions have changed so much over the years, it is important to remember that, back in 1986, concepts that are accepted today were quite controversial then. Unix on Mach broke ground in a number of areas including machine independent-virtual memory management and support for large-scale multiprocessors including Uniform Memory Access (UMA) architectures, Non-Uniform Memory Access (NUMA) architectures, and No Remote Memory Access (NORMA) architectures.
Probably the most controversial feature of Mach was its support for copy-on-write virtual memory management and the integration of that feature both with Mach's inter-process communication and Unix's fork mechanism. As luck, or fate, would have it, the USENIX talk that preceded mine specifically discussed the idea of including copy-on-write in Unix and concluded that it could not be done cost effectively. This lead-in gave me a chance to look like a magician pulling a rabbit out of my hat when I stepped up on stage and showed that, not only could copy-on-write be done cost effectively, but that we, in fact, had done it. That USENIX paper and talk was a turning point both for our system efforts at CMU, at the time, and for me personally. For much of the rest of the conference, people approached me to talk about Mach and its impact on their thinking. Not long later, Steve Jobs and Bud Tribble came to visit me at Carnegie Mellon to talk about using our work on Mach as the basis for NeXTStep. Later, Mach became the basis for OSF/1, Digital Unix, and a number of other commercial Unix versions, and it became the first 64-bit Unix implementation.
Gordon Bell recommends Unix as a standard for compatibility:
"I'm a standards advocate. [I believe that] you either make the standard or follow it. If you fail to make the standard, you get to do it twice."
"When we designed VAX, Ken Thompson and Dennis Ritchie were the only outside reviewers of the architecture. I was on the Posix board when we put it forward as a standard, working with IEEE. At NSF, when CISE was started in 1986, I pushed our vendors at the supercomputer centers to have all the supercomputers adopt Unix as a way of getting compatibility among all levels of computing including mini-supers etc."
Sign up for CIO Asia eNewsletters.