Kerner Structuring of Object-Oriented Operating Systems: The Apertos Approach

This paper addresses the issues faced when constructing an operating system and its kernel with object-oriented technology. We first propose object/metaobject separation, a means of constructing an object-oriented operating system and its kernel. This method divides the implementing system facilities and applications into two types: objects and metaobjects. This paper presents the concept of object/metaobject separation and discusses why object/metaobject separation is required in terms of limitations in the micro-kernel and object-oriented technologies. We also discuss an example of using object/metaobject separation as implemented in Apertos. This paper then proposes mechanisms which efficiently implement object/metaobject separation. These are characterized by meta-level context management, and are implemented in the Apertos operating system. Meta-level context management is designed to reduce the overhead of control transfer between an object and its metaspace. Here, metaobjects reflectors, MetaCore, Context, and Activity are introduced to represent the metahierarchy of an object's execution. Finally, we present the evaluation results of the Apertos implementation, and discuss the relationship with previous work.

[1]  Eugene H. Spafford,et al.  Kernel structures for a distributed operating system , 1986 .

[2]  Yasuhiko Yokote,et al.  The Apertos reflective operating system: the concept and its implementation , 1992, OOPSLA.

[3]  Evangelos P. Markatos,et al.  First-class user-level threads , 1991, SOSP '91.

[4]  Brian N. Bershad,et al.  Scheduler activations: effective kernel support for the user-level management of parallelism , 1991, TOCS.

[5]  Mario Tokoro,et al.  Reflective object management in the Muse operating system , 1991, Proceedings 1991 International Workshop on Object Orientation in Operating Systems.

[6]  Fumio Teraoka,et al.  The muse object architecture: a new operating system structuring concept , 1991, OPSR.

[7]  Roy H. Campbell,et al.  Choices, frameworks and refinement , 1991, Proceedings 1991 International Workshop on Object Orientation in Operating Systems.

[8]  Claude Kaiser,et al.  CHORUS Distributed Operating System , 1988, Comput. Syst..

[9]  Yasuhiko Yokote,et al.  The Apertos reflective operating system: the concept and its implementation , 1992, OOPSLA '92.

[10]  Rodney A. Brooks,et al.  A Robust Layered Control Syste For A Mobile Robot , 2022 .

[11]  Fumio Teraoka,et al.  A Reflective Architecture for an Object-Oriented Distributed Operating System , 1989, ECOOP.

[12]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[13]  Mario Tokoro,et al.  Object-oriented concurrent programming , 1987 .

[14]  David R. Cheriton,et al.  The V distributed system , 1988, CACM.

[15]  Robbert van Renesse,et al.  Experiences with the Amoeba distributed operating system , 1990, CACM.

[16]  Gerry Kane,et al.  MIPS RISC Architecture , 1987 .

[17]  Larry L. Peterson,et al.  Beyond micro-kernel design: decoupling modularity and protection in Lipto , 1992, [1992] Proceedings of the 12th International Conference on Distributed Computing Systems.

[18]  William A. Wulf,et al.  Policy/mechanism separation in Hydra , 1975, SOSP.

[19]  Hideyuki Tokuda,et al.  Real-Time Mach: Towards a Predictable Real-Time System , 1990, USENIX MACH Symposium.

[20]  Herbert Schorr,et al.  Proceedings of the fourth ACM symposium on Operating system principles , 1973 .