SeL4: Formal verification of an operating-system kernel

Gerwin Klein*, June Andronick, Kevin Elphinstone, Gernot Heiser, David Cock, Philip Derrin, Dhammika Elkaduwe, Kai Engelhardt, Rafal Kolanski, Michael Norrish, Thomas Sewell, Harvey Tuch, Simon Winwood

*Corresponding author for this work

    Research output: Contribution to journalArticlepeer-review

    216 Citations (Scopus)

    Abstract

    We report on the formal, machine-checked verification of the seL4 microkernel from an abstract specification down to its C implementation. We assume correctness of compiler, assembly code, hardware, and boot code. seL4 is a third-generation microkernel of L4 provenance, comprising 8700 lines of C and 600 lines of assembler. Its performance is comparable to other high-performance L4 kernels. We prove that the implementation always strictly follows our high-level abstract specification of kernel behavior. This encompasses traditional design and implementation safety properties such as that the kernel will never crash, and it will never perform an unsafe operation. It also implies much more: we can predict precisely how the kernel will behave in every possible situation.

    Original languageEnglish
    Pages (from-to)107-115
    Number of pages9
    JournalCommunications of the ACM
    Volume53
    Issue number6
    DOIs
    Publication statusPublished - 1 Jun 2010

    Fingerprint

    Dive into the research topics of 'SeL4: Formal verification of an operating-system kernel'. Together they form a unique fingerprint.

    Cite this