Nishi FamilyCompare › Sovereign RISC-V Emulator, Bare-Metal Boot and Minimal OS

Nishi Compare · measured, not asserted

Sovereign RISC-V Emulator, Bare-Metal Boot and Minimal OS

Nishi vs the field — every Nishi cell is measured against real organ source at emit time; each gap names the watch contract that will close it.

Nishi rv64 sim + JIT + NXE verify-then-execute boot + the composed NishiOS kernel, against the system-emulation and firmware field

Overview

The purpose, declared position and evidence coverage of this domain. Source presence and completed acceptance are different measures.

Where we are. Re-measured 2026-08-21 against buildroot, not inherited from the /compare/nishios SOTA register. THE PRIVILEGED CORE IS DONE and the SOTA page understates it on two headline cells. nx_nishios_kernel_emit composes ONE boot image that falls through RESET (M-mode UART, mtvec+stvec+medeleg) to TRAP (ecall into a real dispatcher that decodes mcause and a7, then mret) to SCHED (two tasks, SYS_YIELD, round-robin mepc swap) to TIMER (CLINT mtimecmp armed, MTIP preempts a spin) to PAGING (mret to S-mode, Sv39 root PTEs, satp on, VA load) to USER (sret to U-mode on a U-bit gigapage, ecall delegated by medeleg, sret back, exit syscall) -- each phase leaving its own serial marker and its own distinct failure marker so the gate cannot pass vacuously. Sv39 itself is nx_sv39_walk in rv64im_min_mmu.nx with gigapage, megapage and 4K leaves, and six GREEN gates around it (_mmu_gate _paging_gate _perm_gate _ubit_gate _4kpage_gate _pagefault_gate). The RV64A atomics are likewise SHIPPED AND GATED (rv64im_min_sim.nx executes the AMO family; nx_rv64_amo_gate and nx_amo_payload exercise amoadd, amoswap, amoxor and amoand in .w and .d with sign-extension teeth) -- so the atomics prerequisite the SOTA page names for SMP is already MET. The emulator underneath reaches roughly 20 MIPS interpreted and roughly 8 GIPS on a JIT hot loop, with 0 divergences over 500 differential-fuzz vectors against QEMU and 25 of 25 encodings byte-identical against GNU-as. WHAT IS ACTUALLY OPEN is the developer and scale surface, and two of those absences are PROVEN rather than assumed: nharts returns matches=0 over 22,981 files with coverage_complete=1 and corpus_complete=1 (gdbstub was proven absent the same way on 2026-08-21 and SHIPPED 2026-08-23 as runtime/nx_gdbstub.nx -- NO1: stock gdb-multiarch 15.1 attached, broke, stepped, read registers and memory against a stub-free reference and detached with the guest completing its boot; nx_gdbstub_gate 13/13 on the laptop, SKIP-for-oracle on the NAS where no gdb is installed).

Where we need to go. Make the sovereign emulator something a person outside this estate can USE and CHECK, then make it scale, then take it off the emulator. Usable and checkable comes first because those are the only two axes an outsider can judge without trusting us: a stock debugger that attaches, and the field's own published architectural conformance suite. Scale (SMP, then the hypervisor extension, and the JIT maturity that makes device-heavy guests reach the measured hot-loop throughput) comes second. Real silicon comes last and stays behind the never-brick guarantee: every boot claim today is a claim about our own emulator or about third-party firmware used as an oracle, and putting unproven code on metal is the one move this estate does not make. Throughout, the sovereign EXCEEDs are shipping criteria no rung may trade away -- bit-exact determinism, verify-then-execute never-brick loading, own toolchain bits-up, zero third-party dependency.

The unit. 1 u = one measured session-leg (organ + gate + a re-measured row). Emulator rungs are ISA-semantics class: a wrong answer is a silent wrong answer, so every accept rule below names an EXTERNAL oracle or a neg-control rather than a self-graded pass.
Cost to be checkable by an outsider: 3 u. NO1 the GDB stub plus NO3 the architectural conformance suite -- a stock debugger attaches, and the field's own test suite reports our pass count. Neither needs new ISA work.
Cost to a developer-complete emulator: 6 u. adds NO2 snapshot and restore plus NO4 MMIO inside the JIT with cross-block trace chaining: a failing machine state can be handed to someone else, and device-heavy guests stop falling off the hot path.
Cost to scale: 12 u. adds NO5 SMP multi-hart and NO6 the hypervisor extension. The atomics prerequisite is already met, so NO5 is blocked on nothing but itself.

Research bar. QEMU (the dynamic-translation and device bar) is measured on TCG block chaining, MMIO in translated code, gdbstub, snapshots, SMP, RISC-V H extension. Theirs: the emulator every rung here is measured against, and the oracle in our own 0-of-500 differential fuzz. Ours: NO1 NO2 NO4 NO5 NO6 all name a capability QEMU already has; NO1 and NO2 are the two an outsider notices first.

Research bar. Spike (the RISC-V golden reference) is measured on the reference the field checks a RISC-V behavioural emulator against, and the target the published architectural test suite is run on. Theirs: conformance is decided against Spike and the ratified ISA volumes, not against a vendor. Ours: NO3 converts our self-selected fuzz vectors into a third-party population measured on the field's own ruler.

Research bar. coreboot (the real-firmware bar) is measured on open-source firmware that owns real silicon from POST through payload handoff. Theirs: the only column in this domain that is not an emulator; it can also brick a board, which is the whole reason NO7 is last and guarded. Ours: NO7 is the guarded never-brick operator step, gated behind NO3 so nothing unproven reaches metal.

Cost to NishiOS above the emulator: 19 u more. N4: NO8 the spore image on a capability object kernel, NO9 foreign guests as routed components, NO10 swarm transport and NO11 royalty-free codecs as namespace services, NO12 compositor-or-headless as one switch, NO13 live evolution of organs in place, NO14 LLM tenancy as kernel services. 34 u cumulative = version 4.0.

Research bar. Zircon (the capability object-kernel bar) is measured on kernel objects reached only through handles carrying rights, no ambient authority and no POSIX inside the kernel [@zircon]; components are the unit of software and their capabilities are routed by the framework [@fuchsiacomp]. Theirs: the kernel shape a spore needs: nothing runs with authority it was not handed. Ours: NO8 NO9.

Research bar. Genode (the component-framework bar on capability kernels) is measured on a recursive component tree where every component is sandboxed by its parent and drivers, file systems and the GUI server are unprivileged components [@genode]. Theirs: foreign software as a guest is a routing decision, never a trust decision. Ours: NO9 NO12.

Research bar. Redox (the everything-is-a-URL microkernel bar) is measured on schemes as the namespace primitive: a resource is a URL served by a userspace daemon [@redox]. Theirs: the namespace model under which swarm transport, codecs and model seats appear as paths. Ours: NO10 NO11.

Research bar. Theseus (the live-evolving OS, OSDI 2020) is measured on cells as the unit of code and state, bounds kept at runtime by the language, and live evolution of the running system without a reboot [@theseus]. Theirs: the seed-to-forest property: an OS that grows and replaces its organs in place. Ours: NO13.

Research bar. Unikraft (the specialised-unikernel bar) is measured on a library OS composed per application from only the components the workload needs [@unikraft]. Theirs: the spore: a minimal image that is exactly one workload and nothing else. Ours: NO8.

Research bar. WebAssembly component model (the portable sandboxed-guest bar) is measured on typed interfaces between sandboxed components with capabilities passed by import, no ambient authority [@wasmcomp]. Theirs: a guest ABI that carries no authority of its own and runs on any host. Ours: NO9.

Research bar. AIOS and MemGPT (the LLM-as-OS-tenant bar) is measured on AIOS schedules agents and their context as OS resources [@aios]; MemGPT pages context between memory tiers the way an OS pages memory [@memgpt]. Theirs: what an OS owes an LLM: scheduling, memory tiers and tool routing as kernel services. Ours: NO14.

Research bar. BitTorrent BEPs (the open transport standard) is measured on the BEP index: the protocol, the DHT, the extension protocol, uTP and magnet links, all published specifications [@bepindex]. Theirs: native swarm transport is standards work and license-clean by construction. Ours: NO10.

Research bar. AV1 and Opus (the royalty-free codec bar) is measured on the AV1 bitstream and decoding process [@av1spec] and the Opus codec definition in RFC 6716 [@opus6716]: both royalty-free, both specified in public with reference vectors. Theirs: native codecs as sovereign decoders of public formats, graded against the published process. Ours: NO11.

Research bar. Wayland (the compositor protocol bar) is measured on a display protocol where the compositor owns the scene and clients render into buffers it composes [@wayland]. Theirs: GUI as one service that can be absent: headless is the same OS without the compositor. Ours: NO12.

Research bar. seL4 (the verified capability-microkernel bar) is measured on a capability kernel whose isolation and functional correctness are machine-checked proofs, with untyped memory retyped into kernel objects by the holder of the capability [@sel4docs]. Theirs: the bar a spore kernel is graded against: isolation as a proof, never a promise. Ours: NO8 NO9.

Research bar. Plan 9 (the per-process namespace bar) is measured on every resource is a file served over one protocol and each process assembles its own namespace by mounting servers into it [@plan9]. Theirs: the model under which swarm transport, codecs and model seats mount as paths in a namespace a process owns. Ours: NO10 NO11.

Latest recorded release

2026-09-04 · NO15

September 2026 SOTA for the kernel, PCIe and firmware layers admitted as DATA: 4 refs pinned (nishios.refs 13270 to 14957 B, payload 5b62a6381ad237b3), a MEASUREMENT AND ITERATION TOOLING section of 4 rows carrying 4 watch contracts (nishios.matrix 13098 to 16115 B, 889d3df75eee8744), rungs NO15-NO18 under N5 ver 5.0 (nishios.plan 22190 to 23791 B, 36ceb4dcaddae77b); settled by the size ladder, single by row-unique count

Release history and work log

Release entries describe recorded changes; they do not establish that every capability passed evaluation.

6 of 22 capabilities measured|1 of them measured exceeds|16 open|coverage 272/1000|adoption 5 full / 1 partial

Evidence profile — what the gaps on this board actually are

Measured by nx_swcompare_evidence, read back by nx_evprofile_lib. Every figure is a count with its denominator — there is deliberately no score, no grade and no percentage anywhere in this band, because a stored scalar is a field a seat can edit and a counted partition is not.

evidence|grounded 6/6|unsupported 0|gates green 6/6|proven able to fail 0/6|never bitten 6|green at 0/0 0|open gaps 16|of them unnamed 0|of them proof withheld 0|flips ready 1

proven able to fail counts the gates that have a RECORDED RED — nx_gate_bite mutated the gate subject, rebuilt it, watched the gate go red, and that record is inside the shared TTL. never bitten is its complement over the same denominator: those gates ran and were green, and nothing has ever shown them able to detect anything, so their green is a statement about this run and not about the gate. green at 0/0 is a separate and much weaker observation — the gate printed GREEN on a zero denominator, so its own tooth counter says it examined nothing. A gate can be green, non-zero, and still never bitten; that is the common case and it is now visible instead of implied.

partition: grounded + unsupported = 6 vs present 6 · named + unnamed + withheld = 16 vs open 16 · both reconcile

liar-kill conj=GPQN · all four conjuncts held

graded document: BUILDROOT tree, 16115 bytes · gates map: PRIMARY · stamped 1d 8h ago · source ../knowledge/status/evstamp_nishios.verdict

Gap classWhat it is, and the work it names
FLIP-READYA watch contract symbol is now present in the organ it named: the cell can flip on a pure data edit with no new code. These are the cheapest closures on this board and they belong before any new work.
This band reports the referee counts. The per-axis worklist rows — which axis is unsupported, which watch is ready to flip, which gap is unnamed — are printed by nx_swcompare_evidence nishios itself and are not carried on the stamp, so this page names the classes and the producer names the rows. That split is stated rather than hidden: a count without a worklist is not actionable, and this band is honest about which half of that it is.

Production map

