46 lines
3.0 KiB
Markdown
46 lines
3.0 KiB
Markdown
# FDS/OS implementation scope
|
||
|
||
Read `docs/developer/master-plan.md` and `docs/developer/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/developer/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 containing installed Void
|
||
package trees. Build source templates with xbps-src on the workstation; do not
|
||
create new xz software bundles or extract programs at guest launch. 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.
|