Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NyxOS, rebuilt from scratch in Rust — a freestanding Multiboot kernel that boots on bare metal

     


About

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].

NyxOS-Rust booting in QEMU

NyxOS-Rust booting in QEMU — freestanding #![no_std] Rust on the VGA text buffer

Why Rust: #![no_std], no runtime, and memory safety from the borrow checker — even in a kernel. Proven in the wild by Redox OS.

Build & run

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 QEMU

The 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.

Layout

  • boot.asm — Multiboot header + entry stub that calls kmain
  • src/lib.rs — the #![no_std] Rust kernel (VGA console + panic handler)
  • .cargo/config.toml / gen_target.pybuild-std config and the target generator
  • linker.ld — links the kernel at 1 MiB, Multiboot header first
  • Makefile — build and boot

Status

Early — it boots and paints the screen. Next up: a GDT, interrupts, and a safe Writer abstraction over VGA.

About

NyxOS, rebuilt from scratch in Rust — a freestanding x86_64 OS. Part of the NyxOS family.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages