Remix.run Logo
josephg a day ago

I've spent the last week starting to hand port SeL4 to rust. Mostly because I want to learn how kernels & capabilities work. This seems like a fun way to get my hands dirty with operating systems without needing to invent everything from scratch.

To be clear, there's no benefit to using rust over C for SeL4. SeL4 is formally verified - which provides a level of assurance far beyond what the rust compiler can check at compile time. I'm really just doing it for fun and learning. I've been wanting to really understand sel4 for awhile, and there's something wonderful about learning it from the ground level.

So far, I've got a stub booting. The CPU successfully boots into 64 bit mode and starts running my rust code. I'm starting with x86_64 because thats whats on my desk. At the moment I'm porting the code which locates the root process via multiboot, so I can set everything up in memory correctly.

If anyone is curious, here's the repo: https://github.com/josephg/sel4-rs

Its pretty bare bones for now, but everything starts simple!