Mach Shared Objects ONR End of Year Letter '94


Table of Contents:

  1. Principal Investigator.
  2. Productivity Measures.
  3. Summary of Objectives and Approach.
  4. Detailed Summary of Technical Progress.
  5. Transitions and DOD Interactions.
  6. Software and Hardware Prototypes.
  7. List of Publications.
  8. Invited and Contributed Presentations.
  9. Honors, Prizes or Awards Received.
  10. Project personnel promotions obtained.
  11. Project Staff.
  12. Misc Hypermedia URL.
  13. Keywords.


Principal Investigator.


Productivity Measures.


Summary of Objectives and Approach.

  1. Objectives: The commonality of Unix-based open systems has greatly advanced software portability, sharing and interoperability. The MSO project is elevating that commonality through construction of an object manager (OM) layered on modern operating systems. Our OM is based on system server concepts, presenting a standardized interface to C++ and Common Lisp (CL) programs. The MSO approach to persistence emphasizes (i) generality of source language support, (ii) portability and heterogeneity, (iii) data evolution, (iv) distributed implementation and access, and (v) the representation of software components as objects managed through a pervasive system service.

  2. Approach: The MSO OM focuses on efficient management and sharing of modules as computational resources, including system and user libraries, data schemata, class implementations, and persistent objects. This is achieved through OMOS (Object/Meta Object Server), which provides comprehensive module definition, combination and mapping. These capabilities are exploitable in O-O languages through abstractions for object naming, data type management, persistence, modularity, distribution, and shared object mutation control. Compiler and platform heterogeneity are obtained through system-generated objects describing module types. The Alpha_1 CAGD/CAM system constitutes the MSO OM's primary validation vehicle. Alpha_1 is a demanding test case, due to its code size, versatility, and existing hand-crafted methods for persistence and data evolution.


Detailed Summary of Technical Progress.

The MSO project is in its final six months of funding. Architectural design and prototyping of all major software components have been completed. These components include (1) the OM itself, (2) C++ and Common Lisp language embeddings, and (3) the OMOS module manipulation server.

  1. The MSO OM architecture has been finalized, and major components prototyped (see pubs. 3, 11). Two symbolic object referencing interfaces have been constructed: (i) an NFS-based interface providing portability, distribution, and Unix file-like semantics, and (ii) a direct interface providing transaction control over shared object mutation.

  2. Our two language embeddings have been architected and prototyped (C++: pub. 8; CL: pubs. 4, 7, 9). Each thoroughly supports persistence as an orthogonal language extension, i.e. persistence is conferred per-instance on any datatype, through reachability. The C++ system exploits portability and heterogeneity through read-only analysis of source files by a preprocessor. The CL system provides fully general persistence by routing all references through an indirection table.

  3. The logical organization of OMOS is being re-engineered to exploit a general language processor framework (pubs. 5, 6 12), OMOS's manipulation of modules is being extended to provide semantically-sensitive adaptive linking within a newly ARPA-funded operating system (OS) reorganization project ("Fast and Flexible Mach-Based Systems"; pubs. 1, 2, 10).


Transitions and DOD Interactions.

  1. Brian Boesch of ARPA/CSTO visited the project on Nov. 8, 1993, and was briefed on applications of MSO tools to flexible system software modularization.

  2. David Hislop of ARO visited on March 9, 1994, and was briefed on the MSO approach to software component management.

  3. Michael S. Saboe of HQ Army Materiel Command visited on April 14, 1994, and was briefed on implications of MSO technology for legacy software system maintenance and re-engineering.

  4. Edward Thompson, Director of ARPA/SISTO, visited on September 8, 1994, and was briefed on MSO accomplishments and completion plans under current funding.


Software and Hardware Prototypes.

  1. Goofie is a preprocessor for C++ class declarations which generates dossiers describing each class seen. These dossiers can be linked into applications to provide polymorphic object manipulation capabilities. The current version allows storing and retrieving objects from a persistent object store. Future enhancements will include a run-time type information system (RTTI), and remote procedure call (RPC).

  2. An alternative approach to C++ dossier generation has been prototyped through modification of the GNU C++ compiler. In contrast to the preprocessor based technique just described, this approach requires less user source code compliance. In addition, specialized run-time support can be introduced, such as maintenance of a heap map permitting object boundary resolution of addresses internal to an object, and dynamic loading of objects of previously unknown subclasses ("dynamic inheritance hierarchy expansion").

  3. OMOS - An Object/Meta-Object Server is an active object server which manages executable programs and their components as a set of composable objects. Besides replacing the traditional services of a linker, OMOS is able to provide dynamic object loading, shared libraries, program analysis, and custom application construction.

  4. UCL+P is a persistent superset of Common Lisp which maintains Lisp semantics across the storage/retrieval of values. Persistence features include concurrent atomic transactions, transparent demand loading and storing of values. The implementation of UCL+P relies on extensive low-level modifications to the Utah Common Lisp compiler and run-time system, the latter being modified to route all object references through a relocation vector.


List of Publications.

  1. Douglas B. Orr, Robert Mecklenburg, Peter J. Hoogenboom, Jay Lepreau, "Dynamic Program Monitoring and Transformation Using the OMOS Object Server", In "The Interaction of Compilation Technology and Computer Architecture, Kluwer Academic Publishers, Lilja and Bird, editors

  2. Bryan Ford, Jay Lepreau, "Microkernels Should Support Passive Objects", Proc. International Workshop on Object Oriented Operating Systems, IEEE Computer Society, Asheville, NC, December 9--10, 1993, Luis-Felipe Cabrera and Norman Hutchinson, editors, pp. 226-229

  3. Douglas B. Orr, Robert Mecklenburg, Ravindra Kuramkote, "Strange Bedfellows: Issues In Object Naming Under Unix", Proc. International Workshop on Object Oriented Operating Systems, IEEE Computer Society, Asheville, NC, December 9--10, 1993, Luis-Felipe Cabrera and Norman Hutchinson, editors

  4. James H. Jacobs, Mark R. Swanson, Robert R. Kessler, "Persistence is Hard, Then You Die! or Compiler and Runtime Support for a Persistent Common Lisp", University of Utah Computer Science Department Technical Report UUCS-94-003, January 1994

  5. Guruduth Banavar, Gary Lindstrom, "The Design of Meta-Architectures For Object-Oriented Languages", Proc. Third Golden West International Conference on Intelligent Systems, Las Vegas, NV, June 1994

  6. Guruduth Banavar, Gary Lindstrom, Douglas Orr, "Type-safe Composition of Object Modules", In "Computer Systems and Education: In honour of Prof. V. Rajaraman," Tata McGraw Hill Publishing Company, Limited, Bangalore India, N. Balakrishnan, T. Radhakrishnan, D. Sampath and S. Sundaram, editors, pp. 188-200, June 22-25, 1994

  7. James H. Jacobs, Mark R. Swanson. "Syntax and Semantics of a Persistent Common Lisp", Proc. of the 1994 ACM Conference on Lisp and Functional Programming, Orlando, FL, June 1994

  8. Robert Mecklenburg, Charles Clark, Gary Lindstrom, Benny Yih, "A Dossier Driven Persistent Objects Facility", Proc. of the USENIX Association C++ Conference, April 1994, Cambridge, MA, pp. 265-281

  9. James H. Jacobs, "UCL+P --- A Persistent Common Lisp", PhD dissertation, University of Utah Computer Science Department, August 1994

  10. John B. Carter, Bryan Ford, Mike Hibler, Ravindra Kuramkote, Jeffrey Law, Jay Lepreau, Douglas B. Orr, Leigh Stoller, Mark R. Swanson, "FLEX: A Tool for Building Efficient and Flexible Systems", Proc. Fourth Workshop on Workstation Operating Systems, IEEE Computer Society, Napa, CA, October 1993

  11. Sudheer Thakur, "An Empirical Study of Persistent Object Stores", Master of Science thesis, University of Utah Computer Science Department, December 1993

  12. Guruduth Banavar, Gary Lindstrom, "Modular Language Processors As Framework Completions" University of Utah Computer Science Department Technical Report UUCS-93-026, October 1993


Invited and Contributed Presentations.

  1. Gary Lindstrom gave a presentation entitled "The Architecture of a Persistent C++ System" at the ARPA Persistent Object Bases Program workshop, Madison WI, May 23, 1994

  2. Gary Lindstrom presented the position paper "Module Management As A System Service", at Session IV-B Systems and Applications of the OOPSLA '93 Workshop on Object-Oriented Reflection and Metalevel Architectures, October 1, 1993 (reviewed in OOPSLA '93 Addendum to the Proceedings, p. 125).


Honors, Prizes or Awards Received.

  1. Gary Lindstrom served on the program committee of the 1994 International Conference on Computer Systems and Education (in honor of V. Rajaraman)

  2. Gary Lindstrom served as an External Doctoral Thesis Examiner for the McGill University Faculty of Graduate Studies and Research

  3. Robert Kessler continued service as Co-Editor-In-Chief of Lisp and Symbolic Computation Journal

  4. Robert Kessler served as General Chair of the 1994 Lisp and Functional Programming Conference

  5. Jay Lepreau is serving as Program Chair for the Operating System Design and Implementation (OSDI) conference, to be held November 1994 in Monterey, CA

  6. Charles F. Clark completed his IBM Graduate Fellowship, and defended his PhD dissertation entitled The Dynamic Expansion of Class Hierarchy on August 5, 1994

  7. James H. Jacobs defended his PhD dissertation entitled UCL+P: A Persistent Common Lisp on May 20, 1994


Project Personnel Promotions Obtained.


Project Staff.

  1. Principal Investigators: Gary Lindstrom, Robert R. Kessler and Richard Riesenfeld

  2. Faculty Participants Robert Mecklenburg and Mark R. Swanson

  3. Research Staff: Jeff Law, Jay Lepreau and Leigh Stoller

  4. Graduate Research Assistants: Guruduth Banavar, Charles Clark, Terry Critchlow, James H. Jacobs, Ravindra Kuramkote, Douglas B. Orr and Benny Yih

  5. Project Secretary: Loretta Cruse


Misc Hypermedia.

  1. Mach Shared Objects home page

  2. A complete list of MSO publications

  3. The quad chart supporting this report


Keywords.

  1. Persistence
  2. Object management
  3. Class descriptor objects ("dossiers")
  4. Modules as objects
  5. Portable shared libraries