Teaching Activities of Daniel Lohmann

I give lectures, labs, and seminars around the topic of system software and its development. The following lists all lectures I have hold at LUH since summer term 2017. Look here for a my list of teaching activities before that time.

Sommer 2019

Winter 2018

Sommer 2018

Winter 2017

Summer 2017

Theses

Open Theses

Configurable Depth Analysis: Create a meta analysis to statically analyze a system in different depths

Typ: Masterarbeit
Status: offen
Supervisors: Gerion Entrup, Daniel Lohmann
Project: AHA
Orchestrate different existing static analysis techniques to analyze a real-time system in different depths and show the working with an implementation in ARA.

Running Theses

ARA on Steroids: Fly faster with Profiling and Caching.

 
Typ: Bachelorarbeit
Status: reserviert
Supervisors: Gerion Entrup, Daniel Lohmann
Project: AHA
Make ARA fast. How fast? Really fast with profiling and performance tuning.

ARA in the wild: Systematic Application and Evaluation of ARA as a Whole-System Optimizer on Real-World Applications

 
Typ: Bachelorarbeit
Status: reserviert
Supervisors: Björn Fiedler, Daniel Lohmann
Project: AHA
ARA is a whole system analyzer and optimizer. This thesis should investigate in an empirical study about the improvements derived from ARA's specializations.

Preprocessed information: Extend the C preprocessor with source code markers

 
Typ: Bachelorarbeit
Status: reserviert
Supervisors: Gerion Entrup, Daniel Lohmann
Project: AHA
Extend the C preprocessor with automatic function markers that are usable in ARA

Compile-Time Malloc: Static Analysis and Replacement of Formerly Dynamic Memory Allocations using LLVM and the ARA Framework.

 
Typ: Bachelorarbeit
Status: laufend
Supervisors: Björn Fiedler, Gerion Entrup, Daniel Lohmann
Project: AHA
Bearbeiter: Christoph Möller
Move all statically analyzable allocations into compile-time.

Slothful Bird: Extend the ARA System Generator by a Sloth Backend for FreeRTOS and OSEK

Typ: Bachelorarbeit
Status: reserviert
Supervisors: Björn Fiedler, Daniel Lohmann
Project: AHA
Extend the ARA Generator with a backend using the interrupt controller as scheduler and dispatcher.

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

Typ: Bachelorarbeit
Status: laufend
Supervisors: Florian Rommel, Daniel Lohmann
Project: ATLAS
Extending the DragonFly BSD kernel to allow the usage of ATLAS synchronized thread-level address-space views in userspace processes

Meson Language Design: Construction and Automatic Checking of a Meson-Object Classification

Typ: Bachelorarbeit
Status: laufend
Supervisors: Gerion Entrup, Daniel Lohmann
Project: AHA
Bearbeiter: Paul Aumann
Develop a classification for the Meson domain specific language and to tool to check for it

Design and Implementation of an Early Timeout-Detection Mechanism for Systematic Fault-Injection Campaigns

Typ: Masterarbeit
Status: laufend
Supervisors: Oskar Pusz, Daniel Lohmann
Project: CLASSY-FI
Bearbeiter: Tim-Marek Thomas
Avoiding unnecessary fault-injection campaign run time

Multivariant ELF Executables for Dynamic Variability via Address-Space Views

Typ: Masterarbeit
Status: laufend
Supervisors: Florian Rommel, Daniel Lohmann
Project: ATLAS
Bearbeiter: Dominik Töllner
Extend the ELF format to support binaries with multiple code variants for the use with ATLAS addess space views

Efficient Change Impact Quantification by Global AST Hashing

Typ: Masterarbeit
Status: laufend
Supervisors: Tobias Landsberg, Daniel Lohmann
Project: cHash
Bearbeiter: Maximilian Werner
Indentify and quantify change impact in open-source projects by designing an analysis using global AST hashing

Finished Theses

InterSloth: Globales Hardware-gesteuertes Scheduling in einem Multikern-Echtzeitbetriebssystem auf RISC-V

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Gerion Entrup, Christian Dietrich, Daniel Lohmann
Project: AHA
Bearbeiter: Malte Bargholz (abgegeben: 09. Aug 2018)
[PDF]

Integration of a Priority-Obedient Interrupt Controller into the Rocket Softcore

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Gerion Entrup, Christian Dietrich, Daniel Lohmann
Project: AHA
Bearbeiter: Matthias Wolf (abgegeben: 01. Nov 2018)

