Skip to content

An unimplemented "rust API" to mirror the seL4 manual as a rust-doc.

I started this project largely as an personal exercise of grok-ing the seL4 manual and serving as a non-authoritative resource/reference. I hope that it can also help with generating some nice ideas and discussions about what we want a functional api to look like.

Here is the repo. Clone it and run cargo doc --open as you would for any other library.

Here are some highlights

  • Interfaces to kernel objects are empty structs that implement the Capability trait. Once we have worked out a rust-idiom to safely and ergonomically manage the token-values using the type-system, we can associate that data with these structs.
  • An interface that needs a second capability to authorize a retype doesn't implement the FromUntyped trait
  • Data structs that represent the shape of the error data in a MessageInfo. (as with everything, the actual de-serialisation of the message is unimplemented)
  • ASCII diagrams ported from seL4 manual images
  • ASCII diagram I made myself (page-table structure in aarch64 module)
  • All the goodies that come with rust-doc, such as intra-doc links, markdown formatting, etc.

What this intends to be:

  • A study aid to assist someone reading the official manual.
  • An evolving document that captures design ideas and concepts of what an seL4 API might look like if implemented in rust

What this is not

  • A replacement for the official manual. This can not be emphasised strongly enough.