Introduction

Support for Rust in seL4 userspace has been an official seL4 Foundation project since November 2023:

https://github.com/seL4/rust-sel4

The exports of this project covered in this training are:

  • Rust bindings for the seL4 API
  • A runtime for root tasks
  • Rust bindings for the seL4 Microkit API
  • A runtime for seL4 Microkit protection domains
  • Custom rustc target specifications for seL4 userspace

This training is a self-paced, hands-on tutorial that will lead you through the usage of those exports. There is more tutorial here than could be worked through during this training session, so feel to skip around.

Important: The instructor is eager to work through exercises or discuss any related issues or topic on an individual basis with you. Take advantage of the fact that this is an in-person interactive session!

Part I covers the Rust bindings for the seL4 API and the runtime for root tasks. Familiarity with the seL4 API isn't necessarily assumed or required, but this text doesn't introduce its elements in as much detail as the seL4 Manual. Please let the instructor know if you'd like an introduction or review for any seL4 API concepts or details.

Part II is much shorter, and covers the Rust language runtime for seL4 Microkit protection domains and implementation of the Microkit API. This part does assume that the reader is familiar with the basics of the Microkit framework and API, or is using a companion resource to learn about the Microkit in parallel.