# Reproducible Execution of POSIX Programs with DiOS

**Authors:** Petr Ro\v{c}kai, Zuzana Baranov\'a, Jan Mr\'azek, Katar\'ina, Kejstov\'a, Ji\v{r}\'i Barnat

arXiv: 1907.03356 · 2019-07-09

## TL;DR

DiOS is a lightweight, portable, and extensible operating system that enables fully reproducible execution of POSIX programs, supporting verification and symbolic execution across different platforms.

## Contribution

Introduces DiOS, a modular and portable OS that ensures reproducible execution of POSIX programs, compatible with DiVM and KLEE for verification and symbolic analysis.

## Key findings

- DiOS achieves exact reproducibility of instruction traces.
- DiOS can be integrated with DiVM and KLEE for verification.
- DiOS's modular design allows customization for different platforms.

## Abstract

In this paper, we describe DiOS, a lightweight model operating system which can be used to execute programs that make use of POSIX APIs. Such executions are fully reproducible: running the same program with the same inputs twice will result in two exactly identical instruction traces, even if the program uses threads for parallelism.   DiOS is implemented almost entirely in portable C and C++: although its primary platform is DiVM, a verification-oriented virtual machine, it can be configured to also run in KLEE, a symbolic executor. Finally, it can be compiled into machine code to serve as a user-mode kernel.   Additionally, DiOS is modular and extensible. Its various components can be combined to match both the capabilities of the underlying platform and to provide services required by a particular program. New components can be added to cover additional system calls or APIs.   The experimental evaluation has two parts. DiOS is first evaluated as a component of a program verification platform based on DiVM. In the second part, we consider its portability and modularity by combining it with the symbolic executor KLEE.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1907.03356/full.md

## Figures

3 figures with captions in the complete paper: https://tomesphere.com/paper/1907.03356/full.md

## References

19 references — full list in the complete paper: https://tomesphere.com/paper/1907.03356/full.md

---
Source: https://tomesphere.com/paper/1907.03356