Reproducing System Software Research: A Case Study
Technology advances rapidly, especially in computer science and engineering. However, some ideas that were not quite ripe at the time they were conceived can be relevant in their original or a completely different context years or even decades later–which sometimes leads to the impression that “computer science reinvents the wheel every twenty-five years”.
This talk will take you on a journey that leads twenty-five years back into the past, to the mid-1990s. Back then, the dominance of x86 architecture-based computer systems was not as prevalent as today and not only researchers, but also industry were eager to experiment with new approaches, both on the hardware as well as the system software side.
One of these ideas that are now more than a quarter of a century old has thrived and led to numerous research and industrial successes. This success story revolves around the L4 microkernel conceived by Jochen Liedtke, which was and still is the basis of many successful research and industry projects world-wide.
In contrast, another of Liedtke’s ideas, the guarded page table (GPT) concept that enabled fine-grained mapping and protection of virtual memory, as described in his Ph.D. thesis and addi- tional publications, did not gain quite as much interest in the research community. While GPTs were implemented in early ports of L4 to MIPS- and Alpha-based machines and were used in the L4-based Mungi single-address-space operating system, they never gained much traction beyond this work.
The recent availability of byte-addressable main memory hardware components (e.g., Intel’s Optane technology) as well as a resurgence of systems using persistent main memory images, such as those inspired by Mungi, Smalltalk, Lisp, or Liedtke’s own L3, have rekindled the interest in more fine-grained approaches to memory management. Thus, an exploration of the suitability of the GPT virtual memory approach for these environments seemed to be an interesting endeavor, especially given the significant changes that have occurred in processor technologies and memory hierarchies since then.
To start this exploration, the initial idea was to reproduce Liedtke’s work on GPTs for MIPS-based computer systems by trying to recreate an environment that enables the execution and analysis of L4-based operating system code and benchmarks using GPTs.
Doing this posed a number of problems and created some unexpected obstacles. Accordingly, this talk tells the story of exploring GPTs a quarter century after their invention. We describe the different steps of this journey, starting with attempts to find and obtain relevant publications and the source code for the respective software, over compiling the software, finding the correct platform that allows to run the software, actually getting the software to boot on one of the platforms to, finally, finding useful applications and benchmarks for the system.
This talk can only provide a single snapshot of an endeavor to reproduce system software research and provide some ideas how to enable easier reproducibility of results for future genera- tions of researchers. We hope that this talk will raise attention to these issues and initiate a discussion about the special challenges of reproducing research which involves specific properties of the hardware/software interface.