Turning Linux into a High-Performance Library OS with Flux
Abstract
Modern high-performance applications increasingly bypass the host kernel for I/O and scheduling and rely on library OSes for operating-system services. High-performance library OSes are often built from scratch, but supporting unmodified applications requires reimplementing mature Linux semantics. Running Linux itself as a library OS avoids this cost, yet existing Linux-based designs remain slow. Our analysis of LKL shows that the main bottlenecks lie in the surrounding user-space runtime rather than Linux subsystems. We present Flux, a Linux-based library OS that reduces the runtime bottlenecks while keeping Linux subsystems largely intact. Flux redesigns scheduling, user-space interrupt delivery, and syscall paths, and introduces a new process abstraction that supports Linux fork semantics without giving up direct-call syscalls. Flux improves Nginx throughput by up to 18.5× over Linux, and approaches Junction's Memcached throughput under a 100μs p99 latency target, showing that Linux can provide a high-performance library OS without rebuilding Linux functionality from scratch.