Module Management As A System Service Gilad Bracha, Charles F. Clark, Gary Lindstrom and Douglas B. Orr Abstract A new approach to program modularity is presented, based on three key ideas: (i) elevating module management to a pervasive system service, (ii) casting the notion of module as an abstract data type, and (iii) representing modules as objects for programmed manipulation and retention. The result is an innovative system architecture for program construction, with flexible capabilities for name space management, inter-process sharing, and incremental loading and re-linking. The necessary reflective powers are pro- vided by a permanently running system process exporting a wide repertory of module manipulation and delivery services. This ap- proach draws on insights from both programming languages and sys- tem architecture. From programming languages, we have taken in- spiration from the power of inheritance in object-oriented pro- gramming languages, and the importance of types as a basis for secure, evolvable module interfaces. From system architecture, we have profited from the server process approach to system or- ganization, and respect for the crucial role of module binding as a system flexibility governor. A case study applying this archi- tecture to C++ is presented, as well as a brief assessment of its role in a more comprehensive architecture for persistent object management.