Zinnia: A modular 64-bit Unix-like kernel written in Rust
Key takeaways
- The kernel is written in (almost) 100% Rust and attempts to avoid unsafe code where possible.
- These are Rust ELF dylibs which get loaded and linked during boot from an initrd, similar to Linux systems.
- I started this project in 2024 to learn more about systems programming, but over time it started gain more and more features.
The kernel is written in (almost) 100% Rust and attempts to avoid unsafe code where possible. It implements a big range of POSIX APIs in system calls, but also exposes common extensions found in Linux and BSDs, like epoll and timerfd. This allows it to run a somewhat modern desktop using Wayland and X11 sessions.
Most drivers are implemented as modules. These are Rust ELF dylibs which get loaded and linked during boot from an initrd, similar to Linux systems. Zinnia can boot from any UEFI based system thanks to the Limine bootloader.
I started this project in 2024 to learn more about systems programming, but over time it started gain more and more features. Today the kernel is able to boot on many real x86_64 machines. aarch64 and riscv64 support is planned, but not a priority at the moment. Fixes are always welcome!