2020-03-09 06:18:30 +00:00
|
|
|
<!--
|
|
|
|
Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
|
|
|
|
|
2020-03-14 12:13:16 +00:00
|
|
|
SPDX-License-Identifier: CC-BY-SA-4.0
|
2020-03-09 06:18:30 +00:00
|
|
|
-->
|
2020-03-02 08:20:30 +00:00
|
|
|
|
2014-07-28 01:59:57 +00:00
|
|
|
The capDL Specification of seL4
|
|
|
|
===============================
|
2014-07-22 23:11:43 +00:00
|
|
|
|
2014-07-28 01:59:57 +00:00
|
|
|
l4v/spec/capDL/
|
2014-07-22 23:11:43 +00:00
|
|
|
|
|
|
|
This directory contains the Isabelle sources of the seL4 behaviour
|
|
|
|
specification on the capDL abstraction level. The key features of this
|
|
|
|
abstraction level are that it models the complete protection state of the
|
|
|
|
kernel in terms of capabilities, and models, as far as possible, only the
|
|
|
|
protection state of the kernel (no memory or other state). This means, the
|
|
|
|
capDL specification contains a significantly higher degree of nondeterminism
|
|
|
|
compared to the other seL4 specs.
|
|
|
|
|
|
|
|
This specification is useful for the user-level initialiser that brings the
|
|
|
|
system from boot state into a defined protection state defined by a concrete
|
|
|
|
capDL description.
|
|
|
|
|
|
|
|
There is a refinement proof between the abstract specification and the capDL
|
|
|
|
specification in `proof/drefine/`. The capDL spec also forms the basis of the
|
|
|
|
system initialiser proofs.
|
|
|
|
|
2014-07-28 01:59:57 +00:00
|
|
|
Top-Level Theory
|
|
|
|
----------------
|
2014-07-22 23:11:43 +00:00
|
|
|
|
|
|
|
The top-level theory file in the specification is `Syscall_D`, the top-level
|
|
|
|
function in that theory is `call_kernel`.
|
|
|
|
|
|
|
|
|
2014-07-28 01:59:57 +00:00
|
|
|
Entry Points
|
|
|
|
------------
|
2014-07-22 23:11:43 +00:00
|
|
|
|
|
|
|
A key theory in the capDL spec is `Types_D` which defines a new capability
|
|
|
|
type that in addition to the seL4 capabilities contains 'virtual' capabilities
|
|
|
|
which store protection state information. For instance, the state of MMU page
|
|
|
|
tables is uniformly modelled as capabilities.
|
|
|
|
|
|
|
|
|
2014-07-28 01:59:57 +00:00
|
|
|
Building
|
|
|
|
--------
|
2014-07-22 23:11:43 +00:00
|
|
|
|
|
|
|
The corresponding Isabelle session is `DSpec`. To build, run in directory
|
|
|
|
`l4v/spec`:
|
|
|
|
|
2014-07-28 01:59:57 +00:00
|
|
|
make DSpec
|
|
|
|
|