The Secure Embedded L4 Microkernel (seL4)
seL4 is the world’s first microkernel that brings with it a formal proof of correctness. The kernel was designed against a specification and the translation of the source code to binary representation hold correctness proofs with them as well.
Background
Microkernels
Have been around since the early 70’s
Near minimum amount of software that can provide mechanisms needed for an operating system
Some mechanisms (Bare-minimum)
Low level address space management
Thread Management
Inter Process Communication
Interrupt management/routing
Generally the kernel is the most privileged, everything else contained in user space
Disadvantages
Advantages
Modularity
Security
Robustness
The limited requirements of a microkernel generally lead to a simpler code base
This is easier to test/peer review
Driver cannot directly crash the kernel
A system can be resurrected by monitor servers
Common Characteristics
Other Microkernels
L4 Family (seL4, OKL4, Fiasco.OC)
GNU Hurd (GNU’s perpetually unfinished microkernel based
OS)
MINIX (Andrew Tanenbaum’s academic microkernel)
Magenta (Google’s microkernel for Fuchsia
OS)
Redox (A Rust microkernel)
QNX (Blackberry’s microkernel)
This wiki serves as a companion to the tutorials provided by Data61, the tutorials provided by DornerWorks, and the wiki provided by Data61. This wiki consists of several main sections:
More Resources
Tutorials
Data 61 Material
Other Documents and Links
-
-
-
-
-
-
-
-
-
This is from 2009 and may be outdated as far as
API goes but the concepts are worth looking at
-
-
-