Capability Wrangling Made Easy: Debugging on a Microkernel With Valgrind

Date Added: Mar 2010
Format: PDF

Not all operating systems are created equal. Contrasting traditional monolithic kernels, there is a class of systems called microkernels more prevalent in embedded systems like cellphones, chip cards or real-time controllers. These kernels offer an abstraction very different from the classical POSIX interface. The resulting unfamiliarity for programmers complicates development and debugging. Valgrind is a well-known debugging tool that virtualizes execution to perform dynamic binary analysis. However, it assumes to run on a POSIX-like kernel and closely interacts with the system to control execution. This paper analyzes how to adapt Valgrind to a non-POSIX environment and describe the port to the Fiasco.OC microkernel.