Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Track A — freestanding app hosting

Tracker epic: issue #31. Child issues A1–A9.

Driving force (non-negotiable)

This track is subordinate to ctos core principles (principles.md). Do not skip a probe, drop a ratchet, or invent a “secure/fast app runtime” to finish a row faster.

  • Honesty ledger — Verified only with a probe
  • Antifragility — fail-closed smoke + ratchets
  • Security — threat model; probed mitigations only
  • Performance — measure first; no invented benches
  • Document-first / one milestone → one branch → one PR

A9 (OS/app slot disconnect) sits after A1–A4. It does not override the list above.

Goal

A freestanding (non-POSIX) application can be loaded and run with honest probes. Not Linux containers. Not glibc.

Ordered work

One loop unit each. Each row needs a fail-closed ledger probe.

IDWorkStatus (2026-09-11)
A1Stable SVC / syscall ABI + docsPlanned (#32)
A2Freestanding CRT / libctosPlanned (#33)
A3ELF (or raw) loader into user TTBR0Planned (#34)
A4Standing EL0 as normal modePlanned (#35)
A5Isolation completion (remaining identity tear; PAN only if CPU + ADR)Planned (#36)
A6Thin VFS + memfsPlanned (#37)
A7virtio-blk + FAT or xv6-likePlanned (#38)
A8Documented sample appsPlanned (#39)
A9Disconnect OS image from app payloadsPlanned after A1–A4 (#48). Today: one linked ELF — not Verified.

Out of scope for Track A

OCI/Docker containers, glibc/musl ports, SMP, networking (unless a later ADR). See host-apps.md.

Samples today: site what-can-run.md (extra: apps-today.md). Porting: site porting.md (extra: building-or-porting.md).