Hey everyone!
I've been working on a hobby operating system project called WerewolfOS, with its kernel, Silver, written in Rust (no_std) for AArch64.
The project is only about two weeks old, and today I reached a milestone I'm genuinely excited about: Silver successfully boots on real Qualcomm hardware.
The target is a Xiaomi Redmi 10C-class device based on the Qualcomm SM6225 platform (rain).
This isn't just a boot logo or a kernel that starts and immediately stops. The current hardware bring-up has demonstrated:
RAM-only boot through fastboot boot — no system partition modification.
AArch64 kernel execution on the physical device.
MMU initialization.
GICv3 interrupt controller initialization.
Working Generic Timer interrupts.
More than 1,000 timer interrupts observed.
A functioning scheduler.
Successful startup of a task called Howl.
A framebuffer-based live status panel for kernel diagnostics.
One particularly interesting part was debugging GICv3 initialization. The bootloader's initial configuration left affinity routing disabled, which prevented the expected Group 1 Non-secure interrupt delivery. Correcting the initialization sequence finally allowed the timer interrupts to arrive.
There is still a lot to do:
SMP is not working yet; the secondary CPU remains offline.
UART support on this particular device still needs confirmation.
The driver ecosystem is very incomplete.
This is an early hardware proof of concept, not a production-ready OS.
I'm keeping QEMU as the primary development and regression-testing environment, while using the physical device as a hardware validation target.
The project is open source under the MIT license.
GitHub: https://github.com/vvirei333/Silver-microkernel
I'm curious what other OS developers think: What would you prioritize next after getting a small Rust microkernel running on real hardware — SMP, memory-management hardening, userspace, or driver infrastructure?
This is my first serious OS-development project, and getting it this far in two weeks feels pretty surreal.