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

Nishi vs the Field

Sovereign RISC-V Emulator, Bare-Metal Boot and Minimal OS — the full field, measured, sourced.

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

How this is scored. This is a state-of-the-art comparison across the FULL competitor field: quantitative axes carry measured / published numbers (Nishi’s column is our own measurement, competitors are researcher-sourced), grade axes use Best / Yes / Part / No. Every axis carries a source note. No single vanity ‘coverage’ score — the honest picture is per-axis. Where Nishi is under SOTA, that is filed work with an owner, never ‘by design’ (operator law: less-than-SOTA is never design) — every sub-SOTA axis maps to a frontier rung; the only legitimate divergence from the field is a measured exceed bet that carries its number (e.g. no-float determinism). The climb is the plan.
CapabilityNishiQEMUSpikegem5BochsUnicornFirecrackerRenodecorebootNotes / source
ISA and execution
RV64I base integerYesBestBestBestNoYesNoYesNonx_rv64im_sim + nxc RV64 backend, exhaustively verified on our own emu; QEMU/Spike/gem5 are the ISA bar
RV64M multiply and divideYesBestBestYesNoYesNoYesNofull mul/mulh/div/rem with exact RV64 semantics, fuzz-validated; present, not best-in-class
RV64C compressedYesBestYesYesNoYesNoYesNonx_rvc_expand decodes the C extension
RV64 A / F / D atomic and floatNoBestBestBestNoPartNoYesNono-float = the measured determinism exceed bet (doctrine); A-atomics = SMP prerequisite, filed F107h; QEMU/Spike/gem5 lead
Privileged M / S / U modesPartBestBestBestYesNoPartYesPartNishi models M-mode CSR + CLINT only (partial); full S/U paging is the QEMU/Spike bar
Multi-ISA guests (x86 / ARM / etc)NoBestNoBestNoBestNoYesNohonest gap: RV64 only; QEMU/gem5/Unicorn are multi-ISA
Performance
Interpreter throughput (MIPS)~20~500 (TCG)~100~1-5~50~100native~10n/abehavioral step-interpreter measured by nx_emu_bench; QEMU-TCG leads by 1-2 orders
JIT / dynamic binary translationYesBestNoNoNoYesNoNoNonx_rv64_jit emits real x86-64 (reg-alloc + intra-block control flow + guest memory); QEMU-TCG is the bar
JIT hot-loop throughput (GIPS)~8~2-10n/an/an/a~1-5nativen/an/ameasured ~100x over our interpreter on a hot loop; native/QEMU-TCG class
SMP / multicoreNoBestYesBestYesNoBestYesNohonest gap: single-core RV64IM (declared envelope); QEMU/gem5/Firecracker lead
Hardware acceleration (KVM / HVF)NoBestNoNoNoNoBestNoNohonest gap: pure software sim, no host-CPU accel; QEMU-KVM/Firecracker lead
Devices
virtio device modelsYesBestPartYesNoNoYesYesNorv64im_min_virtio: real split-virtqueue blk/net/rng, drove real entropy end-to-end
UART / CLINT / PLICYesBestYesYesYesNoPartBestYes16550 UART + SiFive CLINT + M-mode timer; Renode/QEMU are the device bar
Full peripheral breadthPartBestPartYesYesNoPartBestParthonest partial: a focused device set (UART/virtio/nvme/gpu-model), not QEMU/Renode breadth
Device-tree (FDT) discoveryYesBestYesYesNoNoYesYesYesnx_hw_discover parses the real QEMU DTB (13 devices at real addresses), no hardcoded list
GDB / debug stubNoBestYesBestYesPartNoBestNohonest gap: no gdbserver/breakpoint stub yet; QEMU/gem5/Renode lead
Snapshot / live migrationNoBestNoYesYesNoBestPartNohonest gap: no VM snapshot or migration; QEMU/Firecracker lead
Graphical framebuffer / display outPartBestNoYesBestNoNoYesPartrv64im_min_gpu is a command-ring model, no real display output (partial)
Boot and firmware
Bare-metal boot (reset vector to userland)BestBestYesYesYesPartYesYesBestboots POST to mount+replay to verify+execute /sbin/init on OUR silicon model; a genuine strength
Verify-then-execute never-brick loaderBestNoNoNoNoNoPartNoPartEXCEED: NXE SHA-256 integrity gate refuses tampered code BEFORE it executes; no emulator does this
Real-silicon POST / firmware handoffNoNoNoNoNoNoNoPartBesthonest gap: guarded never-brick operator step, refused-by-construction in sim; coreboot is the real-firmware bar
UEFI boot supportPartBestNoNoYesNoNoPartYesnx_boot_uefi models the memmap/handoff in-sim (partial); QEMU/coreboot boot real UEFI
Determinism and sovereignty
Bit-exact determinismBestPartYesYesPartPartNoPartNoEXCEED: replayable bit-for-bit; validated 0/500 fuzz divergences vs QEMU (integer, no float nondeterminism)
Differential-fuzz validated vs reference0/500 vs QEMU + 25/25 vs GNU-asreferencereferenceselfselfselfn/aselfn/aour stack is validated AGAINST QEMU/GNU-as as oracles; they are the reference, we prove equivalence
Record and replayBestYesNoYesNoNoNoNoNodeterministic replay BY CONSTRUCTION (no rr-style instrumentation needed); QEMU rr-class is opt-in
Own toolchain bits-up (no gcc / llvm)BestNoNoNoNoNoNoNoNoEXCEED and alone: nxc to nxasm to RV64, zero external compiler in the whole chain
Zero third-party dependencyBestNoNoNoNoNoNoNoNoEXCEED and alone: own language, assembler, emulator, TLS, store; competitors lean on gcc/llvm/glibc/host libs
Safety, scale and size
Never-brick by constructionBestPartPartPartPartPartYesPartNoEXCEED: nx_neverbrick_genesis gate RED-flags any unguaranteed firmware-write node; coreboot (real firmware) can brick
Sandbox-contained privileged codeYesYesYesYesYesYesBestYesNodangerous guest code runs against virtual hardware; a bug crashes the sim, never the host (proven with hostile guests)
Core size (KB)~189~50000~2000~100000~10000~5000~5000~50000~1000whole sovereign OS+emu core; about 1616x smaller than Puppy Linux
8 competitors30 axes4 quantitativeNishi Best on 7
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 GDB stub / snapshot (-> F107i), 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).

Generated by nx_swcompare_sota from knowledge/compare/nishios.sota — quantitative axes measured/sourced; researcher-fed (nx_swcompare_research). Zero JS, zero trackers.