Boot Process
How NØNOS boots from power-on to desktop
Boot Sequence
Power On
│
▼
┌─────────────────────────────────┐
│ UEFI Firmware │
│ • POST │
│ • Secure Boot check │
│ • Load BOOTX64.EFI │
└─────────────────────────────────┘
│
▼
┌─────────────────────────────────┐
│ NØNOS Bootloader │
│ 1. Security initialization │
│ 2. Hardware discovery │
│ 3. Kernel loading │
│ 4. Signature verification │
│ 5. Memory preparation │
│ 6. Exit boot services │
│ 7. Jump to kernel │
└─────────────────────────────────┘
│
▼
┌─────────────────────────────────┐
│ NØNOS Kernel │
│ 1. VGA/console setup │
│ 2. GDT/IDT initialization │
│ 3. Memory management init │
│ 4. Driver initialization │
│ 5. Self-tests │
│ 6. Scheduler entry │
└─────────────────────────────────┘
│
▼
┌─────────────────────────────────┐
│ Desktop Environment │
└─────────────────────────────────┘Bootloader Phases
Phase 1: Security Initialization
Phase 1: Security InitializationLoad Ed25519 production public keys
Self-test BLAKE3 hashing
Self-test Ed25519 verification
Check UEFI Secure Boot status
Collect hardware entropy (RDRAND)
Phase 2: Hardware Discovery
Phase 2: Hardware DiscoveryEnumerate PCI devices
Initialize graphics output (GOP)
Parse ACPI tables
Collect CPU information
Get memory map from UEFI
Phase 3: Kernel Loading
Phase 3: Kernel LoadingLoad kernel binary from ESP
Parse ELF headers
Extract
.nonos.manifestsectionExtract
.nonos.sigsection
Phase 4: Cryptographic Verification
Phase 4: Cryptographic VerificationCompute BLAKE3 hash of kernel
Verify Ed25519 signature against embedded keys
Validate manifest data
(Optional) Verify Groth16 ZK proof
Phase 5: Handoff
Phase 5: HandoffPrepare BootInfo structure
Exit UEFI boot services
Jump to kernel entry point
BootInfo Structure
Data passed from bootloader to kernel:
framebuffer
Display configuration
memory_map
Physical memory regions
acpi_rsdp
ACPI table pointer
modules
Loaded module info
boot_time
Timestamp
entropy
Hardware random seed
Magic value: 0x4E4F4E4F ("NONO")
Kernel Initialization
Early Boot
Early BootInitialize VGA text output
Set up panic handler
Load GDT (Global Descriptor Table)
Load IDT (Interrupt Descriptor Table)
Memory Setup
Memory SetupParse memory map from BootInfo
Initialize physical allocator
Set up kernel heap
Enable paging
Driver Init
Driver InitInitialize PCI bus
Set up interrupt handlers
Initialize storage (AHCI/NVMe)
Initialize network (if present)
Self-Tests
Self-TestsThe kernel runs verification:
Scheduler Entry
Scheduler EntryFinally, the scheduler starts and the system is operational.
Boot Messages
Expected serial output:
Security Verification Flow
Troubleshooting Boot
No output
UEFI not loading EFI file
"Signature invalid"
Key mismatch or corrupt kernel
Hangs after "Jumping to kernel"
Kernel panic in early init
Black screen
GPU init failed
Last updated
Was this helpful?


