feat(kernel): Artemis and Zuse from one disk -- the stick; virtio Artemis leaves v4
sk_v4_identity.c: a USB drive is this system's stick if its GPT has both StarshipOS partitions and
it is the disk the loader booted from (BootDisk's DiskGUID), or, when the boot was not from a
stick, the first such disk while none is attached. Then: its Artemis partition must carry a good
artemis_sig ('Artemis: the stick's signature is bad -- not used' otherwise), is attached first --
the first disk slot -- ('Artemis: the stick's partition attached'), Zuse's key is read from its
genesis marker, and its identity partition is checked and attached as before. Any other drive,
raw or GPT: 'USB: a drive that is not this system's stick -- not used'. On a pull the identity
partition is detached, then Artemis. sk_v4_identity_boot / sk_v4_run take the loader's BootDisk.
kernel_main.c: no virtio Artemis on the v4 path. kernel/Makefile: ARTDISK= attaches no virtio disk
(every QEMU target); ARTDISK stays for system=v3.
STICK.md 4 amended as ruled (R2): on v4 only this system's stick is used; users' drives minted by
this system's Zuse come with the users design after INSTALL. BRINGUP.md: Secure Boot off on every
PC (ruled 2026-10-28), RDRAND in QEMU, the SER5 smoke-test stick, A4 not on v4.
Tests: new stick_artemis (x3, no virtio disk), stick_zuse, two_sticks (replaces datastick),
artemis_unsigned, raw_ident; changed stick_boot, gpt_zuse, gpt_hotplug, midpull (replug) -- all
failed before, pass after (two test defects found and fixed: the signature's offset, the 63-char
log cut). Regression 20/20. Acceptance: amd64, aarch64, riscv64 to [zuse@Hera] ok>, POST 538/538,
dict_hash 0xfec8c47cfc6f437f; v4 suite and test-32 0 failures.
Plan: docs/v4.0.0/plans/2026-10-27-stick-4-one-disk.md, Task 4.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
1b45f5f85f
commit
1e8a6fed34
+12
-3
@@ -47,7 +47,7 @@ and demos.
|
||||
| What a try-it session writes persists on the stick until `INSTALL` | §4, §7 |
|
||||
| Splash only on screen; the log on serial | §8 |
|
||||
| Pulling the stick: headless until it is plugged back in | §7 |
|
||||
| **GPT for boot media and installed disks** — overturns `FABRIC-2.md` §F.8 ("GPT dropped entirely") for these two kinds of media; raw identity drives stay accepted | §4 |
|
||||
| **GPT for boot media and installed disks** — overturns `FABRIC-2.md` §F.8 ("GPT dropped entirely") for these two kinds of media; on v4 only this system's stick is used (amended 2026-10-28) | §4 |
|
||||
| v4 only | §1 |
|
||||
| On the stick, `system=v3` is refused: a line says v3 is not on this stick, and v4 boots | §5 |
|
||||
| The GPT code runs on every ISA; every `clean qemu` boot attaches a small GPT **data stick** (identity and Artemis partitions) over USB in place of virtio; virtio Artemis leaves v4 | §9 |
|
||||
@@ -82,8 +82,17 @@ gains the partitions below). Three partitions:
|
||||
- **The identity and Artemis formats do not change.** Every check that reads them
|
||||
(`homeblocks_sig_check`, `capsule_zuse_boot_check`, `artemis_sig_check`, the block
|
||||
subsystem) runs unchanged on the partition device.
|
||||
- **Raw identity drives stay accepted:** a device with no valid GPT is read as today (the minted
|
||||
scratch pair in `disk/zuse-scratch/`, any v3 identity drive).
|
||||
- **Raw identity drives on v4 — amended 2026-10-28** (Captain Bob, ruling R2 of
|
||||
`plans/2026-10-27-stick-4-one-disk.md`): this bullet said "raw identity drives stay accepted",
|
||||
which contradicted "one disk" above. **On v4, Artemis and Zuse come only from this system's
|
||||
stick, and no other drive is attached** — raw or GPT, blank or minted: "USB: a drive that is not
|
||||
this system's stick -- not used". Once Artemis is only on the stick, a raw drive could be Zuse's
|
||||
only as a copy of the stick's own identity partition, and attaching it before the stick would
|
||||
take the first disk slot, where the fence must be. **This is not a "never" for other people's
|
||||
drives:** drives of users minted by this system's Zuse, and checked by WIREBIND against her key,
|
||||
come with the users design after `INSTALL` (Captain Bob, 2026-10-28: an installed v4 system mints
|
||||
and accepts its own users' drives). On `system=v3`, raw identity drives are read exactly as
|
||||
before; v3 reads no GPT at all.
|
||||
- **Sizes: a minimum, and dynamic above it** (Captain Bob, 2026-10-26: "pick like the generic size of
|
||||
any old ... thumb drive off the shelf ... I want the sizing to be dynamic, so like a minimum and then
|
||||
... no max or reasonable max size"; "all to Artemis, identity stays at 500 MiB"). Set in one place,
|
||||
|
||||
Reference in New Issue
Block a user