The reviewed foundation (ThoxInux on Ginux) fixed as the architecture of record, the entitlement and update contracts tested as executable properties and fault simulations, the Linux-ABI ledger read at the pin and joined with a traced agent loop, and the kernel-model memory budget computed from the cards.
An operating system for local AI must carry an evidence chain from kernel behaviour to application execution, model quality and physical device operation, and the THOX record for ThoxOS™ has changed shape twice in four days: a 31 October whitepaper specified a Linux LTS fork, and a 1 November review draft identifies ThoxInux, a Ginux-derived Rust-first x86-64 kernel, as the reviewed foundation. This report fixes the architecture against that reviewed foundation and adds the evidence a general host can produce. We implement the entitlement contract clean-room in two token designs and show by executable properties that the shared-secret HMAC design accepts a token forged by any device that can verify one, while an Ed25519 design rejects it at 196 microseconds per verification on a 2-vCPU host, and that a wall-clock grace window is revived by a clock rollback unless a persisted high-water mark is used. We simulate the A/B update contract under injected faults: the full contract ends every one of 200 updates on a known-good slot with at most 3 boots of recovery, while removing the signature check boots 6 tampered images and removing the attempt counter or the second slot leaves about 26 devices unbootable per run. We read the upstream Linux-ABI ledger at the exact commit ThoxInux pins (375 dispatched syscalls: 82 Complete, 245 Partial, 48 Policy-denied) and join it with a strace of a reference agent loop on the authoring host: of 56 distinct syscalls the loop issues, 10 are Complete, 46 Partial and 0 Policy-denied, so a plain agent loop touches nothing the policy refuses and almost nothing that is proven equivalent to Linux. We compute the memory budget for the three published kernel models from their card geometry: the 0.8B student fits the 2 GB Air floor with 36,769 tokens of context at a 1 GB reserve and nothing at 1.5 GB; the 4B student fits the 4 GB Mini floor only at 7,350 tokens; the 27B teacher needs a host above 16 GB. No ThoxInux boot, no device, no model inference and no production security were executed here; the validation protocol that would produce those results is restated with its gates.
ThoxOS™ is the operating system for THOX's local-first AI devices and desktops. Its record has two foundations in four days: the v0.1.0 whitepaper of 31 October specified linux-thox, a Linux LTS fork with a separate Rust research laboratory [1]; the 0.2.0-review draft of 1 November identifies ThoxInux, a Ginux-derived Rust-first x86-64 kernel with Linux userspace compatibility, as the reviewed foundation, and treats the whitepaper as historical input [2, 3]. This report takes the reviewed foundation as the architecture of record, keeps what the whitepaper specified that survives the change (class floors, entitlement without DRM, A/B updates with a health gate, the open and paid line), and adds the evidence a general host can produce.
Local-first software keeps the user's data and computation on hardware the user owns [4]. An operating system built for local AI inherits that promise and adds four layers that each need their own evidence: the kernel must sustain the workload's process, memory, filesystem and networking behaviour; the runtime must load the exact model artifact; the application must enforce the user's authority; and the system must fit the hardware envelope. The 0.2.0 review states this chain and the rule that evidence at one layer never establishes another [2]. This report follows that rule and applies it to the foundation change.
ThoxInux is a derivative of Gregory M. Kurtzer's Ginux, an independent Rust-first x86-64 kernel with Linux userspace compatibility, a ring-3 administration controller and a UEFI boot image [5]. ThoxInux pins upstream commit 36503bda and ships engineering prereleases v0.9.0 and v0.9.1 whose unified EFI payload passed a 22-check lifecycle suite under QEMU TCG and KVM on one host; its ledger also records a resident agent failure on an earlier edition payload and conditional build reproducibility [3]. Those are repository-reported runs, not results of this report. The whitepaper's Linux LTS fork position is retained as a dated design whose entitlement, class-floor and update specifications carry over unchanged [1].
The contributions are:
Nothing in this report booted ThoxInux, ran a model, touched a device or evaluated production security. Section 7 says so itemised; Section 9 lists the decisions only the founders can take.
Asterinas is a Rust framekernel with Linux ABI compatibility and a small trusted computing base, evaluated at USENIX ATC 2025 [6, 7]; Rust-for-Linux brings Rust into the Linux kernel itself [8]. Ginux takes a third position: an independent kernel that dispatches the pinned Linux v6.12 x86-64 syscall table and ledgers each call as Complete, Partial, Policy-denied or Missing, with Linux's documented stable ABI as the authority [5, 9]. Neither Asterinas's safety argument nor its measurements transfer to Ginux or ThoxInux; the review says this and this report repeats it.
A line of work frames the LLM as an operating-system component or the OS as an agent host: AIOS and its vision paper [10, 11], a lessons-from-classical-OS treatment [12], and an agent framework for Linux schedulers [13]. ThoxOS's position is the opposite of LLM-as-OS: the model proposes and the harness disposes, and the review's MayExecute conjunction makes the model a non-term. Progent's privilege control for agents [14] and the LITMUS and SafeClawBench evaluations of agent behaviour in real OS environments and sandboxes [15, 16] are the closest evaluation precedents for the review's P2 protocol.
RAUC documents the A/B slot, bootloader and mark-good integration this design adopts [17]. HMAC and EdDSA are the two primitives the entitlement experiment compares [18, 19]. Model Cards motivate treating the ThoxOS-Kernel cards as release documentation whose conditions travel with the numbers [20]; the cards themselves are the source of the geometry and file sizes used here [21, 22, 23].
| Source | Kernel position | Entitlement | Updates | Status of evidence |
|---|---|---|---|---|
| ThoxOS whitepaper v0.1.0 [1] | Linux LTS fork (linux-thox), Rust lab separate | signed offline token, 30-day grace, Core never gated | RAUC A/B, health gate | staging tests reported (25 entitlement, 27 image checks); no device |
| 0.2.0-review draft [2] | ThoxInux (Ginux-derived, Rust-first x86-64) | eq. 1 and eq. 2; HMAC demo flagged as issuer-trust failure | RAUC template; P4 protocol | repository-reported runs; protocol unexecuted |
| ThoxInux repository [3] | Ginux pin 36503bda; v0.9.0 and v0.9.1 prereleases | n/a | n/a | 22/22 lifecycle under TCG and KVM on one host; resident-agent fault on an edition payload |
| This report | ThoxInux as architecture of record | two designs tested; forgery and rollback hazards shown | contract simulated with ablations | measured on a host, observed ledger, simulated protocol, calculated budget |
Devices are the E2, P4 and P6 classes (ThoxAir 2 GB, ThoxMini 4 GB, ThoxClip 6 GB RAM floors) plus host-tier machines; the ThoxKey companion runs no resident model and is served by a connected host [1, 21]. The reviewed kernel target is x86-64; Arm is scoped, not ported [2]. MeshStack™ is the optional private mesh and ThoxWork™ the workspace; their roles are integration boundaries, not evidence that the stack has executed on the reviewed kernel [24].
In scope: untrusted prompts and tool input, a compromised application, a malformed or tampered update bundle or entitlement token, a device that holds verification material, and a device whose clock is set back. Out of scope: a compromised issuer, a compromised kernel, physical key extraction, and side channels. The trusted boundary is the authenticated user decision, the enforcing broker, OS access control and verified artifact identity; the model is never in it [2].
A token is a payload (account, feature set, issued-at, expiry, nonce) and a signature. Validity is signature correctness, a well-formed payload, membership of the requested feature, and with the 30-day grace. Core features short-circuit before any token is examined, which is how R1 is enforced rather than hoped. The whitepaper's reference implementation and the review's demo use HMAC under a shared secret [1, 2]; the review names the consequence, that a holder of the verification secret can also generate MACs. This report tests two designs side by side:
Proposition 1 (forgeability). Under the hmac design any party holding produces a token the verifier accepts for any feature set; under the ed25519 design a party holding only produces an accepted token with probability bounded by EdDSA's existential unforgeability. Proof. HMAC verification recomputes , so possession of is possession of the issuing capability; for Ed25519 the statement is the EUF-CMA property of the scheme [19]. Property P9 in Section 6.1 is the executable form.
Proposition 2 (clock rollback). With wall-clock time only, an expired token with expiry is accepted again whenever the clock is set to any ; with the device persisting and evaluating validity at , a rollback changes nothing. Proof. is monotone by construction and already exceeded when the token expired. Property P10 is the executable form. Persisting needs no trusted time source; it needs tamper-evident local storage, which the review lists as production work.
Precondition: bundle signature and image hashes verified before any write; image written to the idle slot;
attempt counter armed with N = 3; data partition untouched
boots <- 0
loop:
boots <- boots + 1; boot idle slot
if thoxd answers, portal is enabled, local mesh discovery is up, network reaches targets, slot reports bootable:
mark slot GOOD; it becomes the running slot; return OK
if boots >= N: bootloader returns to the previous GOOD slot; mark idle slot BAD; return ROLLED_BACKThree ablations are simulated in Section 6.2: no signature check (R5 first clause), no attempt counter, and a single slot updated in place. Each removes one clause of the contract and each produces a distinct failure class, which is the argument that the contract has no redundant part.
Ginux's ledger scores every dispatched syscall; ThoxInux's audit recounts it and runs upstream's architecture checker at the pin [3]. This report adds an area classification and a measured join: which calls a plain agent loop issues and what their status is. The loop (Appendix A) reads a configuration, appends a log, spawns a child and waits, opens a TCP connection to a local listener, polls, handles a signal and maps a file. It is a Python program on the authoring host's Linux; it is not the ThoxOS agent and it did not run on ThoxInux. Its value is to name the Partial calls that P1 of the review protocol must exercise first.
For a Qwen3.5-family hybrid model with full-attention layers of KV heads and head dimension , bf16 KV costs bytes per token; the linear-attention layers carry a fixed fp32 state. From the cards: 0.8B 12,288 B/token, 4B 32,768 B/token, 27B 65,536 B/token [21, 22, 23]. Weights are the published GGUF sizes, assumed fully resident. The reserve term is swept because it is not measured.
Three implementations exist in the record and one in this report. ThoxInux carries the kernel, a Python lifecycle suite, source-preparation and launcher tests, an SSD installer with tests and an agentos Rust crate [3]; the historical thoxos-core lane carries the entitlement reference (25 tests) and the image validator (27 checks) [1]. This report could not execute code from those public clones under the authoring session's policy, so their test states are quoted as repository-reported. This report's own code is Appendix A: the entitlement contract in two designs with property tests, the update simulator, the ledger parser and traced loop, and the memory budget calculator.
| Requirement | Specified | Test or evidence in this report | Result |
|---|---|---|---|
| R1 Core never gated | Section 4.2 | P6: Core allowed with no, expired, tampered and garbage tokens | pass |
| R2 conjunction, unknown denied | Section 4.2 | P7, P8 | pass |
| R3 issuer-only trust | Prop. 1 | P9: forged token accepted (hmac) / rejected (ed25519) | accepted / rejected |
| R4 clock discipline | Prop. 2 | P10: rollback with wall clock / with high-water mark | accepted / rejected |
| R5 update contract | Algorithm 1 | exp/update_sim.py, 30 seeds x 200 updates, 4 policies | simulated; Section 6.2 |
| R6 memory budget | Section 4.5 | exp/memory_budget.py over cards, floors, contexts, reserves | calculated; Section 6.4 |
| R7 ABI truth | Section 4.4 | exp/syscall_ledger.py: ledger parse (375 rows asserted) and strace join | observed and measured; Section 6.3 |
| R8 evidence separation | throughout | every number carries its class in summary.json | editorial |
Setup. Authoring container, Linux, 2 vCPU, 7 GB RAM, Python 3.13, cryptography library for Ed25519, strace for the traced loop. Timing: 30 repetitions of 1,000 verifications after warm-up, medians with interquartile ranges. The ledger was fetched from the upstream repository at the pinned commit on 2026-11-03. Model geometry and sizes were read from the three public cards the same day. Nothing ran on ThoxInux.
Properties P1 to P8 pass in both designs: Core is unconditional, the conjunction holds, grace admits at 29 days and refuses at 31, tampered and malformed tokens are refused, unknown features are denied. P9 separates the designs: a forged token minted with the verification secret is accepted under hmac and rejected under ed25519, which is Proposition 1 run. P10 is design-independent: with wall-clock validity a token expired 40 days earlier is accepted after a 20-day clock rollback, and with a persisted high-water mark it is rejected. The cost of the safe design is 196 microseconds per verification against 12 for HMAC on this host, a difference that no entitlement check on a device will notice. The recommendation is unambiguous: production tokens are Ed25519-signed, devices hold only the public key, and the device persists its time high-water mark.
The full contract ends all 200 updates on a known-good slot, with 26 automatic rollbacks and never more than 3 boots of recovery. Removing the signature check keeps the device bootable but boots 6 tampered images per run; removing the attempt counter leaves 26 devices looping on a bad slot; a single slot updated in place ends 172 updates well and leaves 28 unbootable. The three clauses fail differently, so none is redundant, and the ablation ordering tells the release team what to test first on hardware: attempt-counter exhaustion and interrupted writes (P4 of the review protocol), not the happy path.
At the pin, 82 syscalls are Complete, 245 Partial and 48 Policy-denied, with nothing Missing [5, 3]. By area, files is 120 Partial to 15 Complete, network is 14 Complete to 4 Partial, and the Policy-denied set is concentrated in security (19) and identity (8): credential mutation, bpf and Landlock are refused by design, which matches the ThoxInux domain model. The reference loop issues 56 distinct syscalls and 991 calls per run: 10 distinct calls are Complete, 46 Partial, 0 Policy-denied and 0 absent from the pinned table; by volume 975 of 991 calls land in Partial entries (stat, rt_sigaction, read, openat, mmap, futex, clone3, wait4 and their neighbours). The positive reading is that an agent loop asks for nothing the policy refuses. The cautionary reading is that it lives almost entirely in calls that are dispatched and useful but not proven equivalent to Linux, which is exactly the surface on which the edition payload's resident-agent failure occurred [2]. This is the evidence for funding P1 before any other protocol item.
The 0.8B student fits the 2 GB Air floor with 36,769 tokens at a 1.0 GB reserve and no fit at 1.5 GB: the reserve, not the model, decides the Air. The 4B student fits the 4 GB Mini floor only at 7,350 tokens at a 1.0 GB reserve, no fit at 1.5 GB, and its Q8_0 build no fit; on the 6 GB Clip it reaches 68,385 tokens. The 27B teacher is no fit on a 16 GB host at Q4_K_M, 218,225 tokens on 32 GB, and at Q8_0 34,381 tokens on 32 GB and 522,662 tokens on 64 GB. Two product consequences: the Mini's resident 4B model is a 2k-to-8k-context assistant unless the reserve is measured smaller than 1 GB, and the 27B host tier starts at 32 GB. File size is a lower bound on resident weight memory and the reserve is an assumption; the review's warning that storage bytes, advertised memory and peak resident memory are different quantities stands [2].
ThoxOS's foundation changed from a Linux fork to ThoxInux in the week before this report, and the contracts the whitepaper specified survived the change because they never depended on the kernel. This report made two of them executable and tested them: the entitlement contract, whose demo design is forgeable by any verifier and whose grace window is revivable by a clock rollback, both fixed by a public key and a persisted high-water mark; and the update contract, whose every clause removes a distinct failure class in simulation. It read the ABI ledger at the pin and showed that a plain agent loop asks for nothing refused and almost nothing proven. It computed what fits on each device from the cards. The next evidence is the review's P1 on the real payload bytes, and this report says why it comes first.
pip install cryptography numpy matplotlib pypdf pillow && cd wp && npm install && cd .. mkdir -p ginux_ledger && curl -o ginux_ledger/LINUX-COMPATIBILITY.md https://raw.githubusercontent.com/gmkurtzer/ginux/36503bda2d87465765e1b94e65f9d100f27ed5be/docs/LINUX-COMPATIBILITY.md python3 exp/entitlement_experiments.py # fails on any property violation python3 exp/update_sim.py python3 exp/memory_budget.py python3 exp/syscall_ledger.py # needs strace; asserts 375 ledger rows python3 exp/analyze.py && python3 wp/figures.py && python3 wp/build.py node wp/katex_render.cjs wp/paper.src.html wp/paper.html && node wp/pdf.cjs wp/paper.html wp/cover.pdf wp/body.pdf && python3 wp/merge_pdf.py
Entitlement known-answer vector (hmac design, secret = bytes 0x00..0x1f): payload {"acct":"acct-demo","exp":1831536000,"feat":["meshstack-pro"],"iat":1800000000,"nonce":"QkJCQkJCQkJCQkJCQkJCQg","v":1}; token eyJhY2N0IjoiYWNjdC1kZW1vIiwiZXhwIjoxODMxNTM2MDAwLCJmZWF0IjpbIm1lc2hzdGFjay1wcm8iXSwiaWF0IjoxODAwMDAwMDAwLCJub25jZSI6IlFrSkNRa0pDUWtKQ1FrSkNRa0pDUWciLCJ2IjoxfQ.N3P1z7mcN6DvXBGQm0o9WOtosb4QAhqBGuFn8pYf9IE; allowed at 1800086400, allowed in grace at 1834041600, denied at 1834214400 (Unix seconds).
Reference loop last log line on the authoring host: {"data": "hello", "child": "child", "sig": 1, "model": "ThoxOS-Kernel-0.8B"}.
| Symbol | Meaning |
|---|---|
| Core feature set; entitlement decision for feature f under token state t | |
| user authorization, OS and application access control, feature of action a | |
| grace window (30 days); persisted time high-water mark | |
| HMAC secret; Ed25519 private and public key | |
| full-attention layers, KV heads, head dimension | |
| E2, P4, P6 | THOX compute classes (Air, Mini, Clip) |
Issued by THOX.ai Research. The authors are Craig Ross (Chief Executive Officer) and Tommy Xaypanya (Chief Technology Officer and Co-Founder), THOX.ai LLC; Tommy Xaypanya is the corresponding and accountable human author. Author consent to this edition is recorded. Generative AI assistance: experiment code, analysis, figures and draft text were produced by an AI system (Claude, Anthropic) operating as the THOX digital human Odette Lark under the direction of the corresponding author; every citation was resolved live on 2026-11-03 and every number is generated from the experiment outputs. No AI system is an author. The authors are THOX.ai principals; this is an interested-party technical account. Upstream attribution: ThoxInux derives from Gregory M. Kurtzer's Ginux under its recorded terms. Edition v1.0.0 was an internal draft; this edition, v1.0.1, is the public preprint edition authorised by the founders: it settles the author roster, retires the internal marking and changes no result, measurement or conclusion. The 0.2.0-review draft it builds on is public on Zenodo.