LEVERAGING SYSTEM CALL INTERPOSITION FOR LOW-LEVEL PROCESS MANIPULATION
Degree type
Graduate group
Discipline
Subject
Operating Systems
Process Manipulation
System Call
System Call Interposition
Systems Programming
Funder
Grant number
License
Copyright date
Distributor
Related resources
Author
Contributor
Abstract
Modern software continues to grow in size and complexity with no signs of slowing down.Program tracing allows us to observe the execution of a program. OS-level program tracing is useful, as it allows us to abstract over many details of program execution and view programs based on the IO operations they perform. Beyond read-only program tracing, this dissertation overviews low-level process manipulation. We argue process manipulation is a useful and general technique with many applications. We show the utility of tracing and process manipulation by covering several projects which leverage these techniques. First, we describe Dettrace, a deterministic container abstraction. Dettrace provides a containerized environment where any computation inside the container is guaranteed to be deterministic. Next, we describe ProcessCache implements a system for automatically caching results of process-level computations. ProcessCache automatically infers inputs and outputs to a program and will only re-execute a process if its inputs have changed. Otherwise, it skips unnecessary recomputation by using the cached results. Finally, Tivo combines lightweight determinism enforcement with record and replay to suppress certain types of thread-level nondeterminism. Finally, our future work proposes ChaOS, a fuzzing system for fault injection at system call sites. Lastly, we list key features and requirements for next generation program tracing and low-level process manipulation.