Shadow Kernels: A General Mechanism For Kernel Specialization in Existing Operating Systems

Existing operating systems share a common kernel text section amongst all processes. It is not possible to perform kernel specialization or tuning such that different applications execute text optimized for their kernel use despite the benefits of kernel specialization for performance guided optimization, exokernels, kernel fastpaths, and cheaper hardware access. Current specialization primitives involve system wide changes to kernel text, which can have adverse effects on other processes sharing the kernel due to the global side-effects. We present shadow kernels: a primitive that allows multiple kernel text sections to coexist in a contemporary operating system. By remapping kernel virtual memory on a context-switch, or for individual system calls, we specialize the kernel on a fine-grained basis. Our implementation of shadow kernels uses the Xen hypervisor so can be applied to any operating system that runs on Xen.

[1]  Adrian Schüpbach,et al.  Embracing diversity in the Barrelfish manycore operating system , 2008 .

[2]  Úlfar Erlingsson,et al.  Fay: extensible distributed tracing from kernels to clusters , 2011, SOSP '11.

[3]  Anil Kurmus,et al.  A Tale of Two Kernels: Towards Ending Kernel Hardening Wars with Split Kernel , 2014, CCS.

[4]  Thomas E. Anderson,et al.  Arrakis: A Case for the End of the Empire , 2013, HotOS.

[5]  Calton Pu,et al.  The Synthesis Kernel , 1988, Comput. Syst..

[6]  M. Frans Kaashoek,et al.  Ksplice: automatic rebootless kernel updates , 2009, EuroSys '09.

[7]  Michael M. Swift,et al.  The Best of Both Worlds with On-Demand Virtualization , 2011, HotOS.

[8]  Chandra Krintz,et al.  Linux kernel special-ization for scientific application performance , 2005 .

[9]  Timothy Roscoe,et al.  Arrakis , 2014, OSDI.

[10]  Yao Guo,et al.  Experiences in profile-guided operating system kernel optimization , 2014, APSys.

[11]  Adrian Schüpbach,et al.  The multikernel: a new OS architecture for scalable multicore systems , 2009, SOSP '09.

[12]  Calton Pu,et al.  Automatic specialization of protocol stacks in operating system kernels , 2004, 29th Annual IEEE International Conference on Local Computer Networks.

[13]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[14]  Peter Druschel,et al.  Resource containers: a new facility for resource management in server systems , 1999, OSDI '99.

[15]  Jochen Liedtke,et al.  On micro-kernel construction , 1995, SOSP.

[16]  Richard Mortier,et al.  Using Magpie for Request Extraction and Workload Modelling , 2004, OSDI.

[17]  David Lie,et al.  Splitting interfaces: making trust between applications and operating systems configurable , 2006, OSDI '06.

[18]  Robert J. Fowler,et al.  Using Performance Reflection in Systems Software , 2003, HotOS.