volume-manager: discovery and probe — V3a

The storage layer gains its policy home (storage-architecture.md): a new
system/services/volume-manager, spawned by init, that acquires the mass-
storage block channel through the device manager (the same lineage a
filesystem uses), reads block 0, and parses the first volume out of it. The
partition-table walk that lived in the FAT engine moves here, above the
driver where it belongs (partition.zig, host-tested: MBR entry, bare-FAT,
no-signature). Identity is the MBR disk signature + partition index — the
weak rung of the ladder; GPT GUID and FAT serial refine identityOf without
changing shape.

This increment is discovery + probe + log only, additive: the FAT service
still acquires its own volume, so nothing changes for it. Confining each
filesystem to its partition and spawning one per volume (the flip) lands
next, keeping fat working throughout.

Grants + wiring: init.csv spawns it after the device manager; protocol.csv
grants bind volume-manager + open device-manager. Verified: volume-probe
asserts the parse (bare-FAT volume at lba 0), neutral 10/10 across storage,
restart, display, logging, confinement — the volume manager now runs in
every boot and disturbs nothing.
This commit is contained in:
Daniel Samson
2026-08-09 18:10:43 +01:00
parent bc67771bfd
commit d56b1b81c0
9 changed files with 293 additions and 0 deletions
+1
View File
@@ -14,6 +14,7 @@
# service args...
/system/services/input
/system/services/device-manager
/system/services/volume-manager
/system/services/fat
/system/services/display
/system/services/display-demo
1 # /system/configuration/init.csv — the services init (PID 1) starts at boot, in order.
14 # service args...
15 /system/services/input
16 /system/services/device-manager
17 /system/services/volume-manager
18 /system/services/fat
19 /system/services/display
20 /system/services/display-demo
+4
View File
@@ -55,6 +55,7 @@
# --- the services init spawns from init.csv ---------------------------------
/system/services/input, /system/services/init, bind, input
/system/services/device-manager, /system/services/init, bind, device-manager
/system/services/volume-manager, /system/services/init, bind, volume-manager
/system/services/fat, /system/services/init, bind, vfs
/system/services/display, /system/services/init, bind, display
@@ -100,6 +101,9 @@
# opens /protocol/display like any other client — threads share no handles),
# and the input stream that moves the cursor.
/system/services/fat, /system/services/init, open, device-manager
# The volume manager reaches the device manager to be routed to each storage
# provider's block channel, the same lineage acquisition fat makes today.
/system/services/volume-manager, /system/services/init, open, device-manager
/system/services/display, /system/services/init, open, scanout
/system/services/display, /system/services/init, open, display
/system/services/display, /system/services/init, open, input
Can't render this file because it contains an unexpected character in line 12 and column 15.