Object-Oriented Device Driver Programming


Jun-ichiro Itoh and Mario Tokoro


JSSST 10th Workshop on Object-Oriented Computing (WOOC'94) Handout


Operating systems should be made flexible from their low-level system structures, to enable them to adapt to dynamic changes of the outer world. This paper proposes a methodology for making device drivers completely re-configurable, by introducing object-oriented reflective programming into the low-level system structures of operating systems. We introduce concurrent objects and continuations as a basic framework for low-level system object programming. Under our framework, it is possible to write device driver code without managing the interrupt masks, and to eliminate the burden of synchronization codes from low-level system objects. We discuss the important design issues that are needed to introduce object-oriented reflective programming into the low-level structures of operating systems, where critical timing constraints must be maintained. Finally, we present the implementation of our methodology on our Apertos operating system and demonstrate its efficiency through our preliminary evaluation.