This thesis describes an experiment to use object-oriented programming and design techniques to design and implement an operating system. This experiment uses object-oriented techniques to address problems of operating system portability, maintainability, extensibility and efficiency. The thesis also characterizes an object-oriented operating system.
The results of this experiment are presented in two parts. First, after presenting background information and relevant definitions, I characterize an object-oriented operating system. I then proceed to describe the design and implementation of an experimental object-oriented operating system. This presentation maps conventional operating system wisdom into the object-oriented framework supported by the experimental system. In this way, I show that object-oriented techniques can support realistic operating system algorithms and mechanisms, as well as provide software engineering advantages. The presentation of the system stresses ways in which object-oriented techniques support the system's design and implementation.
The experimental system is evaluated in terms of performance, maintainability, portability and extensibility by using examples of how characteristic operating system problems are addressed. I will show that structuring an operating system in an object-oriented fashion and using the capabilities provided by an object-oriented programming language allows the construction of portable, extensible and maintainable operating systems without sacrificing performance. Not only is performance not sacrificed, I will even show how such techniques can often help lead to increased performance over conventionally structured systems.
Cited By
- Wohlrab L Configuration and Adaptation Management for Object-Oriented Operating Systems Proceedings of the Workshops on Object-Oriented Technology, (523-530)
- Schubert F A Reflective Architecture for an Adaptable Object-Oriented Operating System Based on C++ Proceedings of the Workshops on Object-Oriented Technology, (515-522)
- Deubler H and Koestler M (2019). Introducing Object Orientation into Large and Complex Systems, IEEE Transactions on Software Engineering, 20:11, (840-848), Online publication date: 1-Nov-1994.
- Campbell R, Islam N, Raila D and Madany P (1993). Designing and implementing Choices, Communications of the ACM, 36:9, (117-126), Online publication date: 1-Sep-1993.
- Thomas L A generic object-oriented concurrency mechanism for extensibility and reuse of synchronization components Proceedings of the 1992 ACM/SIGAPP symposium on Applied computing: technological challenges of the 1990's, (1091-1097)
Index Terms
- An object-oriented operating system
Recommendations
An Object-Oriented Nano-Kernel for Operating System Hardware Support
IWOOOS '95: Proceedings of the 4th International Workshop on Object-Orientation in Operating SystemsAbstract: The nano-kernel in the /spl mu/Choices operating system provides hardware support for the operating system. The nano-kernel is a single, modular subsystem that encapsulates the hardware and presents an idealized machine architecture to the ...
The design of an object-oriented operating system (abstract): a case study of choices
OOPSLA '92: Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum)This tutorial describes the object-oriented design of a complete operating system, written to be object-oriented, with a user and application interface that is object-oriented. The main objective is to illustrate object-oriented design trade-offs by ...
An object-oriented operating system interface
OOPSLA '86: Conference proceedings on Object-oriented programming systems, languages and applicationsThis paper discusses an object-oriented interface from the Smalltalk-80™ programming environment to a Unix-like operating system. This interface imposes an object-oriented paradigm on operating system facilities. We discuss some of the higher order ...