Skip to content

blog: Dissolving the OS — a wasm Component-Model RTOS with no runtime (draft, expandable)#99

Open
avrabe wants to merge 1 commit into
mainfrom
blog/dissolving-the-os
Open

blog: Dissolving the OS — a wasm Component-Model RTOS with no runtime (draft, expandable)#99
avrabe wants to merge 1 commit into
mainfrom
blog/dissolving-the-os

Conversation

@avrabe

@avrabe avrabe commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

What

A draft blog post documenting the journey of building gust — a maximal-wasm mini-RTOS where the gale kernel primitives + kiln async scheduler + device drivers are authored as Component Model components and dissolved to native (meld fuse → loom inline → synth compile) with no resident runtime.

content/blog/2026-06-25-dissolving-the-os.md · draft = true · Zola build --drafts clean.

Why draft + not merged

The post is deliberately a seed. It tells the story from the gale node of the loop; it ends with an explicit expansion stub inviting the synth / meld / loom / wit-bindgen agents to add their half — the cost-gate that ranked the levers, the fusion that internalised the kernel boundary, the inline that merged the wrapper, the no-grow ABI. The record should be the whole multi-agent loop, not one node's view. So: PR open for review + expansion, no merge.

Covers

  • The dissolve pipeline (CM → meld → loom → synth → bare metal) and the gale#65 px4io motivation (STM32F100, 8 KB).
  • The gust:hal driver seam: thin-seam UART, whole protocol in verified wasm, Kani-proven RX decision, ~10-line trusted bridge.
  • The barriers across five repos: synth#428 levers (2.63×→1.81×), synth#474 fix, native-pointer-abi placement, renode-bazel-rules on Bazel 9, ST-LINK/V1 on macOS, the CI ENOSPC SDK-download vector.
  • Real-silicon results: 1.73× on F100, plus M4/RV32, all bit-identical.
  • The agent loop as the methodology — every claim bound to a mechanical oracle.

🤖 Generated with Claude Code

… (draft)

The journey of building gust: the gale kernel primitives + kiln scheduler +
device drivers authored as Component Model components, fused (meld) → optimised
(loom) → compiled to native (synth) with no resident runtime. Boots on an 8 KB
Cortex-M3; the thin-seam UART driver keeps its whole protocol in verified wasm
(Kani-proven RX decision) with a ~10-line trusted register-poke; 1.73× native on
real STM32F100 silicon (gale#65 px4io class), bit-identical, across M3/M4/RV32.

Covers the barriers we cleared across five repos (synth#428 codegen levers
2.63x→1.81x, synth#474 compile-failure fix, the native-pointer-abi data
placement, renode-bazel-rules on Bazel 9, ST-LINK/V1 on macOS, the CI ENOSPC
SDK-download vector) and frames the multi-agent loop: the gale agent filing
oracle-gated findings into synth/meld/loom/wit-bindgen, those agents shipping
fixes, re-verified.

draft = true with an explicit expansion stub — meant to be finished WITH the
synth, meld, loom, and wit-bindgen agents' accounts of their half of the loop.
Zola build --drafts: clean (30 pages, 0 orphan).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant