seL4/l4v 项目使用教程
l4v seL4 specification and proofs 项目地址: https://gitcode.com/gh_mirrors/l4/l4v
1. 项目的目录结构及介绍
seL4/l4v
项目是一个包含 seL4 微内核的形式化规范和证明的 Git 仓库。以下是项目的主要目录结构及其介绍:
- docs: 包含项目的文档,如约定、风格等。
- spec: 包含 seL4 的不同形式化规范。
- abstract: seL4 的功能抽象规范。
- sep-abstract: 配置为分离内核的简化版 seL4 的抽象规范。
- haskell: seL4 内核的 Haskell 模型,与 C 代码同步。
- machine: 这些规范的机器接口。
- cspec: 自动将 seL4 C 代码翻译成 Isabelle 的入口点。
- capDL: 抽象内存内容和具体执行行为的 seL4 规范,建模系统的保护状态。
- take-grant: 应用于 seL4 的经典 take-grant 安全模型的形式化。
- proof: seL4 的证明。
- invariant-abstract: seL4 抽象规范的不变量。
- refine: 抽象和设计规范之间的细化。
- crefine: 设计规范和 C 语义之间的细化。
- access-control: 完整性和权限限制证明。
- infoflow: 机密性和非传递性非干扰证明。
- asmrefine: seL4 二进制验证的 Isabelle/HOL 部分。
- drefine: capDL 和抽象规范之间的细化。
- sep-capDL: capDL 上的分离逻辑实例。
- capDL-api: 选定的 seL4 API 的分离逻辑规范。
- lib: 通用的证明库、证明方法和工具。
- tools: 较大的、自包含的证明工具。
- asmrefine: 二进制验证工具的通用 Isabelle/HOL 部分。
- c-parser: 从 C 到 Isabelle/HOL 中 Simpl 语言的解析器。
- autocorres: 从 C 到更高层次 Isabelle/HOL 函数的自动抽象工具。
- haskell-translator: 将 seL4 的 Haskell 原型转换为 Isabelle/HOL 中的可执行设计规范的 Python 脚本。
- misc: 杂项脚本和构建工具。
- camkes: CAmkES 组件平台在 seL4 上的初始形式化,正在进行中。
- sys-init: 基于 capDL 的 seL4 用户级系统初始化规范,带有证明。
2. 项目的启动文件介绍
seL4/l4v
项目的启动文件主要是 run_tests
脚本。该脚本用于运行项目中的证明测试。以下是启动文件的介绍:
- run_tests: 这是一个用于运行 seL4 证明测试的脚本。它确保生成的 Isabelle 规范是最新的,并且可以针对不同的架构(如 ARM、ARM_HYP、X64、RISCV64、AARCH64)运行证明。
使用方法:
L4V_ARCH=ARM ./run_tests
3. 项目的配置文件介绍
seL4/l4v
项目的主要配置文件包括 setup.md
和 Makefile
。以下是这些配置文件的介绍:
-
setup.md: 位于
docs
目录下,包含项目的软件依赖和 Isabelle 安装的详细说明。用户应按照此文件中的说明设置开发环境。 -
Makefile: 位于
l4v
目录下,用于构建和运行项目的证明。用户可以通过运行make <session-name>
来构建特定的证明会话。例如:export L4V_ARCH=ARM cd l4v/spec make ASpec
通过这些配置文件和启动文件,用户可以正确设置和运行 seL4/l4v
项目中的证明。
l4v seL4 specification and proofs 项目地址: https://gitcode.com/gh_mirrors/l4/l4v
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考