Commodity clouds provide a public platform where tenants run their specific services on dedicated virtual machines (VMs) that are referred to as VM appliances. The library operating system (LibOS) architecture is a promising approach for VM appliances to achieve better performance and security, which refactors a traditional OS into libraries and builds the application binary and necessary libraries into a single bootable image that can run directly on a standard VM hypervisor. However, previous VM-based library OSs statically and monolithically seal the appliance at compile time, sacrificing flexibility in the management of VM appliances. E.g., the entire appliance image has to be recompiled and re-deployed to update only one of its libraries.
Inspired by the shared libraries of UNIX processes, we present a dynamic LibOS architecture for VM appliances that supports to dynamically map the libraries onto the appliance' s virtual address space. We have implemented a prototype called KylinX by modifying MiniOS on Xen 4.2.1. KylinX not only offers remarkable reduction in image sizes and memory footprints, but also provides significant flexibility in managing VM appliances, e.g., supporting online library update, and running conventional multi-process applications in multiple appliances.
We are concentrating on releasing the integrated full implementation of KylinX, with all the key components already available as open-source.
We welcome feedback, suggestions, patches, and so forth. Send them to ...
Last modified: 10 May, 2016 /