A binary-compatible unikernel

Pierre Olivier, Daniel Chiba, Stefan Lankes, Changwoo Min, Binoy Ravindran

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Unikernels are minimal single-purpose virtual machines. They are highly popular in the research domain due to the benefits they provide. A barrier to their widespread adoption is the difficulty/impossibility to port existing applications to current unikernels. HermiTux is the first unikernel providing binary-compatibility with Linux applications. It is composed of a hypervisor and lightweight kernel layer emulating OS interfaces at load- and runtime in accordance with the Linux ABI. HermiTux relieves application developers from the burden of porting software, while providing unikernel benefits such as security through hardware-assisted virtualized isolation, swift boot time, and low disk/memory footprint. Fast system calls and kernel modularity are enabled through binary rewriting and analysis techniques, as well as shared library substitution. Compared to other unikernels, HermiTux boots faster and has a lower memory/disk footprint. We demonstrate that over a range of native C/C++/Fortran/Python Linux applications, HermiTux performs similarly to Linux in most cases: its performance overhead averages 3% in memory- and compute-bound scenarios.
Original languageEnglish
Title of host publicationVEE 2019: Proceedings of the 15th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments
PublisherAssociation for Computing Machinery
Pages59-73
ISBN (Print)978-1-4503-6020-3
DOIs
Publication statusPublished - 1 Apr 2019
EventThe 15th ACM SIGPLAN/SIGOPS International Conference - Providence, United States
Duration: 14 Apr 201914 Apr 2019

Conference

ConferenceThe 15th ACM SIGPLAN/SIGOPS International Conference
Country/TerritoryUnited States
CityProvidence
Period14/04/1914/04/19

Fingerprint

Dive into the research topics of 'A binary-compatible unikernel'. Together they form a unique fingerprint.

Cite this