Published September 28, 2023 | Version v1
Software Open

Loupe: Driving the Development of OS Compatibility Layers

  • 1. The University of Manchester
  • 2. University of Liège
  • 3. University Politehnica of Bucharest
  • 4. Unikraft.io

Description

This artifact contains the source code of Loupe, presented at ASPLOS'24 ("Loupe: Driving the Development of OS Compatibility Layers"), the proof-of concept of our OS feature analysis method, along with the OS feature usage data generated for the paper. The goal of this artifact is to allow readers to understand and reuse Loupe in their experimental OS development workflows

 

Abstract of the paper:

Supporting mainstream applications is fundamental for a new OS to have impact. It is generally achieved by developing a layer of compatibility allowing applications developed for a mainstream OS like Linux to run unmodified on the new OS. Building such a layer, as we show, results in large engineering inefficiencies due to the lack of efficient methods to precisely measure the OS features required by a set of applications.


  We propose Loupe, a novel method based on dynamic analysis that determines the OS features that need to be implemented in a prototype OS to bring support for a target set of applications and workloads. Loupe guides and boosts OS developers as they build compatibility layers, prioritizing which features to implement in order to quickly support many applications as early as possible. We apply our methodology to 100+ applications and several OSes currently under development, demonstrating high engineering effort savings vs. existing approaches: for example, for the 62 applications supported by the OSv kernel, we show that using Loupe, would have required implementing only 37 system calls vs. 92 for the non-systematic process followed by OSv developers.


  We study our measurements and extract novel key insights. Overall, we show that the burden of building compatibility layers is significantly less than what previous works suggest: in some cases, only as few as 20% of system calls reported by static analysis, and 50% of those reported by naive dynamic analysis need an implementation for an application to successfully run standard benchmarks.

Notes

Also available on GitHub: https://github.com/unikraft/loupe

Files

Files (1.0 MB)

Name Size Download all
md5:ad75ed0397ff891723e068cc50deee2a
1.0 MB Download

Additional details

Related works

Is described by
Conference paper: 10.1145/3617232.3624861 (DOI)

Funding

European Commission
UNICORE – A Common Code Base and Toolkit for Deployment of Applications to Secure and Reliable Virtual Execution Environments 825377
UK Research and Innovation
SCorCH : Secure Code for Capability Hardware EP/V000225/1
European Commission
ACCORDION – Adaptive edge/cloud compute and network continuum over a heterogeneous sparse edge infrastructure to support nextgen applications 871793
UK Research and Innovation
FlexCap: Exploring Hardware Capabilities in Unikernels and Flexible Isolation OSes EP/X015610/1
UK Research and Innovation
UniFaaS: A Unikernel-Based Serverless Operating System EP/V012134/1
European Commission
CORNET – Provably Correct Networks 758815