Whole-Program Analysis of POSIX/Linux-Applications: Design and Implementation of an Operating-System Model
- Typ der Arbeit: Bachelorarbeit
- Status der Arbeit: abgeschlossen
- Projekte: AHA
- Betreuer: Gerion Entrup, Daniel Lohmann
- Bearbeiter: Jan Neugebauer
ARA is a program to statically analyze an application to extract all operating system instances (like threads) together with their interactions (what thread interacts with this queue?). It is built upon the LLVM compiler infrastructure and makes heavy use of it's API. Currently, it is able to analyze applications written for FreeRTOS (an RTOS for embedded use).
The Portable Operating System Interface (POSIX) is a widely used operating system interface, most notably used by Linux and MacOS. For POSIX a wide variety of applications exists. The goal of this thesis is to bring support of the POSIX interface to ARA, which allows to analyze fully automatically the internal structure of POSIX applications. Part of the task is the recognition of the POSIX system calls and builing a POSIX system model description in ARA.
The tasks that should be done in the thesis are:
- Extend the existing OS model to support POSIX.
- Write a basic POSIX system call interpreter in Python.
- Evaluate the implementation with appropriate applications written for the POSIX interface.
Topics covered by this thesis:
Linux, POSIX, static analysis, LLVM, C++, C, Python
ARA: Automatic Instance-Level Analysis in Real-Time Systems
Proceedings of the 15th Annual Workshop on Operating Systems Platforms for Embedded Real-Time Applications (OSPERT '19)2019.
Best Paper Award
Levels of Specialization in Real-Time Operating Systems
Proceedings of the 14th Annual Workshop on Operating Systems Platforms for Embedded Real-Time Applications (OSPERT '18)2018Best Paper Award.
Global Optimization of Fixed-Priority Real-Time Systems by RTOS-Aware Control-Flow Analysis
ACM Transactions on Embedded Computing Systems16.2ACM Press2017.