一句话:提出 Loupe 动态分析方法,精确找出应用所需的 OS 特性与系统调用,指导兼容层按优先级实现。
新操作系统若想产生影响,必须能运行主流应用;常见做法是构建兼容层,使 Linux 等应用无需修改即可运行。然而,由于缺乏精确测量一组应用究竟需要哪些 OS 特性的方法,兼容层开发存在大量工程低效。本文提出 Loupe,一种基于动态分析的方法,用于确定原型 OS 为支持目标应用与工作负载所需实现的 OS 特性,并据此排序实现优先级,从而尽早支持更多应用。作者在 100 多个应用和多个正在开发的 OS 上应用该方法,并与现有流程比较:例如 OSv 内核已支持的 62 个应用,若使用 Loupe 预计只需实现 37 个系统调用,而非其开发者非系统化流程所需的 92 个。研究还给出新洞见:构建兼容层的负担显著低于此前工作所认为的程度,有时仅需实现静态分析报告系统调用的 20%,或朴素动态分析报告的 50%,即可让应用通过标准基准测试。
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.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@inproceedings{LefeuvreGBDSRHO24,
title = {Loupe: Driving the Development of OS Compatibility Layers},
author = {Hugo Lefeuvre and Gaulthier Gain and Vlad-Andrei Bădoiu and Daniel Dinca and Vlad-Radu Schiller and Costin Raiciu and Felipe Huici and Pierre Olivier},
booktitle = {ASPLOS},
year = {2024},
doi = {10.1145/3617232.3624861}
}