The Kylinx Project


Overview

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.

Downloads

================================================

Version 1: Dynamic mapping, online library update

Modified:

tools/Rules.mk

tools/libxc/Makefile

tools/libxc/xc_dom_core.c

tools/libxl/Makefile

tools/libxl/xl.c

tools/libxl/xl.h

tools/libxl/xl_cmdtable.c

tools/libxl/libxl_dom.c

tools/libxl/xl_cmdimpl.c

extras/mini-os/test.c

extras/mini-os/Makefile

extras/mini-os/mini-os.mk

extras/mini-os/main.c

stubdom/Makfile

stubdom/c/minios.cfg

New:

tools/libxc/dev_xc_dom_elfdyn.c

tools/libxc/dev_xc_dom_elfdyn.h

newlib-16.patch

newlib-18.patch

 

================================================

Version 2: fork, inter-appliance communication, lwct and fimfs

Modified:

xen-4.2.1/tools/libxl/xl.c

xen-4.2.1/tools/libxl/xl_cmdimpl.c

xen-4.2.1/stubdom/main.c

xen-4.2.1/extras/minios/include/lwipopts.h

xen-4.2.1/stubdom/lwip-x86_64/src/include/lwip/opt.h

xen-4.2.1/extras/mini-os/lib/sys.c

xen-4.2.1/stubdom/c/Makefile

xen-4.2.1/stubdom/Makefile

xen-4.2.1/tools/libxl/xl.c

xen-4.2.1/tools/libxl/xl_cmdimpl.c

xen-4.2.1/stubdom/main.c

xen-4.2.1/stubdom/Makefile

xen-4.2.1/stubdom/c/Makefile

New:

xen-4.2.1/stubdom/thread.h

xen-4.2.1/stubdom/thread.c

xen-4.2.1/stubdom/fs.c

Funding

 

Contact us

We welcome feedback, suggestions, patches, and so forth. Send them to ...


Last modified: 10 May, 2016 /