We have several blog posts about seL4 (and related topics) on https://research.csiro.au/tsblog/
. Also Gernot blogs about seL4-related topics on https://microkerneldude.wordpress.com/
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).