Ferrite
An OS kernel, build from the ground up to be modern, clean, optimized and do it right. Written in Rust.
Ferrite aims to be a modern and optimized kernel as well as provide some advanced capabilities such as intent-aware scheduling, real-time scheduling/scheduling hints (“don’t preempt me for this long”), a namespaced VFS and more. Furthermore, Ferrite aims towards a clean design, fixing a lot of design mistakes in other kernels.
How to try it out
FerriteOS is a UEFI x86_64 kernel. The easiest way to try it is in QEMU.
Linux
- Download
ferrite_os-debug.iso(orferrite_os-release.iso, but I recommend the debug one as it gives way more output) andferrite_os-scripts.zipfrom the assets in the github release. - Unzip the scripts and go to the Linux folder:
unzip ferrite_os-scripts.zip -d ferrite_os-scripts cd ferrite_os-scripts/linux - Install the dependencies. This installs QEMU system-wide (needs sudo) and downloads OVMF next to the script:
./install-deps.sh - Start the ISO:
Put the ISO next to./run.shrun.sh. It picks upferrite_os-release.isofirst, then any otherferrite_os-*.iso. To choose one explicitly, pass the path, for example./run.sh ferrite_os-debug.iso.
Kernel output is printed to the terminal via the serial port.
Windows
- Download
ferrite_os-debug.iso(orferrite_os-release.iso, but I recommend the debug one as it gives way more output) andferrite_os-scripts.zipfrom the assets in the github release. - Unzip the scripts and open the
windowsfolder. - Double-click
install-deps.cmd. This installs QEMU via winget (needs admin approval) and downloads OVMF next to the script. - Put the ISO next to
run.cmdand double-clickrun.cmd. It picks upferrite_os-release.isofirst, then any otherferrite_os-*.iso. To choose one explicitly, runrun.cmd ferrite_os-debug.isofrom a terminal.
Other platforms
Scripts for other platforms are not available yet. You can run the ISO manually with
qemu-system-x86_64, -cdrom ferrite_os-release.iso, -m 4G and the OVMF code.fd and vars.fd
files from ovmf-prebuilt attached as pflash drives.
Thanks for trying out my project and have fun! :)
- 27 devlogs
- 129h