FDS/OS 1.0

This commit is contained in:
2026-09-21 22:29:23 +08:00
commit 99bc3d15c5
430 changed files with 34876 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
# FDS/OS implementation scope
Read `docs/master-plan.md` and `docs/build-host.md` before changing the build.
The user has explicitly authorized implementation through M12. Proceed through
the remaining milestones in order, keeping the repository buildable and recording
actual acceptance evidence. Defer tests that require the physical Raspberry Pi
or its attached hardware; implement the corresponding software and hardware-test
procedures, and never substitute VM results for physical measurements.
Empty future component directories are intentional until their implementation;
do not fill them with placeholder implementations that claim to work.
The user explicitly authorized importing the existing Paperlike 13K `dasungd`
into the base system. Its Rust workspace member, static ARM package, base package
selection, and native s6 service are required throughout M0–M12. Keep it in the base boot bundle, independent of
GUI or ENVIRONMENT cartridges. Read `docs/dasung.md` before changing it; do not
claim Pi boot or physical power-cycle recovery is verified.
- Use English for all project-owned documentation, comments, diagnostics, task
summaries, and conversation. Keep the master plan and build context in English.
- General userspace and XBPS target architecture: aarch64 + glibc.
- FDS executables: Rust + static aarch64-unknown-linux-musl by default.
- Use Clap for every Rust command-line interface, including test helpers. Define
commands and options with typed parsers; do not hand-parse argument vectors.
- No systemd, runit, BusyBox, shell PID1, boot-time cache compilation, or sleeps
to hide races in the target system.
- Keep upstream Void files unchanged; pin its submodule and use `packages/` overlays.
- Explain every new dependency and keep documentation accurate.
- Run `make bootstrap`, `make smoke-test`, and `make check` for M0 build changes.
Report skips and missing hardware honestly. Do not invent boot benchmarks.
- Run `make rootfs PROFILE=cli` and `make rootfs-test` for M1 composition changes.
M2 adds native init. Run `make init-test` to verify PID 1 and service control
in the isolated ARM virtual machine. The VM kernel is a test fixture, not a Pi image.
# Workstation software and emulator follow-up
Read `docs/workstation.md`, `docs/software-format.md` and
`docs/workstation-tooling-plan.md` for this extension. Software builds and new
PROGRAM cartridge creation run on generic Linux workstations. The public native
Clap tools are `fds-cartridge` and `fds-emulator`. Software images have GPT
metadata partition 1 plus m EROFS payload partitions holding xz tarballs. Keep
legacy reading and base Dasung integration. Do not mutate the frozen 0.1.0 release
or treat its historical acceptance as evidence for changed sources. Validate
with `make workstation-test` and `make emulator-test` plus relevant guest checks.