Minimal skeleton for a freestanding x86_64 kernel and bootable ISO.
- GNU Make
grub-mkrescue(fromgrub-pc-binon Debian/Ubuntu or equivalent) andxorrisoqemu-system-x86_64clang(preferred) orgcc
Check your toolchain:
./scripts/setup_toolchain.shInstall missing tools (Ubuntu/Debian):
sudo apt-get install build-essential grub-pc-bin xorriso qemu-system-x86# Full clean build
./scripts/build.sh
# Fast sanity build
make check
# Run the ISO in QEMU
make runRun QEMU with deterministic serial output + a log file:
make qemu-logExpected early markers (in order):
BOOT0..BOOT5(from early boot)KMAIN(from kernel entry)
When the kernel prints a faulting RIP (from an exception or panic()), symbolize it:
./scripts/symbolize.sh 0xDEADBEEFArtifacts:
build/kernel.elf(symbols/debug info foraddr2line)build/kernel.map(linker map file)
For more detailed symbolization (line numbers), use:
make debug-isokernel/— architecture code, headers, sourcesiso_root/— GRUB boot tree used to assemble the ISOscripts/— helper scripts (reserved)