The graph is the init system
NumericalOS is a Linux userspace with no unit files. Every supervisable thing, every boot ordering constraint, every health rule, and every remediation path is a node in a graph. One exported file is the entire configuration.
What replaces /etc
A conventional init reads unit files. NumericalOS reads one artifact,
numos.state, produced deterministically from four graphs:
META policy what MAY run - admission, capability grants, trust roots GENESIS bring-up ordered BootPhase chain: mount, dev, net, clock, identity, join MGS steady units, derived from the ops registry rather than authored SHADOW failure health predicates, degraded-state definitions, residuals ASEC self-heal a SHADOW fire opens a swarm invocation; remediation lands back
The claim is literal rather than aspirational in one specific way: the
bootstrap's own CPU-architecture table is generated from
ArchTarget nodes. Adding an architecture is a data insert, not a code
change.
Smallest bootstrap, all chip infrastructures
Those two goals pull against each other, so the boot chain satisfies them with a floor and a fast path rather than picking one:
[kernel] -> initramfs /init = bootstrap.sh
1. mount /proc /sys /dev
2. uname -m -> canonical arch, via the generated ArchTarget table
3. prefer numinit-$ARCH (static, small)
else busybox-static-$ARCH + numinit.sh
4. sha256 verify -- FAIL-CLOSED: mismatch halts with a named reason
5. load numos.state -> verify content hash
6. exec numinit as PID 1
Nine architectures are in the registry today — x86_64, aarch64, riscv64, arm, powerpc64le, s390x, mips64el, x86, loongarch64. Where no static build is published, the busybox fallback carries that architecture. That fallback is the mechanism, not a caveat.
Fail-closed, with named reasons
An unverified init is worse than a halted machine. Every abnormal path stops and says why:
| condition | behavior |
|---|---|
| artifact or state hash mismatch | halt, named reason on console |
| unknown architecture | halt, naming the unrecognized uname -m |
| dependency cycle or dangling unit reference | halt — rejected at export, and again at boot |
phase failure, on_failure=halt | halt, naming phase and unit |
phase failure, on_failure=degrade | continue; the node advertises itself degraded |
Build it yourself
This site ships knowledge, not artifacts. There are no images here to download. Instead there are five skills that drive your agent through a build on your machine:
target-classifier
Probes your real toolchain and routes to exactly one target. Never assumes Docker exists.
build-oci
Container image for Docker, Podman, or containerd. Fastest honest feedback loop.
build-initramfs
The userspace half: a cpio whose /init is the bootstrap.
build-iso
Hybrid BIOS/UEFI media, USB-writable. Pairs a kernel with the initramfs.
verify-boot
QEMU smoke test. The only skill permitted to claim a boot — and only for what it watched.
Read the skills · the multi-agent protocol · download the bundle
Get the source
git clone https://numericalos.com/numericalos.git cd numericalos python3 -m unittest discover -s tests
Served as static files over dumb-HTTP — no forge, no account, no
server-side code. You can verify what you got against its history before running
any of it, which is the property that matters when the thing you are building
becomes PID 1. Browse it here at commit
c8f27f3.