School of Computer Science and Engineering
University of New South Wales
Sydney 2052 Australia
National ICT Australia, Sydney,
Australia
In the paper we examine one of the issues in designing, specifying, implementing and formally verifying a small operating system kernel --- how to provide a productive and iterative development methodology for both operating system developers and formal methods practitioners.
We espouse the use of functional programming languages as a medium for prototyping that is readily amenable to formalisation with a low barrier to entry for kernel developers, and report early experience in the process of designing and building sel4: a new, practical, and formally verified microkernel.