thesis: Add abstract
This commit is contained in:
BIN
thesis/intercept_v0.2.pdf
Normal file
BIN
thesis/intercept_v0.2.pdf
Normal file
Binary file not shown.
@@ -1,3 +1,9 @@
|
||||
% 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.
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
% 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.
|
||||
|
||||
@@ -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}.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
|
||||
\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}
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
|
||||
% Required data.
|
||||
\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.
|
||||
%\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.
|
||||
\begin{aitools}
|
||||
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}
|
||||
|
||||
%\begin{kitools}
|
||||
|
||||
Reference in New Issue
Block a user