BACK TO HOME

XV6 Modifications

Xv6 is "a teaching operating system" based on Unix V6, but implemented in ANSI C for multi-core x86 processors. Throughout my undergrad OS course (CS3210), we were tasked with multiple projects where we were provided with opportunities to tinker at all layers of the xv6 operating system, from the bootblock to the kernel and user modes. Below, I briefly touch on the technical challenges with each modification I made to xv6 during the course!

backtrace()

Example output from the backtrace() function I implemented.

The first modification I made to xv6 was adding stack backtrace support! In order to implement this feature, I had to familiarize myself with how x86 modifies registers and the stack in order to determine the chain of function calls. I also had to use STAB information collected by the kernel in order to display the function names to the user when the backtrace() function would be called.

More coming soon...