Separating Control and Data Stacks with Binary Patching

 
Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Christian Dietrich, Daniel Lohmann

Priority-Obedient Multicore Interrupt Controller

 
Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Christian Dietrich, Daniel Lohmann

Automatische Generierung statistisch spezialisierter FreeRTOS-Kerne mit LLVM

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Björn Fiedler, Daniel Lohmann
Project: AHA
Bearbeiter: Jonas Hollmann
A compile-time generator for static FreeRTOS system objects

Statische Instanziierung von FreeRTOS Systemobjekten zur Verbesserung nichtfuntionaler Eigenschaften mit dem ARA Codegenerator Framework

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Björn Fiedler, Daniel Lohmann
Project: AHA
A compile-time generator for static FreeRTOS system objects

Effizientes Laden dünn besetzter Datenstrukturen auf eingebetteten Systemen

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Björn Fiedler, Daniel Lohmann
Project: AHA
Bearbeiter: Jannis Thöle
Introduction of Sparse Data Segments for Embedded Systems

Idealer Gebrauch von LLVM-Optimierungstechniken zur Verbesserung statischer Analyse von Echtzeitsystemen

 
Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Gerion Entrup, Daniel Lohmann
Project: AHA
Bearbeiter: Manuel Breiden (abgegeben: 19. Apr 2020)
Extend ARA - a tool for static (real-time) operating system analysis - to use as much already implemented LLVM analyses as possible

Whole-Program Analysis of POSIX/Linux-Applications: Design and Implementation of an Operating-System Model

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Gerion Entrup, Daniel Lohmann
Project: AHA
Bearbeiter: Jan Neugebauer
Extend ARA - a (real-time) operating system analyzer - for analysis of POSIX, which enables the analysis of Linux applications.

Fixed-Point Analysis in SVF: Iterative Value Flow Graph Construction

 
Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Gerion Entrup, Daniel Lohmann
Project: AHA
Extent ARA's value analysis to pointers, conditions and loops.

Design und Implementierung eines Zephyr-RTOS-Modells für ARA zur statischen Whole-System-Analyse

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Gerion Entrup, Daniel Lohmann
Project: AHA
Bearbeiter: Kenny Albes
Extend ARA - a (real-time) operating system (RTOS) analyzer - for analysis of Zephyr, an RTOS guided by the Linux Foundation

System Calls as Prepared Statements: Extend ARA to Precompute Interaction System Calls

 
Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Björn Fiedler, Daniel Lohmann
Project: AHA
Bearbeiter: Lukas Berg (abgegeben: 20. Sep 2021)
Extend the ARA to precompute interaction system calls like queue.send(data).

Untersuchung von Angriffszenarien aus dem Desktopberreich auf Linux-basierte Infotainmentsysteme im Automobil

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Christian Dietrich, Daniel Lohmann
Bearbeiter: Manuel Krüger (abgegeben: 13. Feb 2019)
Welche Gefahren und Möglichkeiten ergeben sich durch Angriffsroutinen aus dem Desktopbereich für den Einsatz von Automotive Grade Linux (AGL) in automobilen Anwendungen

Investigating Microarchitectural Effects on Code Optimization for Specific Processor Models

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Stefan Naumann, Daniel Lohmann
Project: AHA
Bearbeiter: Vitali Fendel
Research the effects of compiler optimization flags on different processor architectures and their impact on the code being executed.

Design and Implementation of Benchmarks for Systematic Fault Injection

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Oskar Pusz, Daniel Lohmann
Project: CLASSY-FI
Bearbeiter: Jannis Bujak (abgegeben: 02. Mar 2021)
Awesome benchmarks for awesome fault injection methods.

Formalizing the Execution Semantics of the AVR Instruction Set with the Description Language SAIL

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Christian Dietrich, Oskar Pusz, Daniel Lohmann
Project: CLASSY-FI
Bearbeiter: Luca Nedaskovskij (abgegeben: 16. Oct 2020)
Implementing the AVR-processor instruction-set architecture in SAIL for generating emulators automatically.

Measuring Effects of Compiler Flags on Different Processor Architectures

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Gerion Entrup, Florian Rommel, Daniel Lohmann
Project: AHA
Bearbeiter: Carlo Schmitt (abgegeben: 21. Mar 2019)

Run-Time Binary Patching for Systems with Dynamically Loadable Modules

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Florian Rommel, Daniel Lohmann
Project: CADOS
Bearbeiter: Dominik Töllner (abgegeben: 01. Sep 2019)
Explore the possibilities of using multiverse on systems with loadable modules by extending its semantics and implementation.

Design and Implementation of a Graphical Simulator for a Pipelined Processor Architecture

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Florian Rommel, Jürgen Brehm
Bearbeiter: Kwok-Fung Choi
Implement and evaluate a CPU simulator for a pipelined MIPS-like architecture with a graphical presentation on the block-diagram level

bAUTOSAR: A Javascript Real-Time Abstraction for Improved Website Responsiveness

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Christian Dietrich, Daniel Lohmann
Bearbeiter: Robin Thrift (abgegeben: 15. Mar 2019)
An OSEK-like real-time abstraction for prioritized execution of Javascript programs.

Implementierung und Evaluation eines FUSE-Dateisystems für Linux zur Integration erweiterter Änderungsdetektionsverfahren in Buildsystemen

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Tobias Landsberg, Daniel Lohmann
Project: cHash
Bearbeiter: Malte Müller (abgegeben: 08. Aug 2020)
Implementation of a Filesystem in Userspace to add cHash support to Make

Entwurf und Implementierung einer leichtgewichtigen Linux-Programmbibliothek für persistent-adressierte, nicht-flüchtige Speicherbereich

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Stefan Naumann, Daniel Lohmann
Project: CADOS, NVM
Bearbeiter: Niklas Hoh
Eine leichtgewichtige User Space Bibliothek soll entworfen und implementiert werden um effizient mit einem persistent-addressierten nicht-flüchtigen Speicherbereich arbeiten zu können.

Fault-Space Approximation using Basic-Block Fault Injection

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Oskar Pusz, Christian Dietrich, Daniel Lohmann
Bearbeiter: Daniel Kiechle (abgegeben: 15. Oct 2018)
[PDF]

Fault-Space Approximation using Call-Region Fault Injection

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Oskar Pusz, Daniel Lohmann
Bearbeiter: anonymous (abgegeben: 01. Nov 2018)

Data-Flow Analysis for Fault-Equivalence Set Forming on the ISA Layer

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Oskar Pusz, Christian Dietrich, Daniel Lohmann
Project: CLASSY-FI
Bearbeiter: Zena Obeidi (abgegeben: 01. Mar 2019)

Automatic Real-Time System Analysis

 
Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Gerion Entrup, Daniel Lohmann
Project: AHA
Bearbeiter: Benedikt Steinmeier (abgegeben: 06. Mar 2019)

MultiSSE: Full Static Emulation of a Multicore System at the example of AUTOSAR RTOS

 
Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Gerion Entrup, Daniel Lohmann
Project: AHA
Bearbeiter: Fredo Nowak
Extend the System-State Enumeration, an real-time systems analysis technique, to support multiple cores and show the working with an implementation in ARA.

How to trust the Snake: Extending the Chain of Trust to Interpreted Languages on Highly Embedded Systems

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Stefan Naumann, Daniel Lohmann
Project: CADOS
Bearbeiter: Lars Wrenger
Extend Micropython so, that it can decide whether or not the code was put in place by the developer, not a hacker. Also the integrity of the code needs to be proven during execution.

Investigating Non-Disruptive Checkpoints via Address-Space Clones in Linux-Based Non-Volatile Memory Systems

Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Florian Rommel, Daniel Lohmann
Project: CADOS
Bearbeiter: Sergej Perschin
Modifying the Linux kernel to allow using virtual address space clones to implement non-disruptive checkpoints and coredumps.

Transient-Fault Resilience of a Capability-enabled Processor Plattform

Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Christian Dietrich, Daniel Lohmann
Project: CLASSY-FI
Bearbeiter: Malte Bargholz (abgegeben: 01. Nov 2020)
Integration of SAIL-based MIPS and CHERI emulators into the FAIL* fault-injection tool and quantitative fault-resilience comparision. [PDF]

Pruning of Soft-Error Fault Spaces by Dynamic Register-Usage Tracing in a Formal Instruction-Set Model

Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Christian Dietrich, Daniel Lohmann
Project: CLASSY-FI
Bearbeiter: Yannick Loeck (abgegeben: 26. May 2021)
In this thesis, the SAIL compiler should be extended to allow the C-emulator to record all dynamic register reads and writes to these state registers. This information should then be integrated into the FAIL* toolchain to inject only those state registers that are actually used by a given executed instruction.

Acceleration of Fault-Injection Campaigns through Early Timeout Detection

Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Oskar Pusz, Daniel Lohmann
Project: CLASSY-FI
Bearbeiter: Felix Siegel (abgegeben: 22. May 2020)
Developing methods to avoid unnecessary fault-injection campaign run time

