Operating Systems

The goal of our research has been to align operating systems (OSes) to the capabilities of modern hardware and achieve significant improvements in application throughput and latency without sacrificing compatibility or security. Our first contribution was Dune, a system that allows the design of library-based OSes within Linux [OSDI’12]. Dune uses the virtualization support in modern processors to allow library-based OSes to directly manage part of the hardware resources and provide specialized alternatives of the networking, storage, or threading subsystems. Applications can use the new capabilities for efficiency, while still making calls into Linux when needed for compatibility. Dune provides a framework for OS research, achieving the best of both clean-slate and evolutionary approaches.

Next, we developed IX, a library-based OS for high throughput, low-latency networking [ODSI’14, SOCC’15, TOCS’17, ASPLOS’17]. IX goes well beyond separating the control plane (Linux) from the networking dataplane. It uses two key techniques, run-to-completion and adaptive batching, to reduce scheduling overheads, eliminate synchronization, enable zero-copy operation, and maximize the benefit from hardware caches. For important workloads like key-value stores, IX provides a 10x throughput and a 2x tail latency improvement over Linux. We are currently exploring similar approaches to optimize Flash storage and thread management [ASPLOS’17].