Bring the docs up to the M17-M18 reality; pre-settle M19-M20 ambiguities
resilience.md: steps 1-4 of the ladder are built — supervision, exit reasons, restart with backoff, crash-loop caps, all proven by scenario; what remains is scope, not mechanism. README statuses follow. drivers.md gains the driver-contract section (harness, hello, crash-freely). The M19-M20 plan pre-settles three things the loop would otherwise have had to decide alone: the memory-map pass-through for apertures, the manager spawning 'discovery' from M20.1, and hid[8] riding ChildAdded for ACPI string identity until the FDT widening.
This commit is contained in:
+12
-5
@@ -1,10 +1,17 @@
|
||||
# Resilience: fault isolation and live restart
|
||||
|
||||
Steps 1–2 of the ordering below are **built**: user-mode isolation, and fault →
|
||||
kill the process → keep the core (`onException` in `system/kernel/kernel.zig`; the
|
||||
`fault-recovery` test proves a crashing ring-3 process dies alone while the system
|
||||
keeps running). The supervisor notification and restart policy (steps 3+) are
|
||||
still design. This is the property danos is really chasing:
|
||||
Steps 1–4 of the ordering below are **built** (M17–M18, 2026-07-13): user-mode
|
||||
isolation; fault → kill the process → keep the core (`onException`; the
|
||||
`fault-recovery` test); the supervisor notification **with exit reasons**
|
||||
([process-lifecycle.md](process-lifecycle.md) — clean exit, fault class, or
|
||||
killed, recorded before the notice posts); and the **restart policy itself**
|
||||
([device-manager.md](device-manager.md)): the device manager supervises every
|
||||
driver, restarts crashes with backoff, caps crash loops, and re-claims work
|
||||
because the kernel releases a dead process's claims. The `driver-restart` and
|
||||
`usb-report` scenarios prove kill → release → respawn → re-claim → re-report
|
||||
end to end. What remains of this document's ladder is scope, not mechanism:
|
||||
more of the system moved into restartable processes (the discovery migration,
|
||||
[m19-m20-plan.md](m19-m20-plan.md), is the next rung). This is the property danos is really chasing:
|
||||
**if a part of the OS breaks, isolate it, and re-initialise it — without rebooting.**
|
||||
A crashed driver gets restarted; a wedged service gets killed and brought back. It's
|
||||
the reason the [microkernel](vision.md) shape was chosen, and it's a *separate* goal
|
||||
|
||||
Reference in New Issue
Block a user