NyxOS, rebuilt from scratch in Rust — a freestanding Multiboot kernel that boots on bare metal
Part of the NyxOS family — the same OS, rebuilt from zero in a different language each time. This is the Rust cut: a #![no_std] staticlib built with build-std for a custom bare-metal x86 target, linked against a Multiboot assembly stub. kmain writes its banner to VGA text memory through write_volatile — no std, no allocator, its own #[panic_handler].
Why Rust: #![no_std], no runtime, and memory safety from the borrow checker — even in a kernel. Proven in the wild by Redox OS.
Needs Rust nightly with rust-src (for build-std), nasm, ld, and qemu.
make # build-std core -> staticlib -> nyxos-rust.elf (Multiboot verified)
make run # boot it in QEMUThe custom target (i686-nyxos.json, generated by the Makefile from the soft-float i586 target) disables SSE — a bare kernel runs with SSE off, so LLVM must not auto-vectorize into faulting instructions.
boot.asm— Multiboot header + entry stub that callskmainsrc/lib.rs— the#![no_std]Rust kernel (VGA console + panic handler).cargo/config.toml/gen_target.py—build-stdconfig and the target generatorlinker.ld— links the kernel at 1 MiB, Multiboot header firstMakefile— build and boot
Early — it boots and paints the screen. Next up: a GDT, interrupts, and a safe Writer abstraction over VGA.
