Source tree reorganization: - Move StarForth v3 engine to v3/ (src/, include/, Makefile) - Move kernel to kernel/ (src/, include/, linker/, Makefile) - Create v4/ skeleton for F18-ISA golden model (DECOMPOSITION.md, JUSTIFICATION.md) - Move FABRIC-0..4.md to docs/fabric/ - Move ONTOLOGY.md and ROADMAP.md to docs/ Board infrastructure: - Add boards/ser5/, boards/raspi/, boards/milkv/, boards/zynq7020/ - Each board has board.mk (ISA, CPU flags, boot recipe) and README.md - Root Makefile becomes thin dispatcher: boot_image, all, clean, docs take TARGET - make boot_image TARGET=SER5|RASPI|MILKV builds one GPT/MBR image per board - ZYNQ7020 target exists but stops with clear error (ARMv7 port not built yet) - scripts/mkdiskimage.sh builds disk images for all boards Docs pipeline: - docs/book/ with LaTeX master (main.tex) and Makefile - pandoc converts Markdown to LaTeX at build time - Two Lua filters: table-widths.lua (wide tables wrap), code-breaks.lua (inline code breaks) - make docs builds single PDF (754 pages, 0 missing characters) - make docs TARGET=<board> adds board appendix - build/docs/<book|board>/meta.tex stamps git commit into PDF Bug fixes: - 42 include paths that only worked by accident now use correct relative paths - clang-18 hardcode replaced with configurable CC variable (fixed aarch64 build) - Pi 5: kernel_2712.img linked at 0x80000, .bss zeroed, memory reserved - Doxyfile, .clang-tidy, README.md, Kconfig paths updated Verified: - Hosted v3 build passes 1012 tests, 0 failures - SER5 image boots in QEMU (OVMF), POST passes, K exact (65536 = Q48_ONE) - Milk-V image boots in QEMU (OpenSBI + U-Boot + bootefi), POST passes - make clean TARGET=<board> removes only that board and its ISA objects - make all builds all boards, hosted v3, and docs in one run Co-authored-by: Junie <junie@jetbrains.com>
127 lines
6.0 KiB
Markdown
127 lines
6.0 KiB
Markdown
# LithosAnanke v2.0.1
|
||
|
||
**UEFI-bootable FORTH microkernel.** Boots from firmware, initialises memory and interrupts, then runs the StarForth VM as its sole userspace runtime. No libc. No OS. Just stone and necessity.
|
||
|
||
*Lithos* (foundation) + *Ananke* (necessity) — the kernel under StarshipOS.
|
||
|
||
---
|
||
|
||
## Status — M7.1 (Capsule System · Multi-VM Fleet)
|
||
|
||
| Milestone | | Status |
|
||
|---|---|---|
|
||
| M0–M6 | UEFI boot · PMM · VMM · IDT · APIC · heap · framebuffer VT100 console (v1.5.1-FINAL) | ✅ Complete |
|
||
| M7 | StarForth VM integration + parity validation | ✅ Complete |
|
||
| **M7.1** | **Capsule birth protocol · Mama FORTH vocabulary · Tripod multi-VM fleet (Hermes/Artemis) · Word-level ACL (Phases 1–7)** | 🔄 **In Progress** |
|
||
| M8 | REPL — keyboard input, interactive Forth | Planned |
|
||
| M9 | Block storage — AHCI driver | Planned |
|
||
|
||
POST at boot: **parity hash verified across amd64/aarch64/riscv64 · Mama capsule dictionary: 453 words**
|
||
|
||
### What's live in M7.1
|
||
|
||
- **Tripod** — a named multi-VM fleet (Hera the Mama VM, Artemis, two Hermes
|
||
instances) births, runs, and re-births independently, verified booting
|
||
live pre-REPL on all three architectures.
|
||
- **Hermes** — a 17-block inter-VM messaging/channel layer between fleet
|
||
members, with async delivery and channel negotiation.
|
||
- **Artemis** — a Block Allocation Map (BAM) storage subsystem with Q48.16
|
||
block-heat tracking and cooldown/reclamation (`ART-COOL`/`ART-REAP`).
|
||
- **Word-level ACL** — every dictionary entry carries a TTL/allow/mode/pin
|
||
access-control record. Strict, TTL, and pinned modes; two console layers
|
||
(emergency `ok>` and superuser `zuse)ok>`). Phases 1–7 complete (C
|
||
infrastructure, FORTH policy layer, `zuse` bootstrap superuser, Isabelle
|
||
proof stubs, kernel parity); Phase 8 (Ed25519 PKI / thumbdrive
|
||
challenge-response) is the only item remaining. Measured overhead once
|
||
active on every check: **+0.0054%–+0.0088%**, CV = **0.000%**, across a
|
||
3×3 Latin-square DoE campaign (architecture × seed × 30 replicates) —
|
||
three orders of magnitude below the measurement floor.
|
||
- **VM Fleet Attractor physics** — the L8 Jacquard mode selector now has a
|
||
real per-VM heat channel into fleet-wide tuning, replacing hardcoded
|
||
compudynamics constants with a dynamically-inferred rate.
|
||
- **Kconfig build configuration** — every physics/heartbeat/pipelining/
|
||
kernel-only tuning knob (~40 total) is now a discoverable, optional
|
||
Kconfig symbol shared with the hosted VM build. See **Quick Start** below.
|
||
|
||
---
|
||
|
||
## Quick Start
|
||
|
||
```bash
|
||
# One boot image per physical target (output: build/boards/<board>/)
|
||
make boot_image TARGET=SER5 # Beelink SER5 -- GPT/ESP, BOOTX64.EFI
|
||
make boot_image TARGET=RASPI # Raspberry Pi 5 -- FAT, config.txt + kernel_2712.img + DTB
|
||
make boot_image TARGET=MILKV # Milk-V Mars -- GPT/ESP, BOOTRISCV64.EFI (U-Boot bootefi)
|
||
make boot_image TARGET=ZYNQ7020 # Zynq-7020 -- ARMv7 port in progress
|
||
make boards # list boards
|
||
|
||
# The same TARGET drives all, docs and clean (make help)
|
||
make # every board with a kernel port + hosted v3 + the book
|
||
make TARGET=RASPI # one board's image + build/docs/LithosAnanke-raspi.pdf
|
||
make docs # build/docs/LithosAnanke.pdf (LaTeX master: docs/book/main.tex)
|
||
make clean TARGET=RASPI # that board's outputs and build/aarch64/kernel
|
||
make clean # all of build/ except build/cache/
|
||
|
||
# Build kernel (requires cross-compilation toolchain, or native gcc)
|
||
make -f kernel/Makefile ARCH=amd64
|
||
|
||
# Run in QEMU with OVMF
|
||
make -f kernel/Makefile qemu
|
||
|
||
# Other architectures
|
||
make -f kernel/Makefile ARCH=aarch64 qemu
|
||
make -f kernel/Makefile ARCH=riscv64 qemu
|
||
```
|
||
|
||
Artifacts: `build/amd64/kernel/starkernel_loader.efi` · `build/amd64/kernel/starkernel_kernel.elf`
|
||
|
||
Tree: `kernel/` (LithosAnanke: `Makefile`, `src/`, `include/starkernel/`, `linker/`),
|
||
`v3/` (StarForth v3 engine and hosted build: `Makefile`, `src/`, `include/`),
|
||
`v4/` (StarForth v4, see `docs/v4.0.0/`), `boards/<board>/` (`board.mk` + boot files).
|
||
Every makefile runs from the repo root; the root `Makefile` forwards any other goal to
|
||
`v3/Makefile` (hosted build).
|
||
|
||
For the hosted VM by itself (Linux, no cross-compiler needed, no bare-metal tooling): see
|
||
the separate **StarForth** repository — LithosAnanke used to be a branch inside that repo,
|
||
now it's its own project with its own `master`.
|
||
|
||
### Build configuration (optional)
|
||
|
||
Every kernel-only knob (`STARFORTH_ENABLE_VM`, `PARITY_MODE`, the shared
|
||
physics/heartbeat family, etc.) is an optional Kconfig symbol — a plain
|
||
`make -f kernel/Makefile` uses the same defaults it always has unless
|
||
you opt in:
|
||
|
||
```bash
|
||
make -f kernel/Makefile ARCH=amd64 menuconfig
|
||
make -f kernel/Makefile ARCH=amd64 kernel_amd64_defconfig
|
||
```
|
||
|
||
---
|
||
|
||
## Documentation
|
||
|
||
| | |
|
||
|---|---|
|
||
| [System Architecture](docs/lithosananke/SYSTEM_ARCHITECTURE.md) | Full kernel + VM design |
|
||
| [HAL Reference](docs/lithosananke/hal/) | Hardware abstraction layer interfaces |
|
||
| [Capsule System — M7.1](docs/lithosananke/M7.1.md) | Capsule birth protocol design |
|
||
| [VM Fleet Attractor design log](docs/working/architecture/VM-FLEET-ATTRACTOR-DESIGN-20260705.md) | Tripod/Hermes/Artemis physics + build-system history |
|
||
| [Getting Started / Kconfig reference](docs/working/architecture/getting-started/DEVELOPER.md#build-configuration-kconfig) | Full symbol reference for both build targets |
|
||
| [Changelog](CHANGELOG.md) | Milestone-level history |
|
||
| [Roadmap](docs/lithosananke/ROADMAP.md) | Milestone plan through self-hosting |
|
||
|
||
---
|
||
|
||
## License
|
||
|
||
[Starship License 1.0 (SL-1.0)](LICENSE) — free for personal, research, and educational use.
|
||
Commercial use requires a separate agreement.
|
||
Attribution to **R.A. James (Captain Bob)** must be preserved in all distributions.
|
||
|
||
**Patent pending.** USPTO provisional filed December 2025 — physics-grounded self-adaptive runtime system. This license does not grant patent rights. Licensing inquiries: rajames440@gmail.com
|
||
|
||
---
|
||
|
||
*Robert A. James (Captain Bob) · Systems Engineer · Hacking since 1973*
|