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.