FreeBSD Research
-
FreeBSD Live ISO — implementation report & remaining options
Working livecd: cd9660 + mkuzip + gunion overlay + init_chroot pivot. Measured at 396 MiB minimal / 3.8 GiB with KDE Plasma 6. Lessons learned and three concrete paths to RAM-scaled writable headroom.
-
SquashFS on FreeBSD — architecture research
Why a Linux-style squashfs livecd is hard on FreeBSD today: GSoC 2023 kernel work, geom_uzip vs squashfs vs tarfs, gunion vs unionfs, reboot -r vs init_chroot.
-
freebsd-livecd-gunion-reroot — experimental architecture DEFERRED
Combine gunion (block-level RAM overlay) with
reboot -r reroot to eliminate the kernel/userspace namespace split. Deferred — the simpler symlink trick (cdroot/boot/firmware → /sysroot/boot/firmware) verified working on real hardware, addressing the firmware-loading problem without architectural rewrite. Plan preserved as a reference if some future need genuinely requires kernel-and-userspace-share-a-root semantics.
-
gershwin-on-freebsd: init_chroot + unionfs livecd rework + bsdtar installer — plan
Fixes "admin can't log in after install" at its source. Replaces gershwin-on-freebsd's piecemeal nullfs + rc.d-neutering
init_script with the init_chroot + in-kernel-unionfs (tmpfs upper / uzip lower) pivot — the whole root becomes one writable union, the real rc.d scripts run, nothing is neutered. Ports the /boot/firmware → /sysroot/boot/firmware symlink; splits loader.conf into a live-only tier and an everywhere loader.conf.d/gershwin.conf. Changes gershwin-system's installer to copy the pristine uzip with bsdtar --acls --xattrs --fflags from a read-only mount of /dev/md0.uzip, instead of a broken cp -a tree copy — full metadata fidelity, off unionfs entirely, no live-session cruft. Net: minimal divergence between the livecd and the installed system.
-
gershwin native installer backend —
Copier.framework scoping plan Scoping
Follow-up to the livecd plan: a fully-native, cross-platform GNUstep file-level copier to eventually replace the interim bsdtar installer step. A Copier.framework (libs-base citizen) + CLI — GSFileCopier / GSCopyOptions / GSFileMetadata / GSInodeMap / GSExcludeMatcher — with a ~600-800 line platform shim (extattr_*/acl_*_link_np/lchflags on FreeBSD, *xattr/acl_*_file/FS_IOC_*FLAGS on Linux). No incremental deps since the ISO always ships GNUstep. Documents the load-bearing per-file operation ordering, the unpreservable bits (ctime, birthtime), and a local-only v1 scope.