Mark's Review of the CertiKOS paper

Citation details:

Mark's summary

  1. What problem does the paper address?
    An operating system kernel is a critical piece of systems software impacting the correctness, robustness, and performance of applications that run on top of the kernel. Can we use formal verification methods prove that a kernel is correct? In particular, can such methods be applied to an OS kernel that supports fine-grained multi-threading running on a multi-core CPU?
  2. What is the key insight/idea in the paper’s solution to this problem?
    The authors promote using compositional techniques including sequential composition, concurrent composition, and multiple layers of refinement. While compositional methods have been known and promoted for 25+ years, the authors claim that recently developed tools, especially the Coq proof assistant and the CertCompX compiler.
  3. What did the authors do to demonstrate their claims?
    They sketched the structure of their proofs, describing the main abstraction layers and how they used the compositional methods described above. They report that they have a complete proof and describe some bugs that they found.
  4. Is the support for the claims convincing?
    I'll give this a qualified “yes”. My yes answer is that they have an OS that is apparently sufficiently capable that they can use it as a hypervisor and run linux as a guest OS. I'll bring up my concerns in my response to the final question.
  5. Other questions and/or comments
    I have several questions that I suspect are pointing to where there is room for future work to get from mc2 to a more capable OS.

Andrew Appel's summary

If you look at the table of contents of the CACM issue that had the CertiKOS paper, you'll see that Andrew Appel wrote a summary of the paper. See: Andrew's summary.

Possible discussion topics