June 9, 2026 · 1,800 words · By Evan Allyn Schubert

I Built My Own Operating System Builder in Rust

Not a Linux distribution. Not a fork. A Rust program that generates OS profiles — bootable initramfs images with NVIDIA GPU stacks, install bundles, and per-machine fleet configurations. It's called EASOS, and it's how I manage every machine in the Schubert Empire.

Why Build an OS Builder

I have 6 machines: a CachyOS laptop (touchi), a 5070Ti Blackwell rig (thirteen), an AMD MI60 compute node, a 2x P40 CUDA box (archie), a ROCm R9700 machine (mainlin), and a tinybox orchestrator. Each runs different GPU hardware, different kernel modules, different container runtimes. Managing them individually was eating my life.

The solution: a Rust program that reads a machine profile and generates a complete OS image — kernel, initramfs, GPU drivers, container runtime, bootloader config, systemd units, and fleet registration. One command per machine. Reproducible, version-controlled, agentic.

Architecture

EASOS has three layers:

Layer 1 — Detection (eos-detect): Probes hardware — GPU vendor, VRAM, PCI topology, network interfaces, storage. Outputs a machine profile in JSON. This is the input to everything else.

Layer 2 — Build (eos-build): Takes a machine profile + a fleet role (worker, orchestrator, gaming, AI node) and generates a complete initramfs image. Handles kernel module inclusion, GPU driver selection (NVIDIA proprietary vs AMD ROCm open-source vs Intel), container runtime configuration, and fleet registration tokens.

Layer 3 — Fleet (eos-fleet): Maintains a registry of all machines, their profiles, their roles, and their current OS build hashes. When a machine's profile changes (new GPU, more RAM, different role), the fleet controller detects the drift and schedules a rebuild.

NVIDIA Stack Integration

The hard part was GPU drivers. NVIDIA's stack is notoriously picky about kernel versions, DKMS, and container runtime versions. EASOS handles this by maintaining a compatibility matrix — for each kernel version, it knows which NVIDIA driver, CUDA toolkit, and container runtime versions are compatible. The build step resolves these automatically.

Why Rust

I chose Rust for three reasons: zero-cost abstractions (the initramfs builder needs to be fast and memory-efficient), fearless concurrency (fleet operations fan out across machines in parallel), and the type system catches mistakes that would be runtime kernel panics in C.

This Is How I Ship

Every machine in the empire runs an OS built by EASOS. When I add a new GPU or change a fleet role, I run one command. When the NVIDIA stack updates, I rebuild. The entire OS lifecycle is version-controlled in git. No more snowflake machines. No more "it worked last week" debugging.

If you need custom OS infrastructure built — for a GPU cluster, an edge deployment, or an embedded system — I do this work. Hire me.