The header scan (Captain Bob, 2026-11-10): 788 source files -- 351 with the
SL-1.0 header, 12 with the old name (docs/working/experiments, kept by
ruling), 31 under someone else's licence (tools/kconfig, Linux's, GPL-2.0:
kept), and 394 with none. Ruled: the SPDX form; capsules (.4th, .f18) and
proofs (.thy) left for a ruling of their own (mkcapsule's 64x16 block format,
content-addressed capsules).
253 files now begin
SPDX-License-Identifier: LicenseRef-Starship-1.0
Copyright (c) 2023-2026 Robert A. James
as a /* */ block (C, headers, assembly, linker scripts) or # lines (scripts,
Makefiles, Kconfig; below a shebang or a coding line); tools/mkcapsule.c,
which had the copyright line, gets the SPDX line only.
Not touched: docs/working/ (archive and old campaign material, as the
ruling kept the experiments); v4/system/post_cases.c (generated by
v4/tools/mkpost.py, "do not edit" -- the generator has the header).
Comments only: the kernel builds on amd64, aarch64, riscv64; make -C v4
test-32: 39 programs, 0 failures; every changed script parses.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GE3SDvQn5EoxdGufk84zz2
42 lines
2.0 KiB
Bash
42 lines
2.0 KiB
Bash
# SPDX-License-Identifier: LicenseRef-Starship-1.0
|
|
# Copyright (c) 2023-2026 Robert A. James
|
|
# qemu-args.sh -- the demo machine, sourced by make-snapshot.sh and start-session.sh.
|
|
#
|
|
# A session resumes a machine saved by make-snapshot.sh, and QEMU can resume a saved machine only
|
|
# into the same machine: the same board, CPU, memory, firmware and devices. Both scripts build the
|
|
# command line here, so they cannot drift apart. It is the machine `make -f kernel/Makefile
|
|
# ARCH=amd64 qemu` boots (q35, TCG, OVMF, the ISO as a CD) -- in 384 MiB, not its 1 GiB: v4 boots
|
|
# to Zuse's prompt from 256 MiB, refuses at 128 ("no memory for the block chain"), measured
|
|
# 2026-11-07 (#116) -- less what a visitor must not have: no network device, no Artemis disk, no
|
|
# display, and QEMU's seccomp sandbox on.
|
|
#
|
|
# demo_qemu_args <state-dir> <vars.fd> -> fills the array QEMU_ARGS
|
|
#
|
|
# <state-dir>/StarshipOS.iso is the image; <state-dir>/identity.img, if there, is the identity
|
|
# drive every session gets (issue #111), attached with its writes discarded.
|
|
|
|
OVMF_CODE=${OVMF_CODE:-/usr/share/OVMF/OVMF_CODE_4M.fd}
|
|
|
|
demo_qemu_args() {
|
|
local dir=$1 vars=$2
|
|
QEMU_ARGS=(
|
|
-machine q35,accel=tcg
|
|
-cpu qemu64,+rdrand
|
|
-m 384 # v4 boots from 256 MiB; 384 leaves room (#116)
|
|
-smp 1
|
|
-drive "if=pflash,format=raw,readonly=on,file=$OVMF_CODE"
|
|
-drive "if=pflash,format=raw,file=$vars"
|
|
-drive "if=none,id=cd,media=cdrom,readonly=on,file=$dir/StarshipOS.iso"
|
|
-device ide-cd,drive=cd,bootindex=0
|
|
-device qemu-xhci,id=xhci0,p2=16,p3=16 # kernel/Makefile XHCI_PORTS
|
|
-nic none
|
|
-display none
|
|
-no-reboot
|
|
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny
|
|
)
|
|
if [ -f "$dir/identity.img" ]; then
|
|
QEMU_ARGS+=(-drive "if=none,id=ident,format=raw,snapshot=on,file=$dir/identity.img"
|
|
-device usb-storage,bus=xhci0.0,port=1,drive=ident)
|
|
fi
|
|
}
|