Chameleon, a dynamically extensible and configurable object-oriented operating system




Bryce, Robert William

Journal Title

Journal ISSN

Volume Title



Currently, new algorithms are being incorporated into operating systems to deal with a host of new requirements from multimedia applications. These new algorithms deal with soft real-time scheduling, different memory models, and changes to buffer caching and network protocols. However, old design techniques such as structured programming, global variables and implied dependencies are impeding this development and proof of correctness. Many current operating system research groups are developing extensible systems, where new code can be placed into the system and even kernel layers. A primary difficulty in these efforts is how to avoid adversely affecting reliability and traditional measures of performance. Techniques from the object orientation paradigm are being incorporated to better manage these issues because they have shown promise in improving modularity, information hiding, and reusability. In some cases, these techniques are even being used to build fresh operating systems from the ground up with the goal of easier extensibility and adaptability in the future. The Apertos operating system introduced and implemented many concepts originally alien to operating system research but exhibited unacceptable performance for multimedia applications. This dissertation introduces Chameleon, a new object-oriented operating system that shares the same philosophical approach as Apertos, leveraging meta designs and concepts to deal with the diverse requirements of today’s and future multimedia applications. However, Chameleon takes a new and original approach to design and implementation to achieve a high degree of adaptability and retain the performance of a micro-kemel. In Chameleon, the object-oriented paradigm serves as the basis for newly introduced concepts such as AbstractCPU, brokers, and the broker interface hierarchy. Together, AbstractCPU, brokers, and related software engineering techniques such as dynamic class binding serve as a basis for all system management, communication, and for an event-driven model where new events can be defined and dynamically introduced to a running system. The meta design clearly defines a hierarchy of “operating environments” that can be optimized for a particular type of application. As such, hierarchical resource management plays an important role in Chameleon. A minimal set of primitives that is appropriate for hierarchical memory management is defined atop a single address space memory model. Similarly, hierarchical CPU scheduling is employed, as different applications will exhibit different scheduling requirements. Different schedulers may then co-exist on the same CPU. Communication in a hierarchically structured operating system is also detailed. The implementation of the Chameleon structuring concept is presented and analyzed. Standard performance measures are used to compare Chameleon to related research and commercial operating systems. Costs of individual operations are also presented to outline the overheads and gains associated with the Chameleon model.



Chameleon (Computer operating system)