System

Architecture

The XerisOS desktop: the default wallpaper with the dock of app icons

boot/

Boot path

UEFI Legacy MBR + Stage-2 Secure Boot off A/B slots
Boot path: UEFI firmware loads BOOTX64.EFI (installer) or LIVE.EFI (live desktop); the loader reads /BOOTSLOT, boots /A/kernel.bin or /B/kernel.bin; the kernel mounts the slot's data as root and starts the desktop, which commits the slot by writing trial=0. UEFI firmware Installer EFI/BOOT/BOOTX64.EFI Live desktop EFI/BOOT/LIVE.EFI /BOOTSLOT active=A · trial=1 · tries=3 /A/kernel.bin active /B/kernel.bin inactive kernel.bin mounts /<slot>/data as / desktop commit · trial=0

src/core

Kernel

src/kernel.asm

Long mode

x86-64Kernel entryMain loop
src/core/idt.asm

IDT

InterruptsFaults
src/core/apic.c · smp.asm

APIC / SMP

SMP bring-upAP cores
src/core/mm.c · ram_alloc.asm

Memory

Physical allocatorHeap allocator
src/core/fat32.asm · fs.c · fs_journal.c

FAT32

FilesystemJournal
src/core/sched.c · scheduler.asm

Scheduler

Cooperative main loopTimer preemption gate
src/core/syscall.c · syscall_entry.asm

Syscalls

SYSCALL / SYSRETRing 3
src/core/elf.c

ELF loader

ET_EXECET_DYN · PIE
src/core/linux_compat.c

Linux compatibility layer

Linux x86-64 syscall ABIclone3seccomp BPF

src/drivers

Drivers

Device drivers by class, with their source files under src/drivers
ClassDevicesSource
NICIntel e1000 · Realtek RTL8125nic_e1000.asm · rtl_nic.c
StorageAHCI · NVMeahci.c · nvme.c
USBxHCIxhci.c
AudioIntel HDAhda.c
InputPS/2 keyboard/mouse · I2C-HID touchpadkeyboard.asm · i2c_hid.c
DisplayLinear framebuffer (UEFI GOP / VESA)video.asm
Wi-FiMediaTek MT7920 Native drivermt7920.c · mt7920_mcu.c · mt7920_wifi.c
BusPCIpci.asm · pci_cache.c
DebugSerialserial.asm

src/net · src/crypto

Network stack

Also in src/net

dhcp.c net_icmp.c sntp.c tls_server.asm tcp_listener.c firewall.c wifi.c wpa.c sae.c updater.c xeris_ed25519.c
Network stack ladder: Ethernet, ARP, IPv4, TCP/UDP, DNS, TLS 1.3, HTTP, each with its source file; TLS 1.3 uses the crypto core in src/crypto: ChaCha20-Poly1305, SHA-256, X25519 and HKDF. The stack rides the e1000, RTL8125 or MT7920 driver. HTTP http.asm · http_client.c TLS 1.3 tls13_stack.asm DNS dns.asm TCP / UDP tcp.asm · udp.asm IPv4 ipv4.asm ARP net_l2_arp.asm Ethernet ethernet.asm NIC driver e1000 · RTL8125 · MT7920 crypto core src/crypto/ ChaCha20-Poly1305 chacha20.asm · poly1305.asm SHA-256 sha256.asm X25519 x25519.asm HKDF tls_kdf.asm

src/gui · src/apps

Desktop

src/gui/window_mgr.asm · desktop.asm · ux.c

Compositor

Compositing desktop Window manager Wayland clients UEFI framebuffer
src/gui/html.asm · css_engine.c · src/gui/js · web_js.c

Browser engine

HTML + CSS engine Ported JavaScript engine Software WebGL rasterizer
src/core/linux_compat.c · syscall.c · elf.c

Linux programs

Chromium Linux build LibreOffice 26.8.0 Java 25 · Temurin OBS Studio
ARI
src/core/ari_service.c · ari_agent.c · src/apps/

On-device LLM

XerisGPT 6.6B Quantized AVX2 matmul Chat UI Tool-use agent
Model
XerisGPT 6.6B
Export
int4 · ~4.0 GB weights
KV cache
~0.8 GB
Tokenizer
30K BPE

src/net/updater.c

A/B updates

Server
updates.xerisos.com
Manifest
manifest.txt + manifest.sig
Signature
Ed25519 · public key compiled into the OS
Per file
SHA-512
Rollback
tries=0 → back to the last-good slot
Update flow: fetch manifest.txt and manifest.sig from updates.xerisos.com, verify the Ed25519 signature, write the inactive slot B, check SHA-512 per file, set /BOOTSLOT to active=B trial=1 tries=3, reboot; a healthy boot commits with trial=0, otherwise after tries reach zero the loader rolls back to slot A. update server updates.xerisos.com fetch manifest.txt + manifest.sig verify Ed25519 · pubkey compiled in write inactive slot /B/kernel.bin · /B/data/ hash SHA-512 per file /BOOTSLOT active=B · trial=1 · tries=3 reboot slot A active · last-good slot B inactive · written healthy · commit trial=0 tries=0 · rollback active=A