Abstract

Traditional operating systems typically provide a number of flat, non-object oriented interfaces through which system services are provided to applications. Typically such services are provided by large, monolithic implementations, with no provision for deriving related implementations through inheritance or other means. Nonetheless, 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 application specific implementations of standard services to both building and using otherwise fixed, flat interfaces which for one reason or another cannot be changed. The paper presents this paradigm and some of the benefits derived from it, citing several real systems as examples.