Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Prerequisites

What you need to build and run the kernel. Publishing this docs site is optional. GitHub Pages is not required for kernel work.

Kernel (required)

NeedWhy
Nightly Rust + rust-src + llvm-tools-previewFreestanding build-std for the custom aarch64-ctos.json target. Pin is rust-toolchain.toml.
qemu-system-aarch64Primary guest is QEMU -machine virt (ADR-003). Debian/Ubuntu package is often qemu-system-arm.
A host that can run those toolsWindows, macOS, or Linux. The kernel target stays AArch64.
rustup toolchain install nightly
rustup component add rust-src llvm-tools-preview
# Debian/Ubuntu: sudo apt-get install qemu-system-arm

cargo build          # ELF at target/aarch64-ctos/debug/ctos
cargo run            # qemu-system-aarch64 -machine virt
./scripts/qemu-smoke.sh
flowchart LR
  R["rustup nightly + rust-src"] --> B["cargo build"]
  B --> Q["qemu-smoke / cargo run"]

That rebuilds the kernel, including any in-tree no_std code you add. It is not a port of a Linux app. See Building or porting.

Commands and honesty notes: GitHub README. A successful cargo build on your machine is not a copied Verified boot from another host.

Optional

ExtraWhen
Docker linux/arm64cts-ai (Windows ARM64) path: ./scripts/docker-smoke.sh. Do not pass --platform linux/amd64.
mdBook 0.5.4 + mdbook-mermaid 0.17.1Local docs site only: ./scripts/docs-build.sh. See Docs website + DNS.

Not required

  • GitHub Pages, a custom domain, or ctos.artof.link (the site is live; you still do not need it to hack the kernel)
  • Raspberry Pi hardware, an x86_64 boot path, or VGA
  • Obsidian (.obsidian/ is gitignored)
  • AWS / Route 53 credentials (DNS is a publish concern, not a kernel build concern)