docs: correct the layout block, and note what a copy leaves behind
README's layout predated the BIOS/UEFI split. moving-to-linux.md now says what is gitignored and therefore absent from a clone: dist/ holds 61 MB of upstream tarballs, so copy it or let the build re-fetch them -- make ports verifies each against a known SHA-256 either way.
This commit is contained in:
parent
4ac7e19397
commit
dbb88064c1
4 changed files with 58 additions and 1 deletions
|
|
@ -1,6 +1,7 @@
|
||||||
- [SchOS rename + git](schos-rename-and-git.md) — Schunix is SchOS and the kernel is SchIFT; the tree is under local git, and the two bugs the rename caused.
|
- [SchOS rename + git](schos-rename-and-git.md) — Schunix is SchOS and the kernel is SchIFT; the tree is under local git, and the two bugs the rename caused.
|
||||||
- [Cross-platform build](schos-cross-platform-build.md) - Windows, Linux, macOS and BSD all build it; clang everywhere, and the four host assumptions that used to break.
|
- [Cross-platform build](schos-cross-platform-build.md) - Windows, Linux, macOS and BSD all build it; clang everywhere, and the four host assumptions that used to break.
|
||||||
- [Memory sync](schos-memory-sync.md) - memory lives in the repo at .claude/memory/; tools/memory-sync.sh moves it between machines.
|
- [Memory sync](schos-memory-sync.md) - memory lives in the repo at .claude/memory/; tools/memory-sync.sh moves it between machines.
|
||||||
|
- [The Linux machine](schos-linux-machine.md) - Fedora laptop at /home/nexoniarz/Documents/SchOS; the three things only it can test.
|
||||||
- [Performance and init](schos-performance-and-init.md) - BSIZE must equal SCHFS_BLKSIZE (4-34x), and why Ctrl-C could kill pid 1.
|
- [Performance and init](schos-performance-and-init.md) - BSIZE must equal SCHFS_BLKSIZE (4-34x), and why Ctrl-C could kill pid 1.
|
||||||
- [Trusting bootcheck](schos-bootcheck-trust.md) - it silently stopped running; count the [ok] lines, never just grep FAIL.
|
- [Trusting bootcheck](schos-bootcheck-trust.md) - it silently stopped running; count the [ok] lines, never just grep FAIL.
|
||||||
- [schinit](schos-schinit.md) - process 1 is launchd-shaped; job manifests, and why setsid() cost the shell its terminal.
|
- [schinit](schos-schinit.md) - process 1 is launchd-shaped; job manifests, and why setsid() cost the shell its terminal.
|
||||||
|
|
|
||||||
43
.claude/memory/schos-linux-machine.md
Normal file
43
.claude/memory/schos-linux-machine.md
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
---
|
||||||
|
name: schos-linux-machine
|
||||||
|
description: The Fedora laptop, its project path and memory key, and the three things only it can test
|
||||||
|
metadata:
|
||||||
|
node_type: project
|
||||||
|
---
|
||||||
|
|
||||||
|
Nexoniarz works from **two machines** and moved the project to the second on
|
||||||
|
2026-08-09.
|
||||||
|
|
||||||
|
| | Windows desktop | Fedora laptop |
|
||||||
|
|---|---|---|
|
||||||
|
| path | `D:\DEV\SchOS` | `/home/nexoniarz/Documents/SchOS` |
|
||||||
|
| memory key | `D--DEV-SchOS` | `-home-nexoniarz-Documents-SchOS` |
|
||||||
|
|
||||||
|
Fedora 44, Ryzen 5 7000-series, RTX 4050, 16 GB DDR5. The GPU is irrelevant to
|
||||||
|
the build — QEMU runs headless for tests.
|
||||||
|
|
||||||
|
`tools/posix/setup-fedora.sh` installs the toolchain (`--check` to only report).
|
||||||
|
`docs/moving-to-linux.md` is the procedure. Memory moves with
|
||||||
|
[[schos-memory-sync]]: `import` after arriving, `export` and commit after a
|
||||||
|
session that learned something.
|
||||||
|
|
||||||
|
**Three things only the Linux machine can do**, and they are the reason the move
|
||||||
|
matters:
|
||||||
|
|
||||||
|
1. **`make ports`** builds musl, toybox and mksh from source. Windows cannot do
|
||||||
|
it at all — the build skips ports and uses whatever is staged in `sysroot/`,
|
||||||
|
which is why `sysroot/bin/sh` still carries the pre-rename symbol
|
||||||
|
`__schunix_tp`.
|
||||||
|
2. **The SchFS round-trip test** needs symlinks and hard links, which Git Bash
|
||||||
|
cannot create, so it skips on Windows. **It has never actually run** — the
|
||||||
|
one part of SchFS with no coverage.
|
||||||
|
3. **KVM.** A Ryzen box has SVM, so QEMU runs at native speed. Deliberately not
|
||||||
|
the Makefile default: the suite's timings were set under TCG.
|
||||||
|
|
||||||
|
**PowerShell has no Fedora package**, and `tools/windows/bootcheck.ps1` is the
|
||||||
|
test suite. pwsh runs it on Linux fine; it comes from Microsoft's repo or the
|
||||||
|
GitHub tarball. Nothing else needs it.
|
||||||
|
|
||||||
|
**Never push.** There is no git remote and there should not be one until
|
||||||
|
Nexoniarz says otherwise — see [[nexoniarz-sharing-preference]]. "Push to git"
|
||||||
|
in this project means commit locally.
|
||||||
|
|
@ -105,7 +105,7 @@ make schfs-check # SchFS B-tree, object and image suites
|
||||||
kernel/ arch/ core/ dev/ drivers/ fs/ net/ proc/ sys/
|
kernel/ arch/ core/ dev/ drivers/ fs/ net/ proc/ sys/
|
||||||
fs/schfs/ the filesystem -- same source the host tools compile
|
fs/schfs/ the filesystem -- same source the host tools compile
|
||||||
include/ kernel and userland headers
|
include/ kernel and userland headers
|
||||||
boot/ bootblock and stage 2 (VBE splash, boot menu)
|
boot/ bios/ (MBR, stage 2, VBE splash) uefi/ (PE loader)
|
||||||
lib/ cmd/ first-party userland runtime and programs
|
lib/ cmd/ first-party userland runtime and programs
|
||||||
ports/ third-party software built from source
|
ports/ third-party software built from source
|
||||||
tools/ windows/ (.ps1) posix/ (.sh) python/ (.py) and .c/.pl
|
tools/ windows/ (.ps1) posix/ (.sh) python/ (.py) and .c/.pl
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,19 @@ git log --oneline | head -3 # should show the same commits
|
||||||
git status # should be clean
|
git status # should be clean
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### What is not in the repo
|
||||||
|
|
||||||
|
`build/`, `sysroot/` and `dist/` are all gitignored, so `rsync -a` of the
|
||||||
|
working tree carries them but a `git clone` would not. Two are worth thinking
|
||||||
|
about:
|
||||||
|
|
||||||
|
- **`dist/`** holds the upstream tarballs — musl, toybox, mksh, the DOOM WADs,
|
||||||
|
`usb.ids`. 61 MB of other people's release artefacts. Copy it to save the
|
||||||
|
download, or let the build fetch them again; `make ports` calls `curl` and
|
||||||
|
verifies each against a known SHA-256, so a re-download is safe either way.
|
||||||
|
Without a network connection, copy it.
|
||||||
|
- **`sysroot/`** is assembled by the build.
|
||||||
|
|
||||||
`build/` and `sysroot/` are ignored and do not need copying — `make` rebuilds
|
`build/` and `sysroot/` are ignored and do not need copying — `make` rebuilds
|
||||||
them. **One exception**: `sysroot/bin/` holds musl, toybox and mksh, which
|
them. **One exception**: `sysroot/bin/` holds musl, toybox and mksh, which
|
||||||
cannot be built on Windows and so were staged there once. On Linux they *can*
|
cannot be built on Windows and so were staged there once. On Linux they *can*
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue