Build Overview
This section covers building NØNOS from source. The build system is designed to be straightforward while maintaining cryptographic integrity throughout the process.
Architecture
NØNOS consists of two primary components that work together:
┌─────────────────────────────────────────────────────────────────┐
│ BUILD PIPELINE │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ nonos-boot │ │ nonos-kernel │ │
│ │ │ │ │ │
│ │ UEFI App │ │ Bare Metal │ │
│ │ x86_64-uefi │ │ x86_64-nonos│ │
│ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │
│ │ ┌───────────┐ │ │
│ │ │ Ed25519 │ │ │
│ │ │ Signing │◄──────┘ │
│ │ └─────┬─────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────────────────────────┐ │
│ │ EFI System Partition │ │
│ │ ┌─────────────┐ ┌──────────────┐ │ │
│ │ │ BOOTX64.EFI │ │ kernel.bin │ │ │
│ │ │ 300 KB │ │ 221 KB │ │ │
│ │ └─────────────┘ └──────────────┘ │ │
│ └─────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────┐ │
│ │ nonos.iso │ │
│ │ ~65 MB │ │
│ └────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘Repositories
NØNOS is split across two repositories:
Quick Start
The Makefile handles everything: toolchain verification, signing key generation, cross-compilation, and QEMU configuration.
Build Targets
make nonos
Build bootloader, kernel, prepare ESP
make run
Launch in QEMU with graphical output
make run-serial
Launch with serial console (debugging)
make debug
Launch with GDB server on :1234
make iso
Generate bootable ISO image
make clean
Remove build artifacts
Build Output
Cryptographic Signing
Every kernel binary is signed with Ed25519 before deployment:
Development builds — Makefile auto-generates
dev_signing_key.binif missingProduction builds — Set
SIGNING_KEY=/path/to/key.binenvironment variable
The bootloader embeds public keys and verifies signatures at boot time. An unsigned or incorrectly signed kernel will not execute.
Platform Support
The build system auto-detects your platform and configures paths accordingly:
Linux
System package
/usr/share/OVMF/
apt install qemu-system-x86 ovmf
macOS
Homebrew
Bundled with QEMU
brew install qemu + Xcode CLT
Windows
WSL2
Via Ubuntu
Follow Linux instructions in WSL
Toolchain Requirements
Rust nightly with
x86_64-unknown-uefitargetrust-src and llvm-tools-preview components
QEMU with OVMF/UEFI firmware
See Environment Setup for detailed installation instructions.
What's Next
Building the Kernel
Building the Bootloader
Running in QEMU
Creating Bootable Media
Booting on Hardware
Last updated
Was this helpful?