Follow the dependencies, declared acceptance criteria and recorded priorities. Inspect source binding before treating a rank as executable work.

Ranking source binding: PLAN_MATRIX_BOUND_ONLY. Recorded priorities require current acceptance evidence and resource checks before execution.

Ranking matches the captured plan and matrix only. Latest execution outcome, research freshness, accepted delivery and investment return are unverified.

Recorded priority estimates

Order from nx_compare_rank (nx_dr_ocm: (deficit + cost-of-delay + option + enables) x sponsor x self-sufficiency x momentum / cost). FINISH rows are rungs whose symbol is present but whose organ is short of full adoption: listed before new work by this heuristic. Priority is not measured delivery cost or execution readiness. Stamp: # asof=1789563086 domain=nishios target_version=1.0 rungs=18 done=2 open=16 finish=1 ranker=nx_dr_ocm

#StageRungPriorityDerivation
FFINISHArchitectural compliance suite (NO3) rvc_run_suiteREGISTERED-DARKcallable, authorised, completed MCP invocation not established by supplied journal window; lifetime history unknown (direct execution may be recorded elsewhere; this scan does not establish lifetime use); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked)
#11.0Machine snapshot and restore (NO2) snap_save_state600v=3 m=2 c=10
#21.0MMIO inside the JIT and cross-block trace chaining (NO4) jit_mmio_trace100v=2 m=1 c=20
#3laterPK, KEK, db and dbx are inventoried with expiry dates and diffed against a baseline, writing nothing (NO17) nb_fwvar_inventory300v=3 m=1 c=10
#4laterSMP multi-hart execution (NO5) smp_step_harts266v=8 m=1 c=30
#5laterSpore image on a capability object kernel (NO8) nk_cap_handle233v=7 m=1 c=30
#6laterLMS or SLH-DSA verification passes the published NIST vectors and refuses a forged one (NO18) nb_hbs_verify200v=3 m=1 c=15
#7laterRISC-V hypervisor (H) extension (NO6) hyp_vs_enter166v=5 m=1 c=30
#8laterReal-silicon POST and firmware handoff (NO7) rsp_post_handoff133v=2 m=2 c=30
#9laterA named handler preserves, freezes and retrieves one resource class, and a failed freeze refuses the whole handover (NO15) nk_liveupdate_handler133v=2 m=1 c=15
#10laterNative swarm transport as a namespace service (NO10) nk_swarm_scheme100v=2 m=1 c=20
#11laterForeign guests as routed components (NO9) nk_guest_route66v=2 m=1 c=30
#12laterLive evolution: organs replaced in place (NO13) nk_cell_swap66v=2 m=1 c=30
#13laterThe bind path records device evidence and emits one of three named states, never refusing by default (NO16) nk_device_evidence66v=1 m=1 c=15
#14laterCompositor or headless as one switch (NO12) nk_compositor50v=1 m=1 c=20
#15laterNative royalty-free codecs as services (NO11) nk_codec_svc33v=1 m=1 c=30
#16laterLLM tenancy: scheduling, memory tiers and tool routing as kernel services (NO14) nk_llm_tenant33v=1 m=1 c=30

Declared roadmap — contract, acceptance, executor, effort

RungCloses withDefinition of done (pre-declared)ExecutorEst.
GDB remote-serial stub (NO1)gdbstub_serveABSENCE PROVEN before filing (grep gdbstub over buildroot/runtime *.nx, matches=0, 22,980 files, coverage_complete=1 corpus_complete=1). Speak the GDB remote serial protocol over a socket: read and write the 32 registers and guest memory, set and clear breakpoints, single-step, continue. ACCEPT: a stock gdb attaches to a running guest, breaks at an address the disassembler independently resolved, steps, reads a register whose value a separate path derived, and detaches leaving the guest running -- plus a NEG-CONTROL that a breakpoint at an address never executed does NOT stop. The oracle is a third-party debugger, so this rung cannot be self-graded.Organ1.5 u
Machine snapshot and restore (NO2)
after NO1
snap_save_stateSerialize the whole machine (registers, CSRs, guest RAM, device state, and the instruction count) and restore it exactly. Determinism already gives us the hard half: the state is reproducible, what is missing is writing it down. ACCEPT: snapshot at step N, run to step N+K recording the transcript, restore the snapshot, run K steps again, and the two transcripts are BYTE-IDENTICAL -- with a neg-control that a snapshot with one mutated byte restores to a DIFFERENT transcript rather than being silently accepted.Organ1 u
Architectural compliance suite (NO3)rvc_run_suiteRun the published RISC-V architectural test suite and publish our pass count PER TEST GROUP, never as one percentage. This is the rung that replaces a self-selected sample with a third-party population -- our 0-of-500 differential fuzz is grade-1 corroboration but the harness and the vectors are both ours. ACCEPT: per-group pass and total published on this domain page beside Spike as the reference target, AND a known-failing case must FAIL before any pass count is quoted (the vacuous-suite control). The suite is fetched and pinned before the first run so the corpus is a fixed, citable population.Organ1.5 u
MMIO inside the JIT and cross-block trace chaining (NO4)jit_mmio_traceThe JIT bails to the interpreter at every device access and re-dispatches at every basic-block edge, so device-heavy and call-heavy guests never reach the measured hot-loop throughput. Emit device accesses as calls into the MMIO path from translated code, and chain blocks so a taken branch jumps straight to the next translation. ACCEPT: a device-heavy workload measured BEFORE and AFTER shows the interpreter-bail count fall to zero on the traced path and the throughput move toward the hot-loop figure, AND the differential fuzz against QEMU stays at 0 divergences -- a JIT that is faster and wrong is a miscompile, so the equivalence result is the tooth, not the speed number.Organ2 u
SMP multi-hart execution (NO5)smp_step_hartsABSENCE PROVEN before filing (grep nharts over buildroot/runtime *.nx, matches=0, 22,981 files, coverage_complete=1 corpus_complete=1). N harts stepping with per-hart CSRs and CLINT software interrupts, sharing one guest memory through the atomics that ALREADY SHIP -- correcting the SOTA page, which names atomics as the unmet prerequisite. ACCEPT: a two-hart guest that takes a spinlock built on the shipped AMO instructions completes a contended critical section with the invariant intact, and a NEG-CONTROL run with the atomic replaced by a plain load-store must CORRUPT the invariant. A test that passes without real contention has proven nothing.Organ3 u
RISC-V hypervisor (H) extension (NO6)
after NO5
hyp_vs_enterVS and HS modes with two-stage address translation, so a guest hypervisor can run inside ours and the field's nested-virtualization stress cases become reachable. ACCEPT: a guest in VS-mode faults through both translation stages to a physical page derived by an independent walk, and a neg-control with the second-stage PTE invalidated takes the correct guest-page fault rather than silently succeeding.Organ3 u
Real-silicon POST and firmware handoff (NO7)
after NO3
rsp_post_handoffThe guarded never-brick operator step, and the only rung here that leaves the emulator. Today every boot claim is a claim about our own silicon model or about third-party firmware used as an oracle. ACCEPT: the image reaches userland on a real board with the never-brick genesis gate GREEN on every firmware-write node in the path, the write path proven reversible BEFORE the first write, and an operator present -- and the rung REFUSES to run if NO3 has not published a conformance pass count, because unproven code does not go on metal. Wrong-in-the-direction-of-doing-nothing by construction.Organ3 u

Milestones

MilestoneRungsCumulative
N0 · Checkable by an outsider (debugger + conformance)NO1,NO33 u
N1 · Developer-complete emulator (snapshot + JIT maturity)NO2,NO46 u
N2 · Scale (SMP + virtualization)NO5,NO612 u
N3 · Off the emulator: real siliconNO715 u
RungCloses withDefinition of done (pre-declared)ExecutorEst.
Spore image on a capability object kernel (NO8)nk_cap_handleThe boot image nx_nishios_kernel_emit composes gains kernel objects reached only through handles with rights, so a task holds exactly the authority it was handed [zircon] and the image carries only the organs its workload needs [unikraft]. ACCEPT: a task without the handle to a device cannot reach it, and the NEG-CONTROL is an unhanded access that FAULTS with the object named rather than silently succeeding; the image byte count is published beside the workload it serves.Organ3 u
Foreign guests as routed components (NO9)
after NO8
nk_guest_routeA foreign binary (a Linux-class guest or a WebAssembly component) runs as a child component whose every capability is routed by its parent, never ambient [fuchsiacomp] [genode] [wasmcomp]. ACCEPT: a guest that asks for a capability its parent did not route is REFUSED by name, and the NEG-CONTROL is the same guest with the route present, which succeeds; a Chrome-class application is the target guest and it never sees the sovereign surface.Organ3 u
Native swarm transport as a namespace service (NO10)
after NO8
nk_swarm_schemeBEP 3, the DHT and the extension protocol as an unprivileged service exposed as a path in the Redox scheme shape [redox] [bepindex], composed from the estate's existing torrent organs. ACCEPT: a torrent fetched through the path verifies every piece hash and REFUSES a corrupted piece with the piece index named (the neg-control), and the service runs headless and under the compositor alike.Organ2 u
Native royalty-free codecs as services (NO11)
after NO10
nk_codec_svcAV1 and Opus decode as sovereign services on the same namespace [av1spec] [opus6716], composed from the estate's video and audio organs. ACCEPT: a published conformance vector decodes bit-exact against the reference output, and the NEG-CONTROL is a corrupted bitstream refused with the frame named; no third-party decoder is linked, forked or shelled.Organ3 u
Compositor or headless as one switch (NO12)
after NO8
nk_compositorA Wayland-shaped compositor service that owns the scene while clients render into buffers [wayland], and headless is the same image without it [genode]. ACCEPT: the same boot image reaches userland with and without the compositor, a client that renders into a buffer is shown on the framebuffer under the compositor, and headless it is REFUSED by name rather than crashing.Organ2 u
Live evolution: organs replaced in place (NO13)
after NO8
nk_cell_swapTheseus-shaped cells: a running organ replaced by a new build with its state carried across, no reboot [theseus]. ACCEPT: a service swapped for a new build keeps serving and its transcript over a deterministic workload is BYTE-IDENTICAL before and after the swap, and the NEG-CONTROL is a swap with a mismatched state layout, which is REFUSED with the field named.Organ3 u
LLM tenancy: scheduling, memory tiers and tool routing as kernel services (NO14)
after NO9,NO13
nk_llm_tenantAn LLM seat is a scheduled tenant whose context pages between memory tiers and whose tool calls route through the capability system [aios] [memgpt]; the no-float engine is the first tenant. ACCEPT: two seats share the engine under the scheduler with per-seat memory bounds enforced, and the NEG-CONTROL is a seat over its bound, which is PAGED to the next tier and never OOM-killed; every tool call a tenant makes is a routed capability visible in the ledger.Organ3 u

Milestones

MilestoneRungsCumulative
N4 · NishiOS above the emulator: spore to forestNO8,NO9,NO10,NO11,NO12,NO13,NO1434 u
RungCloses withDefinition of done (pre-declared)ExecutorEst.
A named handler preserves, freezes and retrieves one resource class, and a failed freeze refuses the whole handover (NO15)nk_liveupdate_handlerDONE-RULE PRE-DECLARED 2026-09-04. One resource class round-trips through a fixed-format blob [linux-luo26]; a control handler whose freeze fails must cause the ENTIRE handover to be refused, and nothing is re-materialised.Organ3 u
The bind path records device evidence and emits one of three named states, never refusing by default (NO16)
after NO15
nk_device_evidenceDONE-RULE PRE-DECLARED 2026-09-04. BOUND-ATTESTED, BOUND-UNATTESTED or REFUSED [pci-tsm26]; a device with no measurement must bind UNATTESTED, not be refused; a device whose measurement contradicts the reference must be REFUSED.Organ3 u
PK, KEK, db and dbx are inventoried with expiry dates and diffed against a baseline, writing nothing (NO17)nb_fwvar_inventoryDONE-RULE PRE-DECLARED 2026-09-04. Read-only by construction under never-brick [secureboot-expiry26]; the organ's syscall set is proven to contain no firmware write; a machine still on the 2011 certificates must be named in the diff.Organ2 u
LMS or SLH-DSA verification passes the published NIST vectors and refuses a forged one (NO18)nb_hbs_verifyDONE-RULE PRE-DECLARED 2026-09-04. Verification only, never signing [opentitan26]; every NIST known-answer vector verifies; a single flipped bit in a vector must be refused.Organ3 u