Schotbruch: Automatisierte Ableitung von Injektionsplattformen für transiente Hardwarefehler aus formalen Prozessormodellen

Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Christian Dietrich, Daniel Lohmann
Project: CLASSY-FI
Bearbeiter: Marcel Budoj (abgegeben: 08. May 2019)
Use SAIL language to integrate an ISA implementations into a fault injection framework. Different CPU architectures shall be evaluated for reliability. [PDF]

Accelerate Micropython: Developing Accelerators for Micropython on the RISC-V platform

Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Stefan Naumann, Daniel Lohmann
Project: AHA
Benchmark Micropython, identify spots to accelerate and propose hardware accelerators for the Micropython interpreter.

Extending the Linux Kernel for Wait-Free Live Patching of Multi-Threaded Processes

Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Florian Rommel, Christian Dietrich, Daniel Lohmann
Project: CADOS
Bearbeiter: Lennart Glauer (abgegeben: 20. Nov 2019)
Using virtual address space clones to avoid blocking on a global barrier in live patching situations and implement this mechanism in the Linux kernel.

Vermeidung von Seitenfehlern zum Programmstart durch einen persistent-prädiktiven Seitenzwischenspeicher im Linux Kern

Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Stefan Naumann, Daniel Lohmann
Project: CADOS, NVM
Bearbeiter: Simon Burandt
Seitenfehler beim Start von Programmen sollen durch einen Seitenzwischenspeicher im NVRAM vermieden werden. Dazu soll der Linux Kern entsprechend erweitert werden, die Zugriffe zu speichern und bei späteren Programmstarts ohne Pagefault einzublenden.

Erweiterung des Python-Programmiermodells um NVRAM-persistierte Sprachobjekte

Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Stefan Naumann, Daniel Lohmann
Project: CADOS, NVM
Entwurf eines Persistenz-Moduls für Python auf Basis von NVM

Erweiterung des Linux-Kerns um mehrstufige Seitenumlagerung für Systeme mit nichtflüchtigem Speicher (NVM)

Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Stefan Naumann, Daniel Lohmann
Project: CADOS, NVM
Bearbeiter: Christian Müller
Extending the Linux memory management to use NVM for swapping.

Bintail: Binary Level Tailoring of ELF Executables via Feature Selection and Variant Elimination

Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Florian Rommel, Christian Dietrich, Daniel Lohmann
Project: CADOS
Bearbeiter: Felix Herrmann (abgegeben: 01. Nov 2018)

Multiverse: Compiler-Assisted Dynamic Variability Management in the Linux Kernel

Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Christian Dietrich, Andreas Ziegler, Wolfgang Schröder-Preikschat, Daniel Lohmann
Project: CADOS
Bearbeiter: Florian Rommel (abgegeben: 02. Nov 2017)
Use the multiverse compiler plugin to optimize paths in the Linux kernel [PDF]

Measurement-Directed Application of Compiler-Assisted Dynamic Variability Management in the Linux Kernel

Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Florian Rommel, Christian Dietrich, Daniel Lohmann
Project: CADOS
Bearbeiter: Michael Rodin (abgegeben: 01. Oct 2018)

ROS Timestamps for libusb in the Linux Kernel

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Björn Fiedler, Christian Dietrich, Daniel Lohmann
Project: AHA

Analyzing and Optimizing TLB-Induced Thread Migration Costs on Linux/ARM

Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Björn Fiedler, Christian Dietrich, Daniel Lohmann
Project: AHA
Bearbeiter: Tobias Landsberg (abgegeben: 21. Nov 2018)

Effiziente globale Änderungsanalysen in großen C-Projekten durch Syntaxbaum-Hashing im Clang Compiler

 
Typ: Masterarbeit
Status: abgeschlossen
Supervisors: Christian Dietrich, Andreas Ziegler, Wolfgang Schröder-Preikschat, Daniel Lohmann
Project: cHash
Use the cHash method to quantify the impact of source code changes.

Avoidance of Redundant Recompilations by Propagation of Semantic Fingerprints

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Christian Dietrich, Daniel Lohmann
Project: cHash
Redundant-compile propagation in the make dependency graph

Integration of AST Hashing into the GCC compiler

Typ: Bachelorarbeit
Status: abgeschlossen
Supervisors: Christian Dietrich, Daniel Lohmann
Project: cHash
Implementation and Analysis of a GCC Plugin to calculate an hash value over the abstract syntax tree of a compilation unit.