This directory is the source of truth for why MiniOS looks the way it
does. ARCHITECTURE_PLAN.md tracks future work only; every completed
architectural decision lives here as a short record with Context,
Decision and Consequences. New major decisions add a record; the plan
never grows a retrospective section again.
Format: NNNN-short-title.md with Status, Context, Decision,
Consequences. Numbers are monotonic; status is accepted (shipped),
proposed (design on record, not shipped), partially implemented
(only some slices landed) or superseded (with a pointer to the
replacement).
| ADR | Title | Status |
|---|---|---|
| 0001 | Tick listener bus (Observer) | accepted |
| 0002 | Port I/O HAL (hal_io.h) |
accepted |
| 0003 | SMP bring-up and per-CPU state | accepted |
| 0004 | SMP scaling: futex, per-CPU runqueues, batch, RCU-lite | accepted |
| 0005 | VMA red-black tree for mmap tracking | accepted |
| 0006 | Syscall argument sanitization macros | accepted |
| 0007 | KASLR and the low-4 MB layout contract | accepted |
| 0008 | TLS 1.2 client scope | accepted |
| 0009 | ZIP builtins over vendored miniz | accepted |
| 0010 | dlmalloc mspace as the kernel heap backend | accepted |
| 0011 | Kernel as Mediator: bounded contexts, thin kernel.c |
accepted |
| 0012 | Driver Strategy registry and VFS file_operations facade | accepted |
| 0013 | Priority inheritance on blocking mutexes | accepted |
| 0014 | Syscall truthfulness pass (FreeDom readiness Phase 0) | accepted |
| 0019 | FreeDom Wayland intermediate layer and MiniFS growth | accepted |
| 0020 | Window manager header contracts (wm_*.h) |
accepted |
| 0021 | Real FreeDom browser on MiniOS (DOOM/Q2G pattern) | accepted |
| 0022 | Doom Map Editor with Immutable IWAD and PWAD Snapshots | proposed (design on record) |
| 0023 | Multi-Sector DoomEdit Maps Without a BSP Compiler | accepted (Phase 2 slice: real sectors, trivial BSP) |
| 0024 | Wayland-mini subset and ring-3 compositor | accepted (phased F0-F3, shim-first) |
| 0025 | Wayland-mini session layer over any byte transport | accepted (phased, ring-3 first) |
| 0026 | Mailbox transport for Wayland-mini multiprocess windows | accepted (interim carrier, kernel pipe stays the proper one) |
| 0027 | Pipe carrier and tile WM unification | partially implemented (FS layer landed, pipe deferred, heavyweight-live still open) |
The numbering skips 0015-0018: no record ever carried those numbers.
Formal analysis: ../vma-complexity.md proves the