memory: the installer is scoped, and the live CD is off the list

Records that a mountable ISO 9660 root was called off -- the ISO already
boots a complete system from the ramdisk, so it is the live environment
and an installer makes a mountable disc redundant, which drops the ATAPI
driver and ISO 9660 filesystem entirely.

Also records the installer's shape (both firmwares from the start, .sip
before anything installs), the five-stage dependency chain, and the 4 GB
limit the raw block device carries.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Nexoniarz 2026-08-09 22:20:20 +02:00
commit 85f0ebf802
2 changed files with 43 additions and 6 deletions

View file

@ -5,7 +5,7 @@ metadata:
node_type: memory node_type: memory
type: project type: project
originSessionId: a665e14b-86bd-4b41-a228-51377f3e9225 originSessionId: a665e14b-86bd-4b41-a228-51377f3e9225
modified: 2026-08-09T20:03:23.603Z modified: 2026-08-09T20:19:56.990Z
--- ---
**`make iso` produces a bootable `schunix.iso`** (added 2026-08-04). Always a **`make iso` produces a bootable `schunix.iso`** (added 2026-08-04). Always a
@ -83,7 +83,14 @@ list was not an option, because the ramdisk is linked into the kernel binary and
what goes into it is a licensing question ([[schunix-ramdisk-root-sizing]]). what goes into it is a licensing question ([[schunix-ramdisk-root-sizing]]).
`RAMDISK_NINODES` is gone: SchFS has no preallocated inode table. `RAMDISK_NINODES` is gone: SchFS has no preallocated inode table.
**Not a live CD.** The disc boots from the ramdisk embedded in the kernel, not **Not a live CD, and deliberately staying that way** (decided 2026-08-09).
from itself. Mounting it would need an ATAPI block driver (`kernel/dev/ide.c` The disc boots from the ramdisk embedded in the kernel, not from itself.
speaks only ATA — 0x20/0x30/0xC4, no PACKET) plus an ISO 9660 filesystem behind Mounting it as root would need an ATAPI block driver (`kernel/dev/ide.c` speaks
`struct fs_ops`. Only the *bootloader* does ATAPI, in real mode. only ATA — 0x20/0x30/0xC4, no PACKET) plus an ISO 9660 filesystem behind
`struct fs_ops`; only the *bootloader* does ATAPI, and only in real mode.
Nexoniarz called that work off: the ISO already boots a complete system from
the ramdisk, so it *is* the live environment, and an installer makes a
mountable disc redundant. The installer copies from the running root, so it
never reads the disc as a filesystem at all. See
[[schunix-roadmap-and-projects]].

View file

@ -5,7 +5,7 @@ metadata:
node_type: memory node_type: memory
type: project type: project
originSessionId: a665e14b-86bd-4b41-a228-51377f3e9225 originSessionId: a665e14b-86bd-4b41-a228-51377f3e9225
modified: 2026-08-04T23:05:57.185Z modified: 2026-08-09T20:20:11.342Z
--- ---
**Set out 2026-08-04.** Recorded in `docs/roadmap.md`; the naming and the **Set out 2026-08-04.** Recorded in `docs/roadmap.md`; the naming and the
@ -48,6 +48,36 @@ size, and dedups across images. Most of it exists — `tools/mkschfs.c` and
`tools/mkfs.c` already do content dedup with an `(st_dev, st_ino)` fast path. `tools/mkfs.c` already do content dedup with an `(st_dev, st_ino)` fast path.
`mksip` should share that code. `mksip` should share that code.
## The installer, scoped 2026-08-09
**A live CD is off the list.** The ISO boots a complete system from the
ramdisk, so it already is the live environment; an installer makes a mountable
disc redundant. That drops the ATAPI driver and ISO 9660 filesystem entirely
— see [[schunix-iso-boot]].
Nexoniarz chose the ambitious shape on both open questions:
- **Both firmwares from the start**: GPT with a FAT ESP *and* a SchFS
partition, bootable on BIOS and UEFI. Needs a FAT writer and GPT code inside
the OS before anything can be installed at all.
- **`.sip` first**, rather than copying the running root. The installer applies
a package; `mksip` comes before anything installs.
Dependency chain, each stage separately verifiable:
1. **Raw block device** — *done*, commit 66152ad. `/dev/hda`, `/dev/hdb`,
major 8, minor = IDE device number. Verified against the host as an
independent oracle in both directions. **Limit: `devsw` passes the offset as
a 32-bit `uint`, so a raw disk stops at 4 GB** — widen before installing to
real hardware.
2. **`.sip` format + `mksip`**, sharing the dedup path in `mkschfs.c`. Test it
the way the SchFS round-trip is tested: build, apply, `diff -r` against the
source tree ([[schfs-phase2-mount]]).
3. **In-OS tooling**: GPT writer, FAT ESP writer, native SchFS formatter.
4. **Bootable target**: bootblock + stage2 for BIOS, ESP + BOOTX64.EFI + kernel
for UEFI.
5. **`schinst`** in `projects/`, driving all of it.
**Confirmed order (2026-08-05):** finish USB, then sockets + raw input, then **Confirmed order (2026-08-05):** finish USB, then sockets + raw input, then
virtio-gpu. virtio-gpu.