Title
Concerned with the unprivileged: user programs in kernel refinement
Abstract
It is a great verification challenge to prove properties of complete computer systems on the source code level. The L4.verified project achieved a major step towards this goal by mechanising a proof of functional correctness of the seL4 kernel. They expressed correctness in terms of data refinement with a coarse-grained specification of the kernel's execution environment. In this paper, we strengthen the original correctness theorem in two ways. First, we convert the previous abstraction relations into projection functions from concrete to abstract states. Second, we revisit the specification of the kernel's execution environment: we introduce the notion of virtual memory based on the kernel data structures, we distinguish individual user programs that run on top of the kernel and we restrict the memory access of each of these programs to its virtual memory. Through our work, properties like the separation of user programs gain meaning. This paves the way for proving security properties like non-interference of user programs. Furthermore, our extension of L4.verified's proof facilitates the verification of properties about complete software systems based on the seL4 kernel. Besides the seL4-specific results, we report on our work from an engineering perspective to exemplify general challenges that similar projects are likely to encounter. Moreover, we point out the advantages of using projection functions in L4.verified's verification approach and for stepwise refinement in general.
Year
DOI
Venue
2014
10.1007/s00165-014-0296-9
Formal Asp. Comput.
Keywords
Field
DocType
isabelle/hol,microkernel correctness,refinement proof,trustworthy systems
Kernel (linear algebra),Data structure,Programming language,Source code,Computer science,Virtual memory,Top-down and bottom-up design,Correctness,Theoretical computer science,Software system,restrict
Journal
Volume
Issue
ISSN
26
6
1433-299X
Citations 
PageRank 
References 
2
0.40
20
Authors
3
Name
Order
Citations
PageRank
Matthias Daum120.40
Nelson Billing220.40
Gerwin Klein3145087.47