The seL4 Device Driver Framework (sDDF) aims to provide interfaces and protocols for writing and porting device drivers to run as seL4 user level programs.
The sDDF is currently under-going active research and development and is largely experimental software. For more details, please see our LionsOS Roadmap.
We are working on developing the protocols and interfaces for various device classes such as:
- Network
- Block
- Serial
- I2C
- Audio
There is a large amount of experimentation on-going for each device class, although the design for the network device class is mostly mature at this point.
The latest design documentation can be found here.
More information about the sDDF project can be found on the Trustworthy Systems website here.
- Microkit SDK 2.4.0
- GNU Make
- Clang and LLVM bintools
- Device Tree Compiler
- Python (3.10 or higher)
See the instructions below for installing the rest of the dependencies based on your machine:
On apt based Linux distributions run the following commands:
sudo apt install make clang llvm lld device-tree-compiler python3 python3-pip
pip install git+https://github.com/au-ts/microkit_acaciaIf you get error: externally-managed-environment when installing via pip, please
create a virtual environment to use with the sDDF.
python3 -m venv YOUR_VENV_NAME
source ./YOUR_VENV_NAME/bin/activate
pip install git+https://github.com/au-ts/microkit_acaciawget https://github.com/seL4/microkit/releases/download/2.4.0/microkit-sdk-2.4.0-linux-x86-64.tar.gz
tar xf microkit-sdk-2.4.0-linux-x86-64.tar.gzOn macOS, you can install the dependencies via Homebrew:
brew install llvm lld make dtc python3
pip install git+https://github.com/au-ts/microkit_acaciaIf you get error: externally-managed-environment when installing via pip, please
create a virtual environment to use with the sDDF.
python3 -m venv YOUR_VENV_NAME
source ./YOUR_VENV_NAME/bin/activate
pip install git+https://github.com/au-ts/microkit_acaciaFor Apple Silicon:
wget https://github.com/seL4/microkit/releases/download/2.4.0/microkit-sdk-2.4.0-macos-aarch64.tar.gz
tar xf microkit-sdk-2.4.0-macos-aarch64.tar.gzFor Intel:
wget https://github.com/seL4/microkit/releases/download/2.4.0/microkit-sdk-2.4.0-macos-x86-64.tar.gz
tar xf microkit-sdk-2.4.0-macos-x86-64.tar.gzThere is a Nix flake available in the repository, so you can get a development shell via:
nix developNote that this will set the MICROKIT_SDK environment variable to the SDK path
and provide Acacia, you do not need to download the Microkit SDK or install
Acacia manually.
You can find examples making use of the sDDF in the examples/ directory. Each
example has its own README for how to build and run it.
Note that some examples may have dependencies in addition to the ones listed in this README.
If you intend to work on the sDDF, please look at the documentation in docs/developing.md.