2/3 Microkernels

Reading

  1. “The nucleus of a multiprogramming system”, Per Brinch Hansen (Communications of the ACM, April 1970)

  2. “Toward real microkernels”, Jochen Liedtke (Communications of the ACM, September 1996)

  3. “The multikernel: A new OS architecture for scalable multicore systems”, Andrew Baumann, Paul Barham, Pierre-Evariste Dagand, Tim Harris, Rebecca Isaacs, Simon Peter, Timothy Roscoe, Adrian Schüpbach, Akhilesh Singhania (SOSP 2009) — also known as “the Barrelfish paper”

The first paper is generally acknowledged as the progenitor of the microkernel concept, but it doesn’t use that term. You’ll get a better grasp on what “microkernel” means in modern usage after reading paper #2.

Reading questions

  1. Some of the desiderata for paper #1’s “nucleus” apply to any kernel. What are the most important desiderata or mechanisms that make the “nucleus” specifically a microkernel in retrospect?
  2. The multikernel architecture describes properties of both kernels and user-level services (primarily the per-core “monitor”). What distinguishes a multikernel’s CPU driver (its kernel-mode component) from other microkernels?

Further reading