Multivariant ELF Executables for Dynamic Variability via Address-Space Views

In the ATLAS project, we explore the possibilities of address-space views which are synchronized variants of a process's address space that only differ in explicitly specified areas. Each thread can switch between the process's address-space views, thereby allowing context-based variation.

Address-space views can be used to facilitate run-time alterations of multi-threaded programs without the need of stopping the threads before modification. The approach was already successfully used for applying run-time software updates in various multi-threaded server applications. Besides run-time updates, this approach is also suitable for dynamic variability where a program is tailored during the run-time, based on previously known variants.

The goal of this thesis is to design and implement an extension for the Executable and Linking Format (ELF) which allows embedding blueprints for address-space views that are based on pre-generated variants. The instantiation of address-space views should take place during loading or at the runtime on the basis of the embedded blueprints. The linker and loader are to be extended so that extended binaries can be loaded in a system with the ATLAS address-space-view implementation in Linux.

The ELF extension is to be evaluated systematically using synthetic test programs. In addition, the correct functioning of the implementation is to be shown by its use in a multi-threaded real-world application.

OSDI Conference A*
From Global to Local Quiescence: Wait-Free Code Patching of Multi-Threaded Processes
Florian Rommel, Christian Dietrich, Daniel Friesel, Marcel Köppen, Christoph Borchert, Michael Müller, Olaf Spinczyk, Daniel Lohmann14th Symposium on Operating System Design and Implementation (OSDI '20)2020.
PDF Details Video [BibTex]