Inheritance in Unlikely Places: Using Objects to Build Derived Implementations of Flat Interfaces

  • Michael B. Jones

Proceedings of the Second International Workshop on Object Orientation in Operating Systems |

Published by Institute of Electrical and Electronics Engineers, Inc.

Traditional operating systems typically provide a number of flat, non-object oriented interfaces through which system services are provided to applications. Two such examples are the UNIX system call interface and X Window System protocol. Typically such services are provided by large, monolithic implementations, through inheritance or other means. Noetheless, it is possible to provide flexible, object oriented views of otherwise flat, non-object oriented interfaces. Furthermore, these views can be used to build new implementations of these same flat interfaces in terms of other ones. This approach can bring the benefits of objects such as enhanced and/or applicaation specific implementations of standard services to both building and using otherwise fixed, flat interfaces which for one reason or another cannot be changed. My recent thesis work has taken this approach; other seemingly unrelated systems also use this paradigm. This paper presents this paradigm and some of the benefits derived from it, citing several real systems as examples.