np hard
2009 Australia meta
17

seL4 — Formal Verification of an OS Kernel

Gerwin Klein et al., NICTA, 2009 — first formally verified general-purpose OS microkernel. ~10,000 lines of C, verified down to assembly. About twenty-five person-years of proof.

Gerwin Klein, Kevin Elphinstone, Gernot Heiser, and a team at NICTA in Sydney delivered the first machine-checked correctness proof of a general-purpose operating-system microkernel. seL4 is approximately 10,000 lines of C, verified using the Isabelle/HOL theorem prover via two large refinement steps: an abstract specification refined to an executable Haskell prototype, refined to the C implementation, ultimately related to the compiled binary. The proof establishes functional correctness: the kernel never violates its specification, never crashes, never violates memory safety, and enforces the access-control properties it claims. Effort: roughly twenty-five person-years of proof for ten thousand lines of code, a ratio of roughly 200,000 lines of proof per 10,000 lines of code. seL4 now ships in safety-critical and security-critical systems including military aviation and autonomous-vehicle platforms. Existence proof: a real OS kernel can be proved correct.

Klein, G., Elphinstone, K., Heiser, G., Andronick, J., Cock, D., Derrin, P., Elkaduwe, D., Engelhardt, K., Kolanski, R., Norrish, M., Sewell, T., Tuch, H., Winwood, S. (2009). seL4: Formal Verification of an OS Kernel. Proceedings of the 22nd ACM SIGOPS Symposium on Operating Systems Principles, 207–220. Source →