1
0

thesis: Add abstract

This commit is contained in:
2025-08-19 13:06:51 +02:00
parent 8712bdc461
commit 44c8b21c9b
6 changed files with 21 additions and 6 deletions

BIN
thesis/intercept_v0.2.pdf Normal file

Binary file not shown.

View File

@@ -1,3 +1,9 @@
% Abstract % Abstract
Lorem Ipsum. This thesis presents methods for intercepting and manipulating function calls in Linux systems, with a focus on supporting automated testing of student programs in the Operating Systems course.
The central contribution is the development of \texttt{intercept.so}, a shared object preloaded via the \texttt{LD\_PRELOAD} mechanism, which enables function call interception at runtime without requiring modifications to the program or its source code.
The library records detailed information about function calls, including arguments, return values, and call locations, allowing precise reconstruction and analysis of program execution.
Furthermore, it introduces controlled manipulation of intercepted calls---modifying arguments, forcing failures, or mocking return values---through a simple communication protocol, enabling robust automated tests of error handling and resource management.
Performance evaluations show minimal overhead in practical scenarios, making the approach suitable for educational use.
Compared to existing tools such as \texttt{strace} or \texttt{ltrace}, this solution offers greater flexibility by combining interception with manipulation capabilities.
Overall, the approach provides a flexible and transparent foundation for automated testing of low-level C programs, improving reliability while imposing negligible runtime overhead.

View File

@@ -1,3 +1,10 @@
% Kurzfassung % Kurzfassung
Lorem Ipsum. Diese Arbeit stellt Methoden zum Abfangen und Manipulieren von Funktionsaufrufen in Linux-Systemen vor, mit dem Schwerpunkt auf der Unterstützung automatisierter Tests von Studierendenprogrammen im Rahmen der Betriebssysteme-Lehrveranstaltung.
Der zentrale Beitrag ist die Entwicklung von \texttt{intercept.so}, einer Shared Object-Bibliothek, die über den Mechanismus \texttt{LD\_PRELOAD} eingebunden wird und so das Abfangen von Funktionsaufrufen zur Laufzeit ermöglicht, ohne dass Änderungen am Programm oder dessen Quellcode erforderlich sind.
Die Bibliothek protokolliert detaillierte Informationen über Funktionsaufrufe, einschließlich Argumenten, Rückgabewerten und Aufrufstellen, wodurch eine präzise Rekonstruktion und Analyse der Programmausführung möglich wird.
Darüber hinaus erlaubt sie die kontrollierte Manipulation abgefangener Aufrufe -- etwa durch das Ändern von Argumenten, das Erzwingen von Fehlern oder das Simulieren von Rückgabewerten -- mittels eines einfachen Kommunikationsprotokolls.
Dies ermöglicht robuste automatisierte Tests zur Überprüfung von Fehlerbehandlung und Ressourcenverwaltung.
Leistungsmessungen zeigen, dass der Ansatz in praktischen Szenarien nur minimale Laufzeitkosten verursacht und sich somit gut für den Einsatz in der Lehre eignet.
Im Vergleich zu bestehenden Werkzeugen wie \texttt{strace} oder \texttt{ltrace} bietet die Lösung eine größere Flexibilität, da sie das Abfangen mit Manipulationsmöglichkeiten kombiniert.
Insgesamt stellt der Ansatz eine flexible und transparente Grundlage für automatisierte Tests von Low-Level-C-Programmen dar, verbessert deren Zuverlässigkeit und verursacht dabei nur vernachlässigbaren Laufzeit-Overhead.

View File

@@ -175,7 +175,7 @@ Usually, the program is expected to repeat the call until it gets a real return
Therefore, testing correct handling of interrupts is a different type of test in contrast to general tests on return value checks as seen in Subsection~\ref{subsec:testing-return-value-checks}. Therefore, testing correct handling of interrupts is a different type of test in contrast to general tests on return value checks as seen in Subsection~\ref{subsec:testing-return-value-checks}.
It is relatively simple to test if a program correctly handles interrupts. It is relatively simple to test if a program correctly handles interrupts.
On any function call, that may yield \texttt{EINTR} mock the call and return exactly that error. On any function call that may yield \texttt{EINTR} mock the call and return exactly that error.
Afterward, check if the same function is called again. Afterward, check if the same function is called again.
To increase confidence in the result, one may repeat this process multiple times. To increase confidence in the result, one may repeat this process multiple times.
As in the test in Subsection~\ref{subsec:testing-return-value-checks}, the handling of the interrupt may involve calls to other functions, so this method is not always the right choice. As in the test in Subsection~\ref{subsec:testing-return-value-checks}, the handling of the interrupt may involve calls to other functions, so this method is not always the right choice.

View File

@@ -1,7 +1,9 @@
\chapter{Evaluation}\label{ch:evaluation} \chapter{Evaluation}\label{ch:evaluation}
Lorem Ipsum. This chapter evaluates the developed approach in terms of both its practical usefulness and its performance.
Section~\ref{sec:usefulness} examines how well the library and tools support automated testing in the context of the Operating Systems course.
Section~\ref{sec:performance} analyzes the performance overhead introduced by intercepting function calls.
\section{Usefulness for the Operating Systems Course}\label{sec:usefulness} \section{Usefulness for the Operating Systems Course}\label{sec:usefulness}

View File

@@ -99,7 +99,7 @@
% Required data. % Required data.
\setregnumber{12119052} \setregnumber{12119052}
\setdate{01}{08}{2025} % Set date with 3 arguments: {day}{month}{year}. \setdate{19}{08}{2025} % Set date with 3 arguments: {day}{month}{year}.
\settitle{\thesistitle}{Abfangen und Manipulieren von\\System-/Funktionsaufrufen in\\Linux-Systemen} % Sets English and German version of the title (both can be English or German). If your title contains commas, enclose it with additional curvy brackets (i.e., {{your title}}) or define it as a macro as done with \thesistitle. \settitle{\thesistitle}{Abfangen und Manipulieren von\\System-/Funktionsaufrufen in\\Linux-Systemen} % Sets English and German version of the title (both can be English or German). If your title contains commas, enclose it with additional curvy brackets (i.e., {{your title}}) or define it as a macro as done with \thesistitle.
%\setsubtitle{Optional Subtitle of the Thesis}{Optionaler Untertitel der Arbeit} % Sets English and German version of the subtitle (both can be English or German). %\setsubtitle{Optional Subtitle of the Thesis}{Optionaler Untertitel der Arbeit} % Sets English and German version of the subtitle (both can be English or German).
@@ -169,7 +169,7 @@
% Use either the English aitools or the German kitools. % Use either the English aitools or the German kitools.
\begin{aitools} \begin{aitools}
No generative AI tools were used in and for this work whatsoever. No generative AI tools were used in and for this work whatsoever.
The only exception was the use of ChatGPT for proofreading. The only exception was the use of ChatGPT for proofreading and refining of the abstract.
\end{aitools} \end{aitools}
%\begin{kitools} %\begin{kitools}