When OO Meets System Software: Rethinking the Design of VMMs
Haibo Chen,Pengcheng Liu,Rong Chen,Binyu Zang
2007-01-01
Abstract:System virtualization has increasingly become a disruptive force in system research and an enabler for many commercial uses. While current VMMs partly evolve from traditional operating systems, they also inherit some problems associated with them. First, many of them are designed and optimized for small systems, yielding low scalability for large systems (many-core or large scale SMP systems) due to global policies, global data structures and large locks. Second, they are built in a monolithic and structural manner, resulting in wretched customizability and extensibility. Finally, almost all of them are built using C programming language and the code size is still growing, making it di-cult to maintain the code and verify their correctness. In this paper, we argue that advances in languages and compilers, as well as object-oriented and aspect- oriented design, could be helpful to address the scalability, customizability, extensibility, maintainability and reliability issues of modern virtual machine monitors (VMMs). The marriage of language innovations and VMMs results in an object-oriented VMM (using Sing#, an extension of C#), namely OVM, our ongoing research VMM, built with the above mentioned features in mind. We argue that applying language innovations to a VMM is more practical and cost-efiective than to an operating system, due to the concern on code size and backward compatibility. We present the design decisions and initial design of OVM to show how modern programming languages and design are helpful.