Skip to content

Quick Start

Prerequisites

ToolMinimum versionPurpose
GCC or Clanggcc 12 / clang 16C11 cross-compilation
QEMU8.0arm64 smoke validation
Python3.10Config validation scripts
GNU Make4.3Build orchestration
Terminal window
brew install gcc llvm qemu python3 make
# Verify
qemu-system-aarch64 --version

Clone and Build

1. Clone the repository

Terminal window
git clone https://github.com/NguyenTrongPhuc552003/haven.git
cd haven

2. Install git hooks (optional but recommended)

Terminal window
./scripts/setup-hooks.sh

3. Build core stubs

Terminal window
make build
# or explicitly with a compiler:
CC=clang make build

Expected output: [build] compiling haven core stubs

4. Run the full test suite

Terminal window
make test

All test binaries are compiled and executed. You should see no assertion failures.

5. Run style and config checks

Terminal window
make style-check

6. Run the QEMU smoke test

Terminal window
./scripts/qemu-smoke.sh

This verifies qemu-system-aarch64 is reachable. Full QEMU partition boot is a Release 2 milestone.

Run the Full CI Preflight Locally

Terminal window
./scripts/ci-preflight.sh

This runs build → style-check → test → check-configs in sequence, identical to what the CI pipeline executes.

Capture a Benchmark Baseline

Terminal window
python3 scripts/benchmark-baseline.py

Results are written to build/benchmarks/baseline.json. Commit this file to track performance trends over time.

Directory Layout (Summary)

haven/
├── src/core/ # EL2 hypervisor - mm, irq, sched, dma, exc
├── include/haven/ # Public headers (stage2.h, irq_ownership.h, …)
├── configs/arm64/ # Static partition YAML configs
├── tests/ # unit/, integration/, isolation/
├── scripts/ # build, test, ci, evidence scripts
└── website/ # This Astro Starlight site

See Repository Structure for the full layout.