Components of a Network Operating System Jed Donnelley Lawrence Livermore Laboratory, Livermore, California, USA Recent advances in hardware interconnection techniques for local networks have highlighted the inadequacies in existing software interconnection technology. Though the idea of using a pure message passing operating system to improve this situation is not a new one, in the environment of a mature high speed local network it is an idea whose time has come. A new timesharing system being developed at the Law- rence Livermore Laboratory is a pure message passing system. In this system, all services that are typically obtained directly by a system call (reading and writing files, terminal I/O, creating and controlling other processes, etc.) are instead obtained by communicating via messages with system service processes (which may be local or remote). The motivation for the development of this new system and some design and implementation features needed for its efficient operation are discussed. Keywords: Network, local network, operating system, network operating system, message, protocol, distributed O * This work has been performed under the auspices of the U.S. Department of Energy by the Lawrence Livermore Laboratory under contract number W-7405-ENG-48. © North-Holland Publishing Company Computer Networks 3 (1979) 389-399 1. Introduction The basic job performed by an operating system is multiplexing the physical resources available on its system (Fig. 1). By a variety of techniques such as time slicing, spooling, paging, reservation, allocation, etc. the operating system transforms the available physical resources into logical resources that can be utilized by the active processes running under it (Fig. 2). The interface between a process running under an operating system and the world outside its memory space is the "system call", a request for service from the operating system. The usual approach taken in operating system design has been to provide distinct system calls to obtain service for each type of avail- able local resource (Fig. 3). If a network becomes available, system calls for network communication are added to the others James E. (Jed) Donnelley received bachelors degrees in Physics and Mathematics (1970) and a masters degree in Mathematics from the Davis campus of the University of Califor- nia. Since 1972 he has been a com- puter scientist at the Lawrence Liver- more Laboratory (LLL). Jed was technical liaison for LLL's ARPA network node from 1973 to 1978 and has participated in research pro- jects at LLL on operating system security, distributed data bases, local networks, and high per- formance computer architectures. Since 1978 he has been primarily working on design and implementation of a net- work operating system. His principal research interests are in distributed computation, cellular data flow computer archi- tectures, and brain modeling. Jed is a member of the ACM and the IEEE Computer Society. Acknowledgements The author wishes to acknowledge the assistance of his colleagues on the NLTSS design and implementation teams: Pete DuBois, Jim Minton, Chuck Athey, Bob CraUe and Dick Watson. Particular thanks go to John Fletcher, who carried the day in some early message system debates, and to Dick Watson, whose continued support in the area of network protocols has had a profound impact on NLTSS. This paper is a revised version of a paper originally pre- sented at the 4th Conference on Local Networks, Minnea- polis, Minnesota, 22-23 October, 1979. The original paper was published in the proceedings of that conference © 1979 IEEE. The permission of the IEEE to utilize the original material is gratefully acknowledged. 389