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:
parent
66152ad2f2
commit
85f0ebf802
2 changed files with 43 additions and 6 deletions
|
|
@ -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]].
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue