Skip to documentation
SLOP

tiny.machine

Reference tiny.machine

Overview · API · Code relationships · Verification · Audit

Overview

A virtual machine runs a guest operating system kernel so that the same run can be produced again later, from stored state, with the result checkable against a recorded identity. The guest kernel boots directly from an ELF image, with no firmware stage in between. The execution rules fix one virtual CPU and one fixed-size region of guest memory.

The guest stops only when it signals the host, so every stop is a place the guest chose. When the guest stops idle, the machine produces authenticated evidence that the guest's work settled before anything outside observes it. Every outside influence reaches the guest as a recorded and checked input, bound to the identity of the execution rules and to a digest of the state it arrived against. Each delivered input carries the authority to run the guest work that settles it. The caller supplies all of the machine's memory: the state of each running machine, the guest's memory, and the storage for saved state. The package holds none of its own.

Hardware and host make two runs differ in places that are many and easy to miss: instruction results, interrupts, the clock, entropy, device behavior, and scheduling.

The package took from KVM, the Linux kernel interface for running a virtual machine on host hardware, documented in the Linux KVM API, and from the x86-64 architecture manuals, the Intel Software Developer Manuals. What it took was one virtual CPU per machine, a fixed guest memory region registered with the host kernel, x86-64 instruction semantics, and direct kernel boot.

KVM is one of two backends behind the same execution rules, and the second is a portable x86-64 interpreter that executes the admitted instruction forms in software, the reference backend. The backend is chosen together with one execution contract and the determinism claims that pairing makes (a profile), and a portable_x86_64_interpreter_v1 profile selects the interpreter.

The package answers the many easy-to-miss places by listing all 42 of them in canonical order, one entry per place (the inventory). Each namespace declares the named places it answers for (its divergence sources), and the package concatenates those declarations into one list. A test audits the concatenated list against the inventory for exact count and exact order, and a dropped or duplicated place fails it. The inventory records each place's control once per backend, so the interpreter can enforce what KVM only assumes: instruction results are enforced for the interpreter and assumed for KVM.

A KVM profile and its portable counterpart carry the same identity of the shared execution rules, computed over the encoded profile with the backend field and the claim fields zeroed (the contract fingerprint), so a run under one can be compared against a run under the other. Eight namespaces divide the package: admission, checkpoint, explore, fabric, fault, profile, instance, and world.

Definitions

Types and contracts

Public types and contracts.

Namespaces

Public namespaces.

Values and defaults

Public values and defaults.

Code relationships

Direct static dependencies extracted from parsed source by semantic graph analysis.

Uses: tiny.accy, tiny.bench, tiny.coz, tiny.hypothesis, tiny.isa, tiny.pluck, tiny.sdfii, tiny.smg, tiny.sql, tiny.sys, tiny.wayland
Used by: alloc_phase, tiny.accy, tiny.choir, tiny.gui, tiny.pluck, tiny.profiling, tiny.smg, tiny.syn, tiny.sys

Verification

No verification records are cataloged for this module in this build.

Audit

EvidenceValue
Sourcelib/machine/src/root.zig
Definitions34 of 44 documented
Members0 of 0 documented
Public names44 API, 902 indexed
Version26.7.0
Revisiondaab053ee433
Unresolved targets6