ATLAS: Adaptable Thread-Level Address Spaces (DFG: LO 1719/7-1 and DI 2840/1-1)

ATLAS is a joint project with TUHH (Co-PI: Christian Dietrich).

Traditionally, an OS process contains a single address space with code and data segments that are shared among all of its threads. The fork() system call creates a new address space (and process) that, even though it starts as an exact clone of its ancestor, provides strong isolation between the respective threads by means of copy-on-write.

The core idea of ATLAS is to provide processes with additional address spaces that are, however, kept in sync with their ancestor: Changes to one of them – we call them address-space views – become immediately visible in the others. Views diverge only in explicitly specified areas. As they still belong to the same process, the threads of this process can be migrated individually between views.

Address-space views provide an efficient mean to implement temporary or permanent thread-level variations in the "view of the world", while threads can still interact with each other regarding the shared parts. In the figure, the code segment diverges and provides a thread-specific variation (e.g., an client-specific optimization or restriction of functionality), while the data segment is shared, so that th1 can still transparently interact with th2 and th3. Such variations can be arbitrary small or complex. They can be prepared in the background in a new view and atomically applied to individual threads by migrating them to the new address space.

Implementation

Address-space views are currently implemented as an extension for the Linux Kernel. The source code is available on Github (luhsra/linux-mmview).

Applications

In our OSDI '20 paper, we present a first application of these technique to implement WfPatch, a wait-free dynamic code-patching approch for large multi-threaded server applications.

People

Latest News

2021-12-23 New DFG Grant: Adaptable Thread-Level Address spaces
ATLAS: Adaptable Thread-Level Address Spaces (DFG: LO 1719/7-1 and DI 2840/1-1)
In the ATLAS project, we investigate dynamic specialization and containment by means of thread-level address-space variations.
The German research foundation DFG is supporting our ATLAS project for two years with two positions for doctoral researchers (E13, one at SRA), two positions for student researchers (one at SRA), and some additional lab equippment. ATLAS is cooperation project with the OSG group from Christian Dietrich.
2020-11-05 Waitfree Patching at OSDI '20

Florian Rommel presents our paper From Global to Local Quiescence: Wait-Free Code Patching of Multi-Threaded Processes at OSDI '20 – due to Corona by video.

In the paper, we present WfPatch, a wait-free approach to inject code changes into running multi-threaded programs. Instead of having to stop the world before applying a patch, WfPatch can gradually apply it to each thread individually at a local point of quiescence, while all other threads can make uninterrupted progress.

WfPatch is the first outcome of our novel concept on adaptable thread-level address spaces, which we are investigating in the ATLAS project.

Publications

LCTES Conference B
Thread-Level Attack-Surface Reduction
Florian Rommel, Christian Dietrich, Andreas Ziegler, Illia Ostapyshyn, Daniel LohmannProceedings of the 24th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded SystemsACM Press2023Accepted at LCTES'23, to appear.
Details 10.1145/3589610.3596281 [BibTex]
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]

Theses

Currently Running

Synchronized Thread-Level Address-Space Views for the Dragonfly BSD Kernel

Extending the DragonFly BSD kernel to allow the usage of ATLAS synchronized thread-level address-space views in userspace processes

 
Typ
Bachelorarbeit

 
Status
laufend

 
Supervisors
Florian Rommel
Dominik Töllner
Daniel Lohmann

Finished Theses

Extending DragonFly BSD for Synchronized Thread-Level Address-Space Views

Extending the DragonFly BSD kernel to allow the usage of ATLAS synchronized thread-level address-space views in userspace processes

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Florian Rommel
Daniel Lohmann

Size does matter: Extending the LLVM Linker for Fine-Granular Multivariant ELF Executables

Extend the multivariant ELF approach to allow the building of fine-granular executables.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Dominik Töllner
Florian Rommel
Daniel Lohmann

 
Bearbeiter
Jan Luca Willke (abgegeben: 11. Aug 2022)

What You See Is What I Want: Extending the LLVM Linker for View-Local Data in Multivariant ELFs

Extend the multivariant ELF approach to allow data to be view-local and not shared across multiple views.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Florian Rommel
Dominik Töllner
Daniel Lohmann

 
Bearbeiter
Max Känner (abgegeben: 19. Sep 2022)

Predictive Run-Time Attack-Space Reduction

Extend context-based text elimination by a predictive approach.

 
Typ
Bachelorarbeit

 
Status
abgeschlossen

 
Supervisors
Florian Rommel
Daniel Lohmann

Multivariant ELF Executables for Dynamic Variability via Address-Space Views

Extend the ELF format to support binaries with multiple code variants for the use with ATLAS addess space views [PDF]

 
Typ
Masterarbeit

 
Status
abgeschlossen

 
Supervisors
Florian Rommel
Daniel Lohmann

 
Bearbeiter
Dominik Töllner