From RIG to Accent to Mach: the evolution of a network operating system

This paper describes experiences gained during the design, implementation and use of the CMU Accent Network Operating System, its. predecessor, the University of Rochester RIG system and its successor CMU’s Mach multiprocessor operating system. It outlines the major design decisions on which the Accent kernel was based, how those decisions evolved from the RIG experiences and how?hey had to be modified to properly handle general purpose multiprocessors in Mach. Also discussed are some of the major issues in the implementation of message-based systems, the usage patterns observed with Accent over a three year period of extensive use at CMU and a timing analysis of various Accent functions. 1. Background Mach is a multiprocessor operating system kernel currently under development at Carnegie-Mellon University. In addition to binary compatibility with Berkeley’s current UNIX 4.3 bsd release, Mach provides a number of new facilities not available in 4.3, including: l Support for tightly coupled and loosely coupled general purpose multiprocessors. . An internal symbolic kernel debugger. l Support for transparent remote file -access between autonomous systems. l Support for large, sparse virtual address spaces, copy-on-write virtual copy operations, and rpemory mapped files. l Provisions for user-provided memory objects and pagers. l Multiple threads of control within a single address space. l A capability-based interprocess communication facility-integrated with virtual memory management to allowrtransfer of large amounts of data (up to the size of a process address space) via copy-on-write techniques. l Transparent network interprocess communication with preservation of capability protection across network boundaries. As of May 1986, Mach runs on most uniprocessor VAX architecture machines: VAX 11/750, 111780, 111785, 8200, 8600, 8650, MicroVAX I, and MicroVAX II. Mach also runs on two multiprocessor VAX machines, the four (1 l/780 or 111785) processor VAX 1 l/784 with 8 MB of shared memory the VAX 8300 (with up to 4 processors). Mach has already been ported to the IBM RT/PC and work has begun on ports to the uniprocessor SUN 3 and multiprocessor Encore MultiMax. The current version of the system, Mach-l, includes all of the features listed above and is in production use by CMU researchers on a number of projects including a multiprocessor speech recognition system called Agora [5] and a project to build parallel production systems. Mach is the logical successor to CMU’s Accent [16,17] kernel .. an operating system designed to support a large network of uniprocessor scientific personal computers. The design and implementation of Accent was in turn based on experiences gained during the development of the University of Rochester’s RIG system [3,14], a message-based network access machine. Both RIG and Accent have seen considerable use over the years. RIG provided a variety of functions including terminal support and remote file access within the Rochester environment until early this year when the last RIG machine was decommissioned. Accent continues in use at CMU as the basic operating system for a network of 150 PERQ workstations and has seen commercial use in printing and publishing workstations as well as engineering design systems. As a third generation network operating system Mach, benefits from the lessons learned in over ten years of design, implementation and use of RIG and Accent. This paper summarizes the lessons of those systems and their impact on the design and implementation of Mach. 2. The Evolution of Accent from RIG Implementation of RIG began in 1975 on an early version of the Data General Eclipse mini-computer. The first usable version of the system came on-line in the fall of 1976. Eventually the Rochester network included several RIG Eclipse nodes as network servers and a number of Xerox Altos acting as RIG client hosts. RIG provided clients network file services, ARPANET access, printing services and a variety of other functions. Active development continued well into the 1980’s but obsolescence of its Data General Eclipse and Xerox Alto hardware base eventually dictated its demise in the Spring of 1986.