Page cover

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:

Repository
Description
Target

Core kernel, drivers, crypto

x86_64-nonos (custom)

UEFI bootloader, verification

x86_64-unknown-uefi


Quick Start

The Makefile handles everything: toolchain verification, signing key generation, cross-compilation, and QEMU configuration.


Build Targets

Target
Description

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:

  1. Development builds — Makefile auto-generates dev_signing_key.bin if missing

  2. Production builds — Set SIGNING_KEY=/path/to/key.bin environment 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:

Platform
QEMU
OVMF
Notes

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-uefi target

  • rust-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?