Milestones

MilestoneRungsCumulative
N5 · September 2026 SOTA: what a from-scratch OS must now do at the kernel, PCIe and firmware layers, admitted read-only under never-brickNO15,NO16,NO17,NO1811 u
Ladder verdict. NOT DECLARED. This board names no dated best-in-class or frontier target and no rung roles (sotatarget and rungrole rows on its plan); the ranker labels it NO-LADDER until it does, and until then its rungs climb toward a target nobody has written down. Bars: 0 (fresh 0, attested 0, stale 0, unattested 0), verdict NO-BAR against the current month 2026-09.

Inspect a rung and its prerequisites

Declared nodes 18. Rank input binding: PLAN_MATRIX_BOUND_ONLY. Dependency order is authored. Implementation, acceptance evidence, authority and resource readiness are unverified. No action is recommended or dispatched here.

Plan SHA-256 9fc616c42232433f3bd4e2c7870a3c86c015aeb6ab8f10ab4ffb282ec261896f. Target rows 0; role rows 0. Existing risks and release worklog retain their own scope; no node completion is inferred.

Use Enter or Space on a rung to inspect its contract. Prerequisite links locate another rung in this list; open its summary to inspect it. Estimates are authored effort, not forecasts.

  1. NO1 — GDB remote-serial stub

    Prerequisites: None declared; this does not establish execution eligibility.

    Contract: gdbstub_serve

    Acceptance: ABSENCE PROVEN before filing (grep gdbstub over buildroot/runtime *.nx, matches=0, 22,980 files, coverage_complete=1 corpus_complete=1). Speak the GDB remote serial protocol over a socket: read and write the 32 registers and guest memory, set and clear breakpoints, single-step, continue. ACCEPT: a stock gdb attaches to a running guest, breaks at an address the disassembler independently resolved, steps, reads a register whose value a separate path derived, and detaches leaving the guest running -- plus a NEG-CONTROL that a breakpoint at an address never executed does NOT stop. The oracle is a third-party debugger, so this rung cannot be self-graded.

    Authored effort: 1.5. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  2. NO2 — Machine snapshot and restore

    Prerequisites: NO1 (acceptance unverified)

    Contract: snap_save_state

    Acceptance: Serialize the whole machine (registers, CSRs, guest RAM, device state, and the instruction count) and restore it exactly. Determinism already gives us the hard half: the state is reproducible, what is missing is writing it down. ACCEPT: snapshot at step N, run to step N+K recording the transcript, restore the snapshot, run K steps again, and the two transcripts are BYTE-IDENTICAL -- with a neg-control that a snapshot with one mutated byte restores to a DIFFERENT transcript rather than being silently accepted.

    Authored effort: 1. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  3. NO3 — Architectural compliance suite

    Prerequisites: None declared; this does not establish execution eligibility.

    Contract: rvc_run_suite

    Acceptance: Run the published RISC-V architectural test suite and publish our pass count PER TEST GROUP, never as one percentage. This is the rung that replaces a self-selected sample with a third-party population -- our 0-of-500 differential fuzz is grade-1 corroboration but the harness and the vectors are both ours. ACCEPT: per-group pass and total published on this domain page beside Spike as the reference target, AND a known-failing case must FAIL before any pass count is quoted (the vacuous-suite control). The suite is fetched and pinned before the first run so the corpus is a fixed, citable population.

    Authored effort: 1.5. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  4. NO4 — MMIO inside the JIT and cross-block trace chaining

    Prerequisites: None declared; this does not establish execution eligibility.

    Contract: jit_mmio_trace

    Acceptance: The JIT bails to the interpreter at every device access and re-dispatches at every basic-block edge, so device-heavy and call-heavy guests never reach the measured hot-loop throughput. Emit device accesses as calls into the MMIO path from translated code, and chain blocks so a taken branch jumps straight to the next translation. ACCEPT: a device-heavy workload measured BEFORE and AFTER shows the interpreter-bail count fall to zero on the traced path and the throughput move toward the hot-loop figure, AND the differential fuzz against QEMU stays at 0 divergences -- a JIT that is faster and wrong is a miscompile, so the equivalence result is the tooth, not the speed number.

    Authored effort: 2. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  5. NO5 — SMP multi-hart execution

    Prerequisites: None declared; this does not establish execution eligibility.

    Contract: smp_step_harts

    Acceptance: ABSENCE PROVEN before filing (grep nharts over buildroot/runtime *.nx, matches=0, 22,981 files, coverage_complete=1 corpus_complete=1). N harts stepping with per-hart CSRs and CLINT software interrupts, sharing one guest memory through the atomics that ALREADY SHIP -- correcting the SOTA page, which names atomics as the unmet prerequisite. ACCEPT: a two-hart guest that takes a spinlock built on the shipped AMO instructions completes a contended critical section with the invariant intact, and a NEG-CONTROL run with the atomic replaced by a plain load-store must CORRUPT the invariant. A test that passes without real contention has proven nothing.

    Authored effort: 3. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  6. NO6 — RISC-V hypervisor (H) extension

    Prerequisites: NO5 (acceptance unverified)

    Contract: hyp_vs_enter

    Acceptance: VS and HS modes with two-stage address translation, so a guest hypervisor can run inside ours and the field's nested-virtualization stress cases become reachable. ACCEPT: a guest in VS-mode faults through both translation stages to a physical page derived by an independent walk, and a neg-control with the second-stage PTE invalidated takes the correct guest-page fault rather than silently succeeding.

    Authored effort: 3. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  7. NO7 — Real-silicon POST and firmware handoff

    Prerequisites: NO3 (acceptance unverified)

    Contract: rsp_post_handoff

    Acceptance: The guarded never-brick operator step, and the only rung here that leaves the emulator. Today every boot claim is a claim about our own silicon model or about third-party firmware used as an oracle. ACCEPT: the image reaches userland on a real board with the never-brick genesis gate GREEN on every firmware-write node in the path, the write path proven reversible BEFORE the first write, and an operator present -- and the rung REFUSES to run if NO3 has not published a conformance pass count, because unproven code does not go on metal. Wrong-in-the-direction-of-doing-nothing by construction.

    Authored effort: 3. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  8. NO8 — Spore image on a capability object kernel

    Prerequisites: None declared; this does not establish execution eligibility.

    Contract: nk_cap_handle

    Acceptance: The boot image nx_nishios_kernel_emit composes gains kernel objects reached only through handles with rights, so a task holds exactly the authority it was handed [@zircon] and the image carries only the organs its workload needs [@unikraft]. ACCEPT: a task without the handle to a device cannot reach it, and the NEG-CONTROL is an unhanded access that FAULTS with the object named rather than silently succeeding; the image byte count is published beside the workload it serves.

    Authored effort: 3. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  9. NO9 — Foreign guests as routed components

    Prerequisites: NO8 (acceptance unverified)

    Contract: nk_guest_route

    Acceptance: A foreign binary (a Linux-class guest or a WebAssembly component) runs as a child component whose every capability is routed by its parent, never ambient [@fuchsiacomp] [@genode] [@wasmcomp]. ACCEPT: a guest that asks for a capability its parent did not route is REFUSED by name, and the NEG-CONTROL is the same guest with the route present, which succeeds; a Chrome-class application is the target guest and it never sees the sovereign surface.

    Authored effort: 3. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  10. NO10 — Native swarm transport as a namespace service

    Prerequisites: NO8 (acceptance unverified)

    Contract: nk_swarm_scheme

    Acceptance: BEP 3, the DHT and the extension protocol as an unprivileged service exposed as a path in the Redox scheme shape [@redox] [@bepindex], composed from the estate's existing torrent organs. ACCEPT: a torrent fetched through the path verifies every piece hash and REFUSES a corrupted piece with the piece index named (the neg-control), and the service runs headless and under the compositor alike.

    Authored effort: 2. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  11. NO11 — Native royalty-free codecs as services

    Prerequisites: NO10 (acceptance unverified)

    Contract: nk_codec_svc

    Acceptance: AV1 and Opus decode as sovereign services on the same namespace [@av1spec] [@opus6716], composed from the estate's video and audio organs. ACCEPT: a published conformance vector decodes bit-exact against the reference output, and the NEG-CONTROL is a corrupted bitstream refused with the frame named; no third-party decoder is linked, forked or shelled.

    Authored effort: 3. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  12. NO12 — Compositor or headless as one switch

    Prerequisites: NO8 (acceptance unverified)

    Contract: nk_compositor

    Acceptance: A Wayland-shaped compositor service that owns the scene while clients render into buffers [@wayland], and headless is the same image without it [@genode]. ACCEPT: the same boot image reaches userland with and without the compositor, a client that renders into a buffer is shown on the framebuffer under the compositor, and headless it is REFUSED by name rather than crashing.

    Authored effort: 2. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  13. NO13 — Live evolution: organs replaced in place

    Prerequisites: NO8 (acceptance unverified)

    Contract: nk_cell_swap

    Acceptance: Theseus-shaped cells: a running organ replaced by a new build with its state carried across, no reboot [@theseus]. ACCEPT: a service swapped for a new build keeps serving and its transcript over a deterministic workload is BYTE-IDENTICAL before and after the swap, and the NEG-CONTROL is a swap with a mismatched state layout, which is REFUSED with the field named.

    Authored effort: 3. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  14. NO14 — LLM tenancy: scheduling, memory tiers and tool routing as kernel services

    Prerequisites: NO9 (acceptance unverified), NO13 (acceptance unverified)

    Contract: nk_llm_tenant

    Acceptance: An LLM seat is a scheduled tenant whose context pages between memory tiers and whose tool calls route through the capability system [@aios] [@memgpt]; the no-float engine is the first tenant. ACCEPT: two seats share the engine under the scheduler with per-seat memory bounds enforced, and the NEG-CONTROL is a seat over its bound, which is PAGED to the next tier and never OOM-killed; every tool call a tenant makes is a routed capability visible in the ledger.

    Authored effort: 3. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  15. NO15 — A named handler preserves, freezes and retrieves one resource class, and a failed freeze refuses the whole handover

    Prerequisites: None declared; this does not establish execution eligibility.

    Contract: nk_liveupdate_handler

    Acceptance: DONE-RULE PRE-DECLARED 2026-09-04. One resource class round-trips through a fixed-format blob [@linux-luo26]; a control handler whose freeze fails must cause the ENTIRE handover to be refused, and nothing is re-materialised.

    Authored effort: 3. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  16. NO16 — The bind path records device evidence and emits one of three named states, never refusing by default

    Prerequisites: NO15 (acceptance unverified)

    Contract: nk_device_evidence

    Acceptance: DONE-RULE PRE-DECLARED 2026-09-04. BOUND-ATTESTED, BOUND-UNATTESTED or REFUSED [@pci-tsm26]; a device with no measurement must bind UNATTESTED, not be refused; a device whose measurement contradicts the reference must be REFUSED.

    Authored effort: 3. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  17. NO17 — PK, KEK, db and dbx are inventoried with expiry dates and diffed against a baseline, writing nothing

    Prerequisites: None declared; this does not establish execution eligibility.

    Contract: nb_fwvar_inventory

    Acceptance: DONE-RULE PRE-DECLARED 2026-09-04. Read-only by construction under never-brick [@secureboot-expiry26]; the organ's syscall set is proven to contain no firmware write; a machine still on the 2011 certificates must be named in the diff.

    Authored effort: 2. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

  18. NO18 — LMS or SLH-DSA verification passes the published NIST vectors and refuses a forged one

    Prerequisites: None declared; this does not establish execution eligibility.

    Contract: nb_hbs_verify

    Acceptance: DONE-RULE PRE-DECLARED 2026-09-04. Verification only, never signing [@opentitan26]; every NIST known-answer vector verifies; a single flipped bit in a vector must be refused.

    Authored effort: 3. Executor kind: Organ. Responsible, accountable and verifier not established. Inspect retained worklog.

Learning and practice paths

No structured learning path is declared for this plan. Existing research, roadmap and worklog remain available above.

Capability comparisons

Compare the field, search individual capabilities and open their source and adoption evidence. Documented presence does not establish comparative quality.

Position map — centrality and distinctiveness

The four-quadrant map the field uses for brand strategy (Dawar and Bagga, HBR June 2015), re-derived from this matrix on every publish. Centrality is the share of the category's feature mass a player covers, each feature weighted by how many hold it; distinctiveness is the average lead over each rival on the rows the player holds; breadth is the depth-weighted share of the whole matrix (the bubble); depth is how deeply the rows held are held; momentum is the day-over-day move off the spine (green rising, red falling, grey until day two); the dashed path runs first day → previous day → today. Dividers are the category means. Axes are fitted to the field of play, so read the tick numerals, not the frame. Rival marks are documented presence, so a rival's position reads the record, never its quality. The picture grades its own readability below; the table beside it is the same data for a screen reader or a second method.

Views. 2D cut: centrality, distinctiveness · 3D cube: centrality, distinctiveness, breadth · axes registered: centrality, distinctiveness, breadth, depth, momentum · a board picks its own in knowledge/compare/nishios.cdmap (cut|x|y, cube|x|y|z); absent = the HBR defaults
Position map, two-dimensional cutOne bubble per player. Bubble area is breadth, the ring colour is momentum, the dashed lines are the category means, and both axes are fitted to the field of play with their tick numerals shown. Every value is repeated in the table that follows. 0 200 400 600 800 1000 300 350 400 450 500 550 600 650 centrality (permil, fitted 0–1000) distinctiveness (permil, fitted 300–650) mean 612 mean 440 Unconventional Aspirational Peripheral Mainstream Nishi, centrality 612, distinctiveness 361, breadth 196, depth 722, momentum 0 QEMU, centrality 870, distinctiveness 583, breadth 393, depth 962, momentum 0 Spike, centrality 709, distinctiveness 347, breadth 227, depth 833, momentum 0 gem5, centrality 774, distinctiveness 357, breadth 257, depth 809, momentum 0 coreboot, centrality 96, distinctiveness 555, breadth 75, depth 555, momentum 0 Nishi QEMU Spike gem5 coreboot

bubble area = breadth · ring = momentum (green rising, red falling, grey until day two) · dashed = category means · axes fitted to the field of play: centrality 0–1000, distinctiveness 300–650 of 0–1000 permil (the full range put every player in one corner)
readability of the 2D cut, self-graded by the layout ruler: label overlaps 0 · labels over marks 0 · off-canvas 0 · unresolved labels 0 · mark overlaps 0 (a fact of the data: two players that close are that close) · data spread 724 permil of the plot · quadrant words unseated 0
text contrast, measured with wcag2-ratio (floors from contrast.conf), light theme: labels 16.24 (floor 4.50) · notes 16.24 (floor 4.50) · quadrant words 5.89 (floor 4.50) · tick numerals 5.89 (floor 4.50) · axis titles 5.59 (floor 4.50) · dark theme: labels 13.78 (floor 4.50) · quadrant words 5.55 (floor 4.50) · axis titles 5.97 (floor 4.50) · dark classes under their floor 0 (one figure serves both themes: a dark shortfall is a token to fix, never a class to hide) · classes refused under their floor 0 (a refused class is not drawn; the scale classes are measured, never hidden) · export: SVG PNG (receipt, rendered by the estate's own rasteriser from this page)
Position map, three-dimensional cubeThe same players in an isometric cube. Each axis is fitted to its own field of play and carries numerals on the floor grid and the vertical axis; each bubble drops a dotted line to its floor shadow so height reads as height. Values are in the table that follows. 0 200 400 600 800 1000 300 350 400 450 500 550 600 650 0 100 200 300 400 500 centrality distinctiveness breadth Nishi: centrality 612, distinctiveness 361, breadth 196 coreboot: centrality 96, distinctiveness 555, breadth 75 Spike: centrality 709, distinctiveness 347, breadth 227 gem5: centrality 774, distinctiveness 357, breadth 257 QEMU: centrality 870, distinctiveness 583, breadth 393 Nishi QEMU Spike gem5 coreboot
axes fitted: centrality 0–1000 · distinctiveness 300–650 · breadth 0–500 permil · farther bubbles are painted first, nearer ones over them · the floor shadow is each bubble's (x, y) at height 0
readability of the 3D cube, self-graded by the layout ruler: label overlaps 0 · labels over marks 0 · off-canvas 0 · unresolved labels 0 · mark overlaps 1 (a fact of the data: two players that close are that close) · data spread 387 permil of the plot
Position map, small multiplesEvery pair of registered axes as one small cut. Each panel fits both axes to the field of play, the dashed lines are the category means, bubble area is breadth and the ring colour is momentum; the legend below names the colours. 0 1000 300 650 distinctiveness vs centrality Nishi: centrality 612, distinctiveness 361 QEMU: centrality 870, distinctiveness 583 Spike: centrality 709, distinctiveness 347 gem5: centrality 774, distinctiveness 357 coreboot: centrality 96, distinctiveness 555 0 1000 0 500 breadth vs centrality Nishi: centrality 612, breadth 196 QEMU: centrality 870, breadth 393 Spike: centrality 709, breadth 227 gem5: centrality 774, breadth 257 coreboot: centrality 96, breadth 75 0 1000 500 1000 depth vs centrality Nishi: centrality 612, depth 722 QEMU: centrality 870, depth 962 Spike: centrality 709, depth 833 gem5: centrality 774, depth 809 coreboot: centrality 96, depth 555 0 1000 480 520 momentum vs centrality Nishi: centrality 612, momentum 500 QEMU: centrality 870, momentum 500 Spike: centrality 709, momentum 500 gem5: centrality 774, momentum 500 coreboot: centrality 96, momentum 500 300 650 0 500 breadth vs distinctiveness Nishi: distinctiveness 361, breadth 196 QEMU: distinctiveness 583, breadth 393 Spike: distinctiveness 347, breadth 227 gem5: distinctiveness 357, breadth 257 coreboot: distinctiveness 555, breadth 75 300 650 500 1000 depth vs distinctiveness Nishi: distinctiveness 361, depth 722 QEMU: distinctiveness 583, depth 962 Spike: distinctiveness 347, depth 833 gem5: distinctiveness 357, depth 809 coreboot: distinctiveness 555, depth 555 300 650 480 520 momentum vs distinctiveness Nishi: distinctiveness 361, momentum 500 QEMU: distinctiveness 583, momentum 500 Spike: distinctiveness 347, momentum 500 gem5: distinctiveness 357, momentum 500 coreboot: distinctiveness 555, momentum 500 0 500 500 1000 depth vs breadth Nishi: breadth 196, depth 722 QEMU: breadth 393, depth 962 Spike: breadth 227, depth 833 gem5: breadth 257, depth 809 coreboot: breadth 75, depth 555 0 500 480 520 momentum vs breadth Nishi: breadth 196, momentum 500 QEMU: breadth 393, momentum 500 Spike: breadth 227, momentum 500 gem5: breadth 257, momentum 500 coreboot: breadth 75, momentum 500 500 1000 480 520 momentum vs depth Nishi: depth 722, momentum 500 QEMU: depth 962, momentum 500 Spike: depth 833, momentum 500 gem5: depth 809, momentum 500 coreboot: depth 555, momentum 500
Nishi QEMU Spike gem5 coreboot
10 panels over 5 registered axes, every pair once (the lower axis on x, the higher on y) · each panel fitted to its own field of play, first and last tick numerals shown · no labels in a small cut, the legend names the colours; the grade below reports the mark terms only (MM summed over the panels, spread averaged)
readability of the small multiples, self-graded by the layout ruler: label overlaps 0 · labels over marks 0 · off-canvas 0 · unresolved labels 0 · mark overlaps 2 (a fact of the data: two players that close are that close) · data spread 579 permil of the plot
PlayerQuadrantcentralitydistinctivenessbreadthdepthmomentumRows heldDays on spineFirst seen
NishiMainstream6123611967220 since 2026-09-15622026-09-15
QEMUAspirational8705833939620 since 2026-09-15922026-09-15
SpikeMainstream7093472278330 since 2026-09-15622026-09-15
gem5Mainstream7743572578090 since 2026-09-15722026-09-15
corebootUnconventional96555755550 since 2026-09-15322026-09-15
DayMatrix rows reviewedPlayers recorded
2026-09-15225
2026-09-16225

players 5|matrix rows 22|feature mass 31|centrality mean 612|distinctiveness mean 440|axes 5|spine days 2 (shown 2)|rows written today 0|readability defects 2D 0 cube 0|spine knowledge/status/cdmap/nishios.spine

How this is scored. Every Nishi mark is measured: the generator reads the real organ source on disk and requires the implementing symbol to exist (no self-grading). A watching tag names the organ and symbol contracted to close a gap — the mark flips itself on the next compare beat when that workstream ships, and the comparewatch- plane row flips with it. A dark tag means the organ file EXISTS but does not declare the contracted symbol: something shipped there under another name, and until the contract is repointed to the real entry point (the plan rung and this row) or the function is renamed, that capability is invisible to this board — a build lost to darkness, named so it is not. The flip is necessary, not sufficient: it proves the symbol exists, never that the capability is good. The bar is the rung's pre-declared done-rule, proven by its gate — a symbol shipped without the behaviour behind it is a defect, and the flip is exactly what makes that defect visible instead of quiet. Competitor marks record documented capability presence — presence, not depth or scale. Adoption is measured too: every measured row carries where its organ stands on the estate's ladder (source → built → promoted → registered → invoked; libraries by importer reach minus validation importers; gates by the execution surfaces that run them). A row is fully adopted only at the top of its ladder; anything short is tagged partial with the exact remedy, so a build nobody promoted can no longer read as shipped. Census stamps: importers asof 1789497476, gate census asof 1789498715 (unix seconds; -1 = census absent).

Capability matrix — measured against source

leads / measured exceed present partial absent · click any capability for its evidence

CapabilityNishiQEMUSpikegem5coreboot
LIVE
Behavioral RV64IM system emulator (own silicon model)Measured: nx_rv64im_sim_run exists in runtime/_hdl_build/rv64im_min_sim.nx, verified at emit. The step interpreter every other row is measured on; QEMU-TCG and Spike are the throughput and golden-reference bars. Validated 0 divergences over 500 differential-fuzz vectors against QEMU rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=40 nonval=26 — fully adopted (top of its ladder).
Pros Nishi has it, measured on disk; ahead of coreboot; fully adopted on the estate ladderCons behind QEMU (leads), Spike (leads)
RV64 to x86-64 JIT (dynamic binary translation)Measured: jit_compile exists in runtime/_hdl_build/nx_rv64_jit.nx, verified at emit. Emits real x86-64 per instruction with a register-allocating variant (jit_compile_ra) and guest-memory bounds checks; QEMU-TCG is the only rival with dynamic translation in this column set. MMIO and cross-block chaining are the open half -- see the GAP row rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=17 nonval=4 — fully adopted (top of its ladder).
Pros Nishi has it, measured on disk; ahead of Spike, gem5, coreboot; fully adopted on the estate ladderCons behind QEMU (leads)
Sv39 paging with S and U privilege enforcementMeasured: nx_sv39_walk exists in runtime/_hdl_build/rv64im_min_mmu.nx, verified at emit. RE-MEASURED 2026-08-21 and the SOTA cell is STALE: three-level walk with gigapage, megapage and 4K leaves, U-bit and SUM enforcement, X-on-fetch and R-on-load permission faults, accessed and dirty bits, all with named neg-controls. Six gates GREEN. QEMU Spike and gem5 remain the completeness bar for the wider privileged spec rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=8 nonval=6 — fully adopted (top of its ladder).
Pros Nishi has it, measured on disk; ahead of coreboot; fully adopted on the estate ladderCons behind QEMU (leads), Spike (leads), gem5 (leads)
Verify-then-execute never-brick loaderMeasured exceed: nxe_load_exec in runtime/nx_nxe_lib.nx, verified at emit. EXCEED and alone in this column set: the NXE loader re-derives the payload integrity sum and checks the capability and never-brick bits BEFORE mapping anything executable, and refuses rather than jumping. Witnessed printing its own refusal on real TianoCore firmware Adoption: LIB-WIRED importers=4 nonval=4 — fully adopted (top of its ladder).
Pros Nishi leads, a measured exceed; ahead of QEMU, Spike, gem5, coreboot; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth)
GAP
GDB remote-serial stub (breakpoints, step, registers)Measured: gdbstub_serve exists in runtime/nx_gdbstub.nx, verified at emit. SHIPPED 2026-08-23 as nx_gdbstub (gdbstub_serve) -- the organ path here is re-keyed from the 08-21 placeholder nx_rv64_gdbstub.nx to the file that shipped, so the measured contract can flip; the symbol is the one the contract named. GDB Remote Serial Protocol over rv64im_min_sim: target.xml served (riscv:rv64 x0-x31+pc), loopback port 0 read back via getsockname and announced in a ready file, m/M RAM-only through the sim's own Sv39 xlate, breakpoint bitmap over RAM (no cap), all sizes derived from the regfile constants. ORACLE WITNESSED (nx_gdbstub_gate 13/13 GREEN on the laptop with stock gdb-multiarch 15.1): gdb attached at the reset pc, broke at the decoder-resolved first executed store 0x8000003c, read x6=0x4e equal to a stub-free reference sim, stepped to 0x80000040, read memory equal to the image file bytes, detached and the guest completed the boot with transcript==golden; neg-controls: a breakpoint at a never-executed RAM address did NOT stop (guest exited under gdb), a bad-checksum frame was NAKed. Bite-proven: nx_gate_bite killed a compiling mutant; a breakpoint-blind mutant failed T3/T4 while T8 kept passing. On the NAS the gate runs the sovereign protocol teeth and reports the stock-gdb leg as a MISSING PRECONDITION (no gdb installed there) -- SKIP, never a pass. Laptop and NAS builds are byte-identical (142,030 B sha 361f6da6) rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: RUN-BY:fork:nx_gdbstub_gate — fully adopted (top of its ladder).
Pros Nishi has it, measured on disk; ahead of coreboot; fully adopted on the estate ladderCons behind QEMU (leads), gem5 (leads)
Machine snapshot and restoreOpen — watching runtime/_hdl_build/nx_rv64_gdbstub.nx : snap_save_state, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. No way to save and resume a machine, so a long boot must be re-run from reset every time and a failing state cannot be handed to anyone else. Deterministic replay already gives us the hard half -- the state is reproducible; what is missing is serializing it rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them
watching snap_save_state
Pros none measured yetCons behind QEMU (leads), gem5; open contract, nothing on disk yet
Architectural compliance suite (third-party conformance)Measured: rvc_run_suite exists in runtime/nx_rvc_run_suite.nx, verified at emit. The differential fuzz against QEMU is grade-1 external corroboration but it is OUR harness choosing OUR vectors. The published RISC-V architectural test suite is the field's own ruler and Spike is its reference target; running it converts a self-selected sample into a third-party population. LANDED 2026-08-23 (nx_rvc_run_suite on rv64im_min_sim, riscv-arch-test 2.7.4 pinned, Spike-generated references, gcc oracle-assembled): per-group PASS/total, never one percentage -- I 42/42, M 13/13, C 28/28, Zifencei 1/1, privilege 0/12 (SUITE 84 pass, 10 fail, 2 unsupported of 96; partition sums; witness bench/riscv-arch-test/nishios_NO3_local_witness.txt sha bd44f202, pin sha 971aeead). nx_rvc_gate GREEN 5/5 with a known-failing corrupt-signature control (an always-PASS comparator mutant reads RED 3/5). The first run read I 40/42 C 27/28 and found one REAL sim defect, FIXED the same day: RV64 SRAI immediate with shamt>=32 decoded as SRLI because alu_select tested funct7==0x20 while shamt[5] occupies funct7 bit 0 (srai-01 + c.srai-01 flipped to PASS; register sra-01 had always passed). The other first-run failure, jal-01, was the CORPUS BUILD not the sim: assembling the I group with rv64imac made the assembler emit 294,905 two-byte c.nops where the Spike references were generated from the suite Makefile march rv64i (4-byte nops), and jal-01 signs a label distance; rebuilt with the suite own per-group march and it PASSES. The privilege group is the honest residual: misaligned loads/stores/branches do not trap (got 0 where the handler should have written deadbeef) and ecall/ebreak do not complete under the test harness rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: REGISTERED-DARK — PARTIAL: callable, authorised, completed MCP invocation not established by supplied journal window; lifetime history unknown (direct execution may be recorded elsewhere; this scan does not establish lifetime use); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked).
not adopted: callable, authorised, completed MCP invocation not established by supplied journal window; lifetime history unknown (direct execution may be recorded elsewhere; this scan does not establish lifetime use); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked)
Pros Nishi has it, measured on disk; ahead of corebootCons behind Spike (leads); not adopted yet: callable, authorised, completed MCP invocation not established by supplied journal window; lifetime history unknown (direct execution may be recorded elsewhere; this scan does not establish lifetime use); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked)
MMIO inside the JIT and cross-block trace chainingOpen — watching runtime/_hdl_build/nx_rv64_jit_mmio.nx : jit_mmio_trace, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. The JIT bails to the interpreter at any device access and re-dispatches at every basic-block edge, so device-heavy and call-heavy guests never reach the measured hot-loop throughput. QEMU-TCG chains blocks and handles MMIO in translated code; this is the named JIT-maturity bet on the SOTA page rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them
watching jit_mmio_trace
Pros none measured yetCons behind QEMU (leads); open contract, nothing on disk yet
SMP multi-hart executionOpen — watching runtime/_hdl_build/nx_rv64_smp.nx : smp_step_harts, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. ABSENCE PROVEN: grep nharts over buildroot/runtime *.nx returned matches=0 across 22,981 files with coverage_complete=1 and corpus_complete=1. CORRECTION to the SOTA page: the atomics prerequisite it names is already MET (see the header), so SMP is blocked on nothing but itself rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them
watching smp_step_harts
Pros none measured yetCons behind QEMU (leads), Spike, gem5 (leads); open contract, nothing on disk yet
RISC-V hypervisor (H) extensionOpen — watching runtime/_hdl_build/nx_rv64_hyp.nx : hyp_vs_enter, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. No VS or HS mode and no two-stage translation, so we cannot host a guest hypervisor or run the nested-virtualization workloads the field uses as a stress case. Needs SMP first to be worth having rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them
watching hyp_vs_enter
Pros none measured yetCons behind QEMU (leads), Spike, gem5; open contract, nothing on disk yet
Real-silicon POST and firmware handoffOpen — watching runtime/_hdl_build/nx_boot_realsilicon.nx : rsp_post_handoff, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. The guarded never-brick operator step: every boot claim we make today is a claim about our own emulator or about someone else's firmware acting as an oracle. coreboot is the only column here that owns real silicon from POST. Gated by conformance -- do not put unproven code on metal rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them
watching rsp_post_handoff
Pros none measured yetCons behind coreboot (leads); open contract, nothing on disk yet
Spore image on a capability object kernelOpen — watching runtime/nx_nishios_cap.nx : nk_cap_handle, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Kernel objects reached only through handles with rights, no ambient authority [zircon], the image carrying only the organs its workload needs [unikraft]. Rival: Zircon and Unikraft, not the emulator columns
watching nk_cap_handle
Pros none measured yetCons open contract, nothing on disk yet
Foreign guests as routed componentsOpen — watching runtime/nx_nishios_guest.nx : nk_guest_route, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. A Linux-class guest or a WebAssembly component runs as a child whose every capability is routed by its parent [fuchsiacomp] [genode] [wasmcomp]; a Chrome-class application is the target guest. Rival: Fuchsia components, Genode, the component model
watching nk_guest_route
Pros none measured yetCons open contract, nothing on disk yet
Native swarm transport as a namespace serviceOpen — watching runtime/nx_nishios_swarm.nx : nk_swarm_scheme, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. BEP 3, DHT and the extension protocol as an unprivileged service on a path [bepindex] [redox], composed from the estate torrent organs. Rival: Redox schemes
watching nk_swarm_scheme
Pros none measured yetCons open contract, nothing on disk yet
Native royalty-free codecs as servicesOpen — watching runtime/nx_nishios_codec.nx : nk_codec_svc, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. AV1 and Opus decode as sovereign services graded against the published decoding process [av1spec] [opus6716]; no third-party decoder linked, forked or shelled
watching nk_codec_svc
Pros none measured yetCons open contract, nothing on disk yet
Compositor or headless as one switchOpen — watching runtime/nx_nishios_compositor.nx : nk_compositor, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. A Wayland-shaped compositor that owns the scene [wayland]; headless is the same image without it. Rival: Wayland compositors, the Genode GUI server
watching nk_compositor
Pros none measured yetCons open contract, nothing on disk yet
Live evolution: organs replaced in placeOpen — watching runtime/nx_nishios_cell.nx : nk_cell_swap, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Theseus-shaped cells replaced at runtime with state carried across [theseus]; transcript byte-identical before and after the swap. Rival: Theseus
watching nk_cell_swap
Pros none measured yetCons open contract, nothing on disk yet
LLM tenancy as kernel servicesOpen — watching runtime/nx_nishios_tenant.nx : nk_llm_tenant, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Scheduling, memory tiers and tool routing for an LLM seat as kernel services [aios] [memgpt]; the no-float engine is the first tenant. Rival: AIOS, MemGPT
watching nk_llm_tenant
Pros none measured yetCons open contract, nothing on disk yet
Preserve, freeze and retrieve over one resource classDARK — runtime/_hdl_build/nx_nishios_kernel_emit.nx EXISTS but does not declare nk_liveupdate_handler: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. WATCH nk_liveupdate_handler. The unit of hitless replacement moved from the process to the KERNEL: the Live Update Orchestrator merged for Linux 6.19, released 2026-02-08 [linux-luo26]. Done when an organ registers a named handler for ONE resource class, serialises its state to a fixed-format blob, refuses the whole handover if ANY handler's freeze fails, and re-materialises the resource by name in any order on the far side -- bite-proven with a control where one handler's freeze fails and the handover must be refused entire.
watching nk_liveupdate_handler
Pros none measured yetCons open contract, nothing on disk yet
Device evidence in the bind path with three named statesDARK — runtime/_hdl_build/nx_nishios_kernel_emit.nx EXISTS but does not declare nk_device_evidence: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. WATCH nk_device_evidence. An OS must now authenticate and encrypt the link to its own PCIe devices: the PCI TSM core merged for 6.19 [pci-tsm26], confidence MEDIUM-HIGH. Done when, before binding, the driver path records device identity plus whatever measurement the device can produce, compares against a reference-value file, and emits BOUND-ATTESTED, BOUND-UNATTESTED or REFUSED as three named states -- and does NOT refuse by default, because this estate's own law is that a guard refusing a legitimate case is a false-positive generator.
watching nk_device_evidence
Pros none measured yetCons open contract, nothing on disk yet
Firmware-variable inventory and diff, read-only by constructionDARK — runtime/_hdl_build/nx_neverbrick_genesis.nx EXISTS but does not declare nb_fwvar_inventory: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. WATCH nb_fwvar_inventory. Every shipped machine's Secure Boot trust anchors expire in 2026 -- KEK CA 2011 on 2026-06-24 and UEFI CA 2011 on 2026-06-27 [secureboot-expiry26] -- and both dates are already PAST. Done when an organ READS PK, KEK, db and dbx and reports the certificates present with their expiry dates, writing nothing, and diffs against a banked baseline so a machine that has not taken the 2023 certificates is named. Read-only by construction is what satisfies never-brick; only after that census may any write path be discussed, and not by this row. Exceed claimed narrowly: a census that can run on every machine the estate boots and can brick none of them.
watching nb_fwvar_inventory
Pros none measured yetCons behind coreboot; open contract, nothing on disk yet
Hash-based signature verifier for the boot chainDARK — runtime/_hdl_build/nx_neverbrick_genesis.nx EXISTS but does not declare nb_hbs_verify: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. WATCH nb_hbs_verify. An auditable root of trust is now PURCHASABLE: OpenTitan shipping in production silicon, announced 2026-03-04 [opentitan26]. Done when LMS or SLH-DSA VERIFICATION -- never signing -- exists as a sovereign organ proven against published NIST test vectors. Verification-only is the right first unit: stateless, no key-management hazard, and it is the operation the boot path actually performs.
watching nb_hbs_verify
Pros none measured yetCons behind coreboot; open contract, nothing on disk yet
Rival-claim provenance. Every Yes, Best or Part mark in a rival column is a claim about someone else's product. rows with rival marks 12 · cited 2 · uncited 10. A cited row carries a reference mark that resolves to a pinned mirror (the refs gate measures that); an uncited row is an observation read and is badged in its evidence until a reference lands. The badge is the receipt, never the proof: a mark proves a mirror exists, not that the mirror supports the code.

Delivery and evidence

Inspect risks, technical debt, rendered observations, experiments and references. Read scope and limitations alongside every result.

Release history and work log

The worked plan, on the board. Every leg appends what it measured, landed, retracted, learned and left queued, per rung, so a crash leaves the next seat a ledger here rather than a transcript to mine. Kinds: measure, land, retract, lesson, queue. Newest last.
WhenRungKindEntry
2026-09-02NO8landseL4 documentation and the Plan 9 papers mirrored and pinned on retry through alternate hosts (docs.sel4.systems over TLS 1.3; doc.cat-v.org over the TLS 1.2 leg); the seL4 home page still fails the 1.2 client leg (t12-incomplete-flight) and is not cited; refs now 14 of 15
2026-09-02NO8queueoperator brief 2026-09-02 landed as data: bars Zircon, Genode, Redox, Theseus, Unikraft, WebAssembly components, AIOS and MemGPT, BitTorrent BEPs, AV1 and Opus, Wayland; rungs NO8 to NO14 under N4 (version 4.0); 12 of 15 references mirrored and pinned through nx_research_fetch; seL4 (About and the manual) and the Plan 9 paper failed on the sovereign TLS 1.2 client leg (t12-incomplete-flight, status 0) and wait on alternate mirrors
2026-09-02NO8lessona bar is a mirror or it is nothing: three fetches returned status 0 and are NOT cited; a reference nobody fetched is a fabrication, so seL4 stays out of the refs until a mirror lands

Risk register

RiskLikelihood x impactMitigation
A JIT or SMP change silently miscompiles the guestpossible x catastrophicEvery ISA-semantics rung re-runs the differential fuzz against QEMU and must hold 0 divergences; a speed result with a nonzero divergence count is a regression, not a win.
A conformance number gets read as marketinglikely x mediumPublish pass and total PER TEST GROUP with the known-failing control shown, never one percentage, and pin the suite corpus before the first run so the population cannot drift under the number.
Real-silicon work bricks a boardpossible x catastrophicNO7 is gated behind NO3, requires the never-brick genesis gate GREEN on every firmware-write node, requires the write path to be proven reversible before the first write, and requires an operator. It refuses rather than proceeding on any unmet precondition.
A watch contract flips on a stub carrying the right namepossible x highThe flip is the receipt, never the proof: each rung's accept rule above names an EXTERNAL oracle (a stock gdb, the published architectural suite, the QEMU differential) or a neg-control that a stub cannot satisfy.

Release history continued

WhenRungKindEntry
2026-09-03NO12queueOPERATOR 2026-09-03 (carried on the gpu and gameengine goal rows): NishiOS and the Nishi browser are where the game stack is sovereign -- present and vsync owned by this compositor (gpu GP10 gpu_present_compositor is the same contract seen from the GPU board), no vendor UMD gating VRAM (gpu GP9), no store gating install (gameengine GE46). The third-party browser door is the final mile, measured the same day on /world/beach at WebGL2 default with WebGPU levered and cross-origin isolation paid but unconsumed; this rung is the door where those browser limits stop applying, and the same world bytes must open here without a store.
2026-09-04NO15landSeptember 2026 SOTA for the kernel, PCIe and firmware layers admitted as DATA: 4 refs pinned (nishios.refs 13270 to 14957 B, payload 5b62a6381ad237b3), a MEASUREMENT AND ITERATION TOOLING section of 4 rows carrying 4 watch contracts (nishios.matrix 13098 to 16115 B, 889d3df75eee8744), rungs NO15-NO18 under N5 ver 5.0 (nishios.plan 22190 to 23791 B, 36ceb4dcaddae77b); settled by the size ladder, single by row-unique count
2026-09-04NO15measurereferee nx_compare_refs_gate 24/24 GREEN fleet-wide after the append (job 1788557920): pins 1369 of 1369 matched, unresolved 0, uncited 0; all 4 keys cited inline
2026-09-04NO17lessonevery firmware-touching row is READ-ONLY BY CONSTRUCTION under never-brick: NO17 inventories PK, KEK, db and dbx and writes nothing, and its done-rule includes proving the organ's syscall set contains no firmware write. The Secure Boot 2011 CA expiry dates (2026-06-24 and 2026-06-27) are already PAST, so the census is the urgent unit; any write path is a separate operator decision this board does not take
2026-09-04NO15queuebuild order by the board's columns: NO17 firmware inventory first (cheapest, the only row with an exceed), then NO18 HBS verification against the NIST vectors, then NO15 liveupdate handler, then NO16 device evidence which depends on it
On these two registers. Rows are declared in the domain's plan file and carry the debt id, which is the join key back to the sovereign debt plane — that plane, not this page, is the authority on state. Reconciling them automatically (the regen reading the plane and refreshing these rows) is a named, owed rung; until it lands, treat an id here as a pointer to look up, not a status to trust.

SOTA field — 8 peers, 30 axes, measured bindings

The Nishi sovereign rv64 emulator + never-brick NXE boot loader (nx_boot_run_sov) vs QEMU / Spike / gem5 / Bochs / Unicorn / Firecracker / Renode / coreboot

How the field is scored. A state-of-the-art comparison across the FULL competitor field: quantitative axes carry measured or published numbers (Nishi’s column is measured on this estate, competitor columns are researcher-sourced and cited in the note); grade axes carry Best / Yes / Part / No for every peer. A Nishi grade may be bound to an organ and a symbol and is then re-measured on every publish by the one symbol ruler the capability matrix above uses; an over-claim refuses to publish.
field, strip order:QEMUSpikegem5BochsUnicornFirecrackerRenodecoreboot·BestYesPartNo

ISA and execution

RV64I base integer

nx_rv64im_sim + nxc RV64 backend, exhaustively verified on our own emu; QEMU/Spike/gem5 are the ISA bar [riscv-isa-ratified]

YES
RV64M multiply and divide

full mul/mulh/div/rem with exact RV64 semantics, fuzz-validated; present, not best-in-class

YES
RV64C compressed

nx_rvc_expand decodes the C extension

YES
RV64 A / F / D atomic and float

no-float = the measured determinism exceed bet (doctrine); A-atomics = SMP prerequisite, filed F107h; QEMU/Spike/gem5 lead

NO
Privileged M / S / U modes

Nishi models M-mode CSR + CLINT only (partial); full S/U paging is the QEMU/Spike bar

PART
Multi-ISA guests (x86 / ARM / etc)

honest gap: RV64 only; QEMU/gem5/Unicorn are multi-ISA

NO

Performance

Interpreter throughput (MIPS)

behavioral step-interpreter measured by nx_emu_bench; QEMU-TCG leads by 1-2 orders [bellard2005]

QEMU ~500 (TCG)Spike ~100gem5 ~1-5Bochs ~50Unicorn ~100Firecracker nativeRenode ~10coreboot n/a

~20
Nishi, measured
JIT / dynamic binary translation

nx_rv64_jit emits real x86-64 (reg-alloc + intra-block control flow + guest memory); QEMU-TCG is the bar [bellard2005]

YES
JIT hot-loop throughput (GIPS)

measured ~100x over our interpreter on a hot loop; native/QEMU-TCG class

QEMU ~2-10Spike n/agem5 n/aBochs n/aUnicorn ~1-5Firecracker nativeRenode n/acoreboot n/a

~8
Nishi, measured
SMP / multicore

honest gap: single-core RV64IM (declared envelope); QEMU/gem5/Firecracker lead [lowepower2020]

NO
Hardware acceleration (KVM / HVF)

honest gap: pure software sim, no host-CPU accel; QEMU-KVM/Firecracker lead [agache2020]

NO

Devices

virtio device models

rv64im_min_virtio: real split-virtqueue blk/net/rng, drove real entropy end-to-end [virtio-oasis13]

YES
UART / CLINT / PLIC

16550 UART + SiFive CLINT + M-mode timer; Renode/QEMU are the device bar

YES
Full peripheral breadth

honest partial: a focused device set (UART/virtio/nvme/gpu-model), not QEMU/Renode breadth [renode]

PART
Device-tree (FDT) discovery

nx_hw_discover parses the real QEMU DTB (13 devices at real addresses), no hardcoded list

YES
GDB / debug stub

LANDED 2026-08-27, and this cell was published as No until 2026-08-28: gdbstub_serve (nx_gdbstub.nx:773) is a GDB remote-serial stub over the sovereign rv64 sim -- g/G/p/P registers, m/M memory, Z0 breakpoints, single-step, Ctrl-C interrupt and qXfer target.xml -- and its accept rule is an EXTERNAL ORACLE: stock gdb-multiarch 15.1 attaches and steps, nx_gdbstub_gate 13/13 GREEN. Graded Yes and not Best because SNAPSHOT is still absent and QEMU, gem5 and Renode still lead on watchpoints and multi-arch breadth.

YES
Snapshot / live migration

honest gap: no VM snapshot or migration; QEMU/Firecracker lead

NO
Graphical framebuffer / display out

rv64im_min_gpu is a command-ring model, no real display output (partial)

PART

Boot and firmware

Bare-metal boot (reset vector to userland)

boots POST to mount+replay to verify+execute /sbin/init on OUR silicon model; a genuine strength. EVIDENCE (this cell carried none until 2026-08-14): the loader half is WITNESSED ON REAL FIRMWARE, not modelled -- an ESP with no kernel file made real TianoCore/OVMF print our literal NXE! refusal and HOLD rather than jump blindly. A boot claim that has only ever run inside our own emulator is a claim about the emulator; this one has touched third-party firmware

BEST
Verify-then-execute never-brick loader

EXCEED: NXE SHA-256 integrity gate refuses tampered code BEFORE it executes; no emulator does this

BEST
Real-silicon POST / firmware handoff

honest gap: guarded never-brick operator step, refused-by-construction in sim; coreboot is the real-firmware bar [coreboot-docs]

NO
UEFI boot support

nx_boot_uefi models the memmap/handoff in-sim (partial); QEMU/coreboot boot real UEFI [uefi-spec]

PART

Determinism and sovereignty

Bit-exact determinism

EXCEED: replayable bit-for-bit. EVIDENCE (MEASURED against an external reference): 0 divergences across 500 fuzz vectors versus QEMU. That number was already written in this cell and was still refused by the liar-kill, correctly -- it named no instrument and no date, so nothing told a reader whether it was measured or remembered. It is a differential result against a third-party emulator, which is grade-1 external corroboration rather than self-scoring, and integer-only execution is WHY it is reachable: there is no float nondeterminism to average away

BEST
Differential-fuzz validated vs reference

our stack is validated AGAINST QEMU/GNU-as as oracles; they are the reference, we prove equivalence [spike-isa-sim]

QEMU referenceSpike referencegem5 selfBochs selfUnicorn selfFirecracker n/aRenode selfcoreboot n/a

0/500 vs QEMU + 25/25 vs GNU-as
Nishi, measured
Record and replay

deterministic replay BY CONSTRUCTION (no rr-style instrumentation needed); QEMU rr-class is opt-in. EVIDENCE (MEASURED 2026-08-14 note, same instrument as the determinism axis): replay is only meaningful if two runs actually agree, and that is the 0-divergence-in-500 differential against QEMU. By-construction is the mechanism -- integer-only execution with no float and no wall-clock in the state -- and the fuzz result is the evidence that the mechanism holds rather than merely being intended

BEST
Own toolchain bits-up (no gcc / llvm)

EXCEED and alone: nxc to nxasm to RV64, zero external compiler in the whole chain. EVIDENCE (this cell carried none until 2026-08-14): the chain compiles ON THE NAS over the mgmt API with build-over-API GREEN since 2026-07-06, and the compiler SELF-HOSTS with nx_cc_equiv_gate running 10/10 plus a self-host stage before any toolchain promotion. Bits-up is checkable by rebuilding the compiler with itself, which is what that gate does

BEST
Zero third-party dependency

EXCEED and alone: own language, assembler, emulator, TLS, store; competitors lean on gcc/llvm/glibc/host libs. EVIDENCE (MEASURED 2026-08-13): a return-42 static ELF out of this toolchain is 188 bytes with --no-crash-guard and 5,105 bytes with the default crash guard. A binary that size cannot contain a libc -- which converts zero-third-party from a list of things we avoid into a number a reader can re-measure

BEST

Safety, scale and size

Never-brick by construction

EXCEED: nx_neverbrick_genesis gate RED-flags any unguaranteed firmware-write node; coreboot (real firmware) can brick

BEST
Sandbox-contained privileged code

dangerous guest code runs against virtual hardware; a bug crashes the sim, never the host (proven with hostile guests)

YES
Core size (KB)

whole sovereign OS+emu core; about 1616x smaller than Puppy Linux

QEMU ~50000Spike ~2000gem5 ~100000Bochs ~10000Unicorn ~5000Firecracker ~5000Renode ~50000coreboot ~1000

~189
Nishi, measured
8 competitors30 axes4 quantitativeNishi best 7 · absent 6
Honest verdict. Nishi is a small, sovereign, behavioral RV64IM emulator that boots bare-metal payloads on its own silicon model (not QEMU) and reaches QEMU-TCG-class throughput on hot loops via its own RV64-to-x86 JIT (~20 MIPS interp to ~8 GIPS JIT, ~100x). It leads, and on several axes is alone: bit-exact determinism (0/500 differential-fuzz divergences vs QEMU, 25/25 encodings byte-identical vs GNU-as), a verify-then-execute never-brick NXE loader (SHA-256 refuse-on-tamper before any code runs), an own toolchain bits-up (nxc to RV64, no gcc/llvm), and zero third-party dependency. Its OS maturity is honestly measured: every software-reachable OS capability is FULL (nx_os_census GREEN 3/3), and the 3 remaining PARTIALs are all hardware-gated (real MMU/CR3, live-GPU BAR, real-silicon POST) and guarded never-brick -- the census refuses to claim the OS is complete. Where it is under SOTA that is filed work, never design (operator law: less-than-SOTA is never design): no A/F/D extensions (A-atomics = the SMP prerequisite -> F107h; no-float itself is the MEASURED determinism exceed bet, not a gap excuse), single-core (SMP -> F107g), no KVM-class hardware accel (after JIT maturity -> F107f), narrower device breadth and no snapshot (-> F107i; the GDB STUB ITSELF LANDED 2026-08-27 -- gdbstub_serve at nx_gdbstub.nx:773, accept rule met by stock gdb-multiarch 15.1), and real-silicon POST = the guarded never-brick operator step (-> F002 ULX3S / F103d). Every sub-SOTA axis is a frontier rung with an owner — the climb is the design. RV64 focus is the sovereign mission target (multi-ISA guest emulation is out of mission — stated, not excused). The frontier bets, flagged for research: JIT maturity (MMIO-inside-JIT, cross-block trace chaining, JALR calls), RV64 SMP, and real-silicon POST on 3rd-party metal. Core is ~189 KB (about 1616x smaller than Puppy Linux).
Honest verdict. Ranker-feeder view of the domain the SOTA register at /compare/nishios renders in full against nine columns. Re-measured 2026-08-21: the privileged core is DONE (M/S/U, Sv39 paging, trap dispatcher, round-robin scheduler, CLINT timer preemption, U-mode ecall via medeleg, all in one composed boot image) and so are the RV64A atomics, both of which the SOTA page still publishes as gaps. What is genuinely open is the DEVELOPER and SCALE surface: no snapshot (proven absent; the GDB stub SHIPPED 2026-08-23 as nx_gdbstub, oracle-witnessed with stock gdb), no third-party architectural conformance run, no MMIO inside the JIT and no cross-block trace chaining, no SMP, no hypervisor extension, and no real-silicon POST. The order those land in is toolchain.plan's sibling question and nishios.plan answers it: debuggable and conformant first, because those are the two axes an outsider can check.

Person · product · place — not yet measured for this domain

