seL4: formal verification of an OS kernel
- G. Klein, K. Elphinstone, Simon Winwood
- Computer ScienceSymposium on Operating Systems Principles
- 11 October 2009
To the knowledge, this is the first formal proof of functional correctness of a complete, general-purpose operating-system kernel.
A machine-checked model for a Java-like language, virtual machine, and compiler
Jinja is a compromise between the realism of the language and the tractability and clarity of its formal semantics, and provides a unified model of the source language, the virtual machine, and the compiler.
Comprehensive formal verification of an OS microkernel
- G. Klein, June Andronick, G. Heiser
- Computer ScienceTOCS
- 1 February 2014
An in-depth coverage of the comprehensive machine-checked formal verification of seL4, a general-purpose operating system microkernel, and the experience in maintaining this evolving formally verified code base.
Concrete Semantics: With Isabelle/HOL
The book teaches the reader the art of precise logical reasoning and the practical use of a proof assistant as a surgical tool for formal proofs about computer science artefacts.
seL4: From General Purpose to a Proof of Information Flow Enforcement
- Toby C. Murray, Daniel Matichuk, G. Klein
- Computer ScienceIEEE Symposium on Security and Privacy
- 19 May 2013
This is the first complete, formal, machine-checked verification of information flow security for the implementation of a general-purpose microkernel; namely seL4, and describes precisely how the general purpose kernel should be configured to enforce isolation and mandatory information flow control.
Types, bytes, and separation logic
- Harvey Tuch, G. Klein, Michael Norrish
- Computer ScienceACM-SIGACT Symposium on Principles of Programming…
- 17 January 2007
A formal model of memory is presented that both captures the low-level features of C's pointers and memory, and forms the basis for an expressive implementation of separation logic that is applicable to real, security- and safety-critical code by formally verifying the memory allocator of the L4 microkernel.
Translation validation for a verified OS kernel
- Thomas Sewell, Magnus O. Myreen, G. Klein
- Computer ScienceACM-SIGPLAN Symposium on Programming Language…
- 16 June 2013
An approach for proving refinement between the formal semantics of a program on the C source level and its formal semantics on the binary level, thus checking the validity of compilation, including some optimisations, and linking, and extending static properties proved of the source code to the executable is presented.
Cogent: Verifying High-Assurance File System Implementations
- Sidney Amani, A. Hixon, G. Heiser
- Computer ScienceInternational Conference on Architectural Support…
- 25 March 2016
It is shown how verification effort is drastically reduced for proving higher-level properties of the file system implementation by reasoning about the generated formal specification rather than its low-level C code.
seL4: formal verification of an operating-system kernel
- G. Klein, June Andronick, Simon Winwood
- Computer ScienceCommunications of the ACM
- 1 June 2010
It is proved that the implementation of the seL4 microkernel always strictly follows the high-level abstract specification of kernel behavior, which encompasses traditional design and implementation safety properties such as that the kernel will never crash, and it will never perform an unsafe operation.
Noninterference for Operating System Kernels
- Toby C. Murray, Daniel Matichuk, Matthew Brassil, Peter Gammie, G. Klein
- Computer ScienceCertified Programs and Proofs
- 13 December 2012
This paper presents a machine-checked formulation of intransitive noninterference for OS kernels, and its associated sound and complete unwinding conditions, as well as a scalable proof calculus over nondeterministic state monads for discharging these unwinding Conditions across a kernel's implementation.
...
...