The Performance of µ-Kernel-Based Systems

H. Härtig, M. Hohmuth, J. Liedtke, S. Schönberg, and J. Wolter, SOSP 1997

Summary

Port Linux to run on L4, a 2nd-gen µ-kernel, and compare it to 1) native Linux 2) MkLinux (Linux running on 1st-gen Mach-derived µ-kernel). L4Linux is much faster than MkLinux (even with co-location). Typical penalties of using L4Linux over native Linux range from 5% to 10%.

Motivation

1st-generation µ-kernels have reputation for being too slow and lacking sufficient flexibility. Can 2nd-generation µ-kernel (L4) overcome these limitations?

Experiment: Port Linux to Run on L4

Port Linux to run on L4 and compare it to 1) native Linux 2) MkLinux (Linux running on 1st-gen Mach-derived µ-kernel).

L4 Essentials

Linux on top of L4

Result

Compatibility Performance

  1. What is the penalty of using L4 Linux instead of native Linux?

    Typical penalties range from 5% to 10% in macrobenchmarks.

  2. Does the performance of the underlying µ-kernel matter?

    Yes after comparing two µ-kernel implementations of the same OS.

  3. How much does co-location (a faster version of MkLinux uses a co-located server running in kernel mode) improve performance?

    Co-location on its own is not sufficient to overcome performance deficiencies when the basic µ-kernel does not perform well.

Extensibility Performance