Integrating Unikernel Optimizations in a General Purpose OS
Ali Raza (1), Thomas Unger (1), Matthew Boyd (1), Eric Munson (1), Parul Sohal (1), Ulrich Drepper (2), Richard Jones (2), Daniel Bristot de Oliveira (2), Larry Woodman (2), Renato Mancuso (1), Jonathan Appavoo (1), Orran Krieger (1) ((1) Boston University, (2) Red Hat)
We explore if unikernel techniques can be integrated into a general-purpose OS while preserving its battle-tested code, development community, and ecosystem of tools, applications, and hardware support. Our prototype demonstrates both a path to integrate unikernel techniques in Linux and that such techniques can result in significant performance advantages. With a re-compilation and link to our modified kernel, applications show modest performance gains. Expert developers can optimize the application to call internal kernel functionality and optimize across the application/kernel boundary for more significant gains. While only one process can be optimized, standard scripts can be used to launch it, and other processes can run alongside it, enabling the use of standard user-level tools (prof, bash,…) and support for both virtual and physical servers. The changes to the Linux kernel are modest (1250 LOC) and largely part of a configuration build target.