We have several blog posts about seL4 (and related topics) on
. Also Gernot blogs about seL4-related topics on
With regards to seL4 projects, you’ve already found our wiki page of suggested projects,
which has some ideas, but is by no means an exhaustive list.
The project to develop a POSIX environment on seL4 is great, however it’s also a huge
project to jump into. It can be broken down into smaller parts such as providing dynamic
memory management, process management, file operations, etc. However doing any of these
generally results in developing a POSIX-compatible OS model on top of the microkernel, and
that in itself is a large task (have a look at the robigalia project which is aiming to
design and develop an OS on top of seL4).
Smaller projects that provide a (relatively) more gentle introduction to seL4 include:
- platform ports (a kernel port is the first step, but also important are the various
drivers necessary to use a platform or particular board);
- support for other languages on seL4 (we mainly support C, but also have some support for
Rust, but languages like C++, Java, etc. are not well supported);
- developing useful services such as file systems (e.g. port LittleFS), web server,
database server, display server, etc.;
- developing debugging tools,
One of the best ways to figure out what to contribute is to try to build a (simple) system
based on seL4 (e.g. using CAmkES) and then make note of all the things that are difficult
or awkward to do or are missing and improve those.
More research-related topics include figuring out how to do any of the above suggestions
in a trustworthy way (i.e. in a way where there is high assurance of their correctness,
e.g. through formal verification).
How to specifically contribute depends on whether you’re working on an existing code base
(e.g. modifying kernel, CAmkES, or our existing libraries), in which case you’d contribute
as per our contribution policy, or whether you’re doing something independent, in which
case you can also host it yourself (e.g. in your own github account).