Every compare carries this layer. Declare knowledge/compare/nishios.ppp (rows surface|nishi or c1..c4|label|url|connect naming OUR live surface and each rival's front door), run nx_ppp_probe domain nishios, and this section fills itself on the next beat: the same ruler on both sides — privacy and CX (third-party hosts, tracker classes, cookies, security headers), design and longevity (design hygiene, computed WCAG contrast, render-blocking resources, unsized media, script weight, theme and motion queries), findability (landmarks, skip link, on-site search, breadcrumb, headings, internal links).

The field — discovered, not chosen

Rows written by nx_field_discover from nishios.seeds: the industry's own lists (Wikipedia wikitext, GitHub topics, awesome lists) read mechanically, every candidate counted across seeds. The matrix columns above are a SEAT'S pick; this band is the population they were picked from, and the stats line measures one against the other. A rival here is a lead, never a verdict — it earns a column when its capabilities are read and pinned.

field|seeds=1|scanned=1|fetched=1|reused=0|failed=0|named=1|candidates=1|mentions=1|capped=0 rival|coreboot|1|1|col3-coreboot|https://doc.coreboot.org/|named
RankRivalSeedsMentionsFirst seedKindLink
1coreboot11col3-corebootnamedhttps://doc.coreboot.org/

field candidates 1|shown 1 of 1|matrix columns in the field 1 of 4|discovered rivals with no column 0|malformed rows 0 (counted, never rendered)|read-capped 0

Gaps from the record — what the estate does that no board carries

The record census (nx_goalmap record) reads the invoked-tool population and every plan queue row and files each organ or directive that NO matrix, plan or gates row names. A row here is a callout the boards missed: adjudicate it onto a board or declare it infrastructure. Census state BLIND (age 79826 s), sources read 4 of 7 declared — a BLIND census is a FLOOR: unread sources can only add rows.

kindnameboardsourceevidence

rows shown 0|this board's directives 0|estate-wide un-boarded organs 492 (listed in full on /compare/ecosystem)|census rows 611|malformed 0 (counted, never rendered)

References

Beyond a link list. Every reference below resolves twice — the publisher's copy and, where banked, the estate's own non-rottable library mirror with a content pin — and carries its evidence class plus the exact claim on this page it grounds. Keyed marks like [key] in the matrix notes jump here. A dash means honestly absent, never assumed.
  1. [bellard2005] Bellard, F. QEMU, a Fast and Portable Dynamic Translator. USENIX Annual Technical Conference, FREENIX Track, 2005. publisher · read in our library knowledge/fetched/cmp_nishios_bellard2005.pdf · pin h991b59bf531b58bef88948367c78ce22d753b73d44c2b217a0d7abac67d31710 · accessed 2026-08-18 · published-paperGrounds: The QEMU column and the JIT / dynamic binary translation and Interpreter throughput (MIPS) rows: QEMU-TCG dynamic translation is the bar nx_rv64_jit is graded against (~8 GIPS hot-loop vs the ~2-10 GIPS TCG class), and QEMU is the oracle in the Differential-fuzz validated vs reference row (0/500 divergences).
  2. [riscv-isa-ratified] RISC-V International. Ratified RISC-V ISA Specifications: Unprivileged ISA and Privileged ISA volumes plus the ratified extension list (riscv.org/specifications/ratified). publisher · read in our library knowledge/fetched/cmp_nishios_riscv-isa.html · pin h33461bf0413542c87c32a430032d8dacfb57f8a454f8c3c3aaa925e9b7e6d15a · accessed 2026-08-18 · published-standardGrounds: The ISA and execution category -- RV64I base integer, RV64M multiply and divide, RV64C compressed, RV64 A / F / D atomic and float, Privileged M / S / U modes: the extension letters and privilege modes are defined by these volumes, so the RV64IM+C envelope and the filed A/F/D and S/U gaps (F107h) are named against the standard, not against QEMU.
  3. [virtio-oasis13] OASIS Open. Virtual I/O Device (VIRTIO) Version 1.3, OASIS Committee Specification (docs.oasis-open.org/virtio/virtio/v1.3). publisher · read in our library knowledge/fetched/cmp_nishios_virtio13.html · pin h606cd751e50c5ccb59a9ccbfaf607c649c5b628dfd6aba7ba018147c9c54e6e9 · accessed 2026-08-18 · published-standardGrounds: The virtio device models row: the split virtqueue layout and the blk / net / rng device types rv64im_min_virtio implements (nx_virtio_notify_dma) are this specification's normative definitions -- the row is a conformance claim against a public standard, which is why nx_virtio_spec_oracle_gate exists.
  4. [uefi-spec] UEFI Forum. Unified Extensible Firmware Interface (UEFI) Specification, current release as listed on uefi.org/specifications (boot services, memory map, GPT and the EFI System Partition). publisher · read in our library knowledge/fetched/cmp_nishios_uefispec.html · pin hc3d93ea9413a8c66128ff21f102365fb8ed04ed0baa8e84817a3a715e7e3ff15 · accessed 2026-08-18 · published-standardGrounds: The UEFI boot support row (nx_boot_uefi models memmap and handoff in-sim, Part) and the Bare-metal boot evidence: the loader half is witnessed on real TianoCore/OVMF, and the boot services and ESP conventions it exercises are normative in this specification -- QEMU and coreboot boot real UEFI, we model it.
  5. [agache2020] Agache, Brooker, Iordache, Liguori, Neugebauer, Piwonka, Popa. Firecracker: Lightweight Virtualization for Serverless Applications. USENIX NSDI 2020. publisher · read in our library knowledge/fetched/cmp_nishios_agache2020.html · pin hc39745122622998e16b8e83f1ca8611ae760f320aeca413980c04f7d2d7ee15a · accessed 2026-08-18 · published-paperGrounds: The Firecracker column -- Hardware acceleration (KVM / HVF) and Snapshot / live migration rows where Firecracker leads: a KVM-backed microVM is the accel and snapshot bar our pure-software sim files as F107f and F107i, and its Sandbox-contained privileged code Best is the isolation posture we match by construction.
  6. [lowepower2020] Lowe-Power, Ahmad, Akram, Alian, Amslinger et al. The gem5 Simulator: Version 20.0+. arXiv:2007.03152, 2020. publisher · read in our library knowledge/fetched/cmp_nishios_gem5-2020.html · pin he51185c80c7b5117bc957cc430a0932cb4d48a562d8b051d137a85a86a8a2c9d · accessed 2026-08-18 · published-paperGrounds: The gem5 column -- RV64I base integer, SMP / multicore and GDB / debug stub rows where gem5 is Best or Yes: the reference full-system architecture simulator our SMP (F107g) and gdb-stub (F107i) gaps are named against, and the ~1-5 MIPS interpreter figure in the Interpreter throughput row.
  7. [spike-isa-sim] RISC-V Software Collaboration. Spike, the RISC-V ISA Simulator (riscv-isa-sim) -- project README and source repository. publisher · read in our library knowledge/fetched/cmp_nishios_spike.html · pin h7ccacaa8a3e4be576122326a1edb03ed23e91c1040aff5995defbbad9e9747be · accessed 2026-08-18 · vendor-docGrounds: The Spike column: the golden-reference ISA simulator behind RV64I base integer B, the ~100 MIPS Interpreter throughput cell, and the reference cell in Differential-fuzz validated vs reference -- Spike is what a RISC-V behavioural emulator is checked against by the field.
  8. [renode] Antmicro. Renode -- open source simulation framework for embedded and IoT systems (renode.io product page). publisher · read in our library knowledge/fetched/cmp_nishios_renode.html · pin hda30466eb3b164ef41daecc959fc5ed9ada99f52fb656c46774befbb4b8b163a · accessed 2026-08-18 · vendor-docGrounds: The Renode column -- UART / CLINT / PLIC (B) and Full peripheral breadth (B) rows where Renode is the device bar, plus its Multi-ISA guests Y: our focused UART / virtio / nvme / gpu-model set is graded honest partial against this breadth.
  9. [coreboot-docs] coreboot project. coreboot documentation (doc.coreboot.org): open-source firmware, payloads and the boot flow on real silicon. publisher · read in our library knowledge/fetched/cmp_nishios_coreboot.html · pin h36ba5e576b8b82f716db5546872b5c39fcaf164baaee3f38b91db0400228c150 · accessed 2026-08-18 · vendor-docGrounds: The coreboot column -- Real-silicon POST / firmware handoff (B) and the Never-brick by construction note that real firmware can brick: coreboot is the real-firmware bar the guarded never-brick operator step (F002 ULX3S / F103d) is measured against, and the Core size (KB) ~1000 comparison cell.
  10. [zircon] Google Fuchsia project. Zircon kernel concepts: kernel objects, handles and rights, no ambient authority (fuchsia.dev concepts/kernel). publisher · read in our library knowledge/fetched/cmp_nishios_zirconconcepts.html · pin h1c7caedb489ec53d5720c8b3d84138a3294cef646dd8322aae44227c92753655 · accessed 2026-09-02 · vendor-docGrounds: The Zircon capability object-kernel bar and rung NO8: authority is a handle, never ambient.
  11. [fuchsiacomp] Google Fuchsia project. Components v2 introduction: the component as the unit of software, capabilities routed by the framework (fuchsia.dev concepts/components/v2). publisher · read in our library knowledge/fetched/cmp_nishios_fuchsiacomponents.html · pin heb762998eb01b4bf190716ca6502dc8c03758dc3ecac899cd038150b47565493 · accessed 2026-09-02 · vendor-docGrounds: The Zircon bar and rung NO9: a foreign guest is a component whose capabilities are routed, not trusted.
  12. [redox] Redox OS project. Redox: a Unix-like microkernel OS in Rust where resources are URLs served by schemes (redox-os.org). publisher · read in our library knowledge/fetched/cmp_nishios_redox.html · pin h0c3f4e4506271497732ad8199e730c5b68f451f1138b2fe5db0352328d0308f8 · accessed 2026-09-02 · vendor-docGrounds: The Redox namespace bar and rungs NO10 NO11: swarm transport and codecs appear as paths served by unprivileged services.
  13. [theseus] Boos, K., Liyanage, N., Ijaz, R., Zhong, L. Theseus: an Experiment in Operating System Structure and State Management. USENIX OSDI 2020. publisher · read in our library knowledge/fetched/cmp_nishios_theseus_osdi20.pdf · pin h4d15548486cea56a167e19d01e8183cc783a5321d4ba4dbb219459afb1f6102c · accessed 2026-09-02 · published-paperGrounds: The Theseus live-evolution bar and rung NO13: cells replaced at runtime with state carried across, the seed-to-forest property.
  14. [genode] Genode Labs. Genode Foundations: a recursive component tree on capability kernels, every component sandboxed by its parent (genode.org documentation). publisher · read in our library knowledge/fetched/cmp_nishios_genode.html · pin h2c42299a8ba591a8e74167990aae0d74e85e321f40384bb181f7283cbd241f15 · accessed 2026-09-02 · vendor-docGrounds: The component-framework bar and rungs NO9 NO12: drivers, file systems and the compositor as unprivileged components.
  15. [unikraft] Unikraft project. Unikraft concepts: a library OS specialised per application, only the components the workload needs (unikraft.org docs/concepts). publisher · read in our library knowledge/fetched/cmp_nishios_unikraft.html · pin h10e0676f2a19b0ef899ee786c44f2a309d8399bea327d02559867af2a83b993c · accessed 2026-09-02 · vendor-docGrounds: The unikernel bar and rung NO8: the spore is a minimal image that is exactly one workload.
  16. [wasmcomp] WebAssembly Community Group. The Component Model explainer: typed interfaces between sandboxed components, capabilities passed by import (component-model design/mvp/Explainer.md). publisher · read in our library knowledge/fetched/cmp_nishios_wasm_component.html · pin h27edfceda9e35180e00952cedbaaeadfe670601f791495a7ca58fe78c7d4106f · accessed 2026-09-02 · published-standardGrounds: The portable sandboxed-guest bar and rung NO9: a guest ABI with no ambient authority that runs on any host.
  17. [aios] Mei, K., Li, Z., Xu, S., Ye, R., Ge, Y., Zhang, Y. AIOS: LLM Agent Operating System. arXiv:2403.16971, 2024. publisher · read in our library knowledge/fetched/cmp_nishios_aios.html · pin habf717b8b51cf70591464a4d26f201157991a4185ed6786e3ad3fa4aa083cd71 · accessed 2026-09-02 · published-paperGrounds: The LLM-as-OS-tenant bar and rung NO14: agents and their context scheduled as OS resources.
  18. [memgpt] Packer, C., Wooders, S., Lin, K., Fang, V., Patil, S., Stoica, I., Gonzalez, J. MemGPT: Towards LLMs as Operating Systems. arXiv:2310.08560, 2023. publisher · read in our library knowledge/fetched/cmp_nishios_memgpt.html · pin hfa7328c6c6b801fa1b9b6a5dd76fb1d2a8afddfc6e33bb2dd58978462bc6906f · accessed 2026-09-02 · published-paperGrounds: The LLM-as-OS-tenant bar and rung NO14: context paged between memory tiers the way an OS pages memory.
  19. [bepindex] BitTorrent.org. Index of BitTorrent Enhancement Proposals (BEP 0): the protocol, DHT, extension protocol, uTP and magnet links as open specifications. publisher · read in our library knowledge/fetched/cmp_nishios_bepindex.html · pin h77f2bb5b3a5cfa2f1381fa1c6fc1867492c7d831601909833fbd3607fc5afd9a · accessed 2026-09-02 · published-standardGrounds: The open transport bar and rung NO10: native swarm transport is standards work, license-clean by construction.
  20. [av1spec] Alliance for Open Media. AV1 Bitstream and Decoding Process Specification (aomediacodec.github.io/av1-spec). publisher · read in our library knowledge/fetched/cmp_nishios_av1spec.pdf · pin hec44e9fc42c4e5851faa879a1818dcb9014d834bbdd9420ccca7dcea05a3abe9 · accessed 2026-09-02 · published-standardGrounds: The royalty-free codec bar and rung NO11: a sovereign AV1 decoder is graded against the published decoding process.
  21. [opus6716] Valin, J.M., Vos, K., Terriberry, T. Definition of the Opus Audio Codec. IETF RFC 6716, 2012. publisher · read in our library knowledge/fetched/cmp_nishios_opus_rfc6716.txt · pin h41caac5240a4a22661efd0031d5b7aee48f3c0bde3b2cdcee8165932e485f98c · accessed 2026-09-02 · published-standardGrounds: The royalty-free codec bar and rung NO11: Opus is the audio half, specified as an RFC with reference vectors.
  22. [wayland] Wayland project. Wayland protocol documentation: the compositor owns the scene, clients render into buffers (wayland.freedesktop.org docs). publisher · read in our library knowledge/fetched/cmp_nishios_wayland.html · pin h1a160d07c02ca3511147fdd6337479f5beea04517b755f005b87dec1f53b8c6a · accessed 2026-09-02 · vendor-docGrounds: The compositor protocol bar and rung NO12: GUI as one service that can be absent, headless is the same OS without it.
  23. [sel4docs] seL4 Foundation. seL4 project documentation: the formally verified capability microkernel, its object types, capability derivation and the proofs (docs.sel4.systems/projects/sel4). publisher · read in our library knowledge/fetched/cmp_nishios_sel4docs.html · pin ha0ff21821033cfc7faacebbe548f30ef1b11f12dcf18a20e67fa1d38f90f67f0 · accessed 2026-09-02 · vendor-docGrounds: The verified-microkernel bar and rung NO8: a capability kernel whose isolation is a proof, the bar a spore kernel is graded against.
  24. [plan9] Pike, R., Presotto, D., Dorward, S., Flandrena, B., Thompson, K., Trickey, H., Winterbottom, P. Plan 9 from Bell Labs (the 4th edition papers, mirrored at doc.cat-v.org). publisher · read in our library knowledge/fetched/cmp_nishios_plan9.html · pin h98ba3b3d52e0cbf752bd4a515f8c05b2c011c2f9e7ec8d8b56286be1a98bdc97 · accessed 2026-09-02 · published-paperGrounds: The per-process namespace bar and rungs NO10 NO11: every resource is a file served over one protocol and each process assembles its own namespace, the model under which swarm transport and codecs mount as paths.
  25. [linux-luo26] Linux kernel documentation: Live Update Orchestrator (core-api/liveupdate), merged for 6.19, released 2026-02-08. publisher · read in our library knowledge/fetched/cmp_nishios_docsliveupdatehtml.html · pin h6b176dcc7b3982d61f4f6fa3c018e971936d26a941ae2abf390f0bcf4a4c5f4a · accessed 2026-09-04 · vendor-docGrounds: Preserve, freeze and retrieve over one resource class
  26. [pci-tsm26] Linux kernel documentation: PCI TSM (driver-api/pci/tsm) -- device authentication and PCIe link encryption core, merged for 6.19. publisher · read in our library knowledge/fetched/cmp_nishios_docstsmhtml.html · pin hafcbefa42220b1c046da6f2b0495b64373fe81eaaa699d5d1f674dbe4647e942 · accessed 2026-09-04 · vendor-docGrounds: Device evidence in the bind path with three named states
  27. [secureboot-expiry26] Microsoft Support: Windows Secure Boot certificate expiration and CA updates -- KEK CA 2011 expires 2026-06-24, UEFI CA 2011 2026-06-27. publisher · read in our library knowledge/fetched/cmp_nishios_supportwindowssecureboo.html · pin ha5718004fbceef621ec74df890dd47fd70142d7f4a9880fc1cf12831457fd895 · accessed 2026-09-05 · vendor-docGrounds: Firmware-variable inventory and diff, read-only by construction
  28. [opentitan26] Google Open Source Blog, 2026-03-04: OpenTitan shipping in production silicon -- an auditable root of trust is purchasable. publisher · read in our library knowledge/fetched/cmp_nishios_opensourceopentitanshippin.html · pin hc68bbe7dbbf16fa20593874cf85611241c08bbfbe3319fbbb6e2d75f6c883a7b · accessed 2026-09-04 · vendor-docGrounds: Hash-based signature verifier for the boot chain

generated by nx_swcompare_matrix (sovereign NishiLang organ) from knowledge/compare/nishios.matrix · source checks show implementation presence; runtime and user-outcome evidence are reported separately · JavaScript supports page controls