diff --git a/STARTUP-README.md b/STARTUP-README.md index 2a4e495..9caf640 100644 --- a/STARTUP-README.md +++ b/STARTUP-README.md @@ -51,10 +51,13 @@ is real. Each must be reproduced live, not asserted. the durable daemon via `cubec --socket /run/cube/cube.sock 'open ...'`. Verified: dispatch reaches the crypto/run layer. **STATUS: DONE.** 4. **Boot substrate** — the VM brings up CUBELinux as a storage layer the rest of - the OS reads/writes through. **PARTIAL 2026-08-13**: OS state (boot manifest + - kernel.log) now lives on the cube store at `/cubefs/c200/z002/y001/x001` etc., - read back with inode == packed CZYX. Still auxiliary `/cubefs` (not yet the - root fs) — deepening the bind is the active task. **STATUS: IN PROGRESS.** + the OS reads/writes through. **DONE (systemd-managed, 2026-08-13)**: units + `cube-os-state.service` (oneshot, writes boot manifest + machine identity + + boot history to `/cubefs/c200/z001|z002|z003`) and `cube-os-klog.service` + (streams kernel ring buffer to `/cubefs/c200/z004`) run at boot; both enabled + + active; state survives a FULL power cycle (verified 2026-08-13: rebooted the + VM, boot history showed pre- + post-reboot lines, manifest unchanged). + **STATUS: DONE (auxiliary layer; not yet the root fs).** --- @@ -111,13 +114,15 @@ missing. ## 5. Open items -- Phase 2/3: **deepen the boot-substrate bind** — make init mount the cube store - as a primary OS layer (e.g. bind `/var/log`, the boot manifest, and a config - tree to `/cubefs/c200/...` so the OS reads/writes its state through the cube by - default), and add each binding as a reproducible verification point above. - Phase 3 (optional hardening): the `cube open` primitive currently needs a key cell present; wire a real key-management flow (Null-space key cells issued at boot) so OS services can open records by CZYX + flags unattended. +- Boot substrate (next deepening): bind a real OS tree (e.g. `/var/log`, + `/etc` config, the boot manifest) so the OS reads/writes through the cube by + default — currently the cube holds OS *state* (manifest/identity/klog) but the + root fs is still ext4. The magic-prefix "open by CZYX" FUSE passthrough is the + natural next step (a path like `/cubefs/.czyx/200.1.1.1` resolves directly to + the coordinate). - OPTIONAL (cosmetic): launch the "CUBE Shell" desktop launcher in the VM to confirm end-to-end at the file level (wiring already verified: cube-term → cubec → /run/cube/cube.sock).