Quick Start
Prerequisites
| Tool | Minimum version | Purpose |
|---|---|---|
| GCC or Clang | gcc 12 / clang 16 | C11 cross-compilation |
| QEMU | 8.0 | arm64 smoke validation |
| Python | 3.10 | Config validation scripts |
| GNU Make | 4.3 | Build orchestration |
brew install gcc llvm qemu python3 make# Verifyqemu-system-aarch64 --versionsudo apt updatesudo apt install build-essential gcc-aarch64-linux-gnu clang \ qemu-system-arm python3 makesudo dnf install gcc gcc-aarch64-linux-gnu clang \ qemu-system-aarch64 python3 makeClone and Build
1. Clone the repository
git clone https://github.com/NguyenTrongPhuc552003/haven.gitcd haven2. Install git hooks (optional but recommended)
./scripts/setup-hooks.sh3. Build core stubs
make build# or explicitly with a compiler:CC=clang make buildExpected output: [build] compiling haven core stubs
4. Run the full test suite
make testAll test binaries are compiled and executed. You should see no assertion failures.
5. Run style and config checks
make style-check6. Run the QEMU smoke test
./scripts/qemu-smoke.shThis verifies qemu-system-aarch64 is reachable. Full QEMU partition boot
is a Release 2 milestone.
Run the Full CI Preflight Locally
./scripts/ci-preflight.shThis runs build → style-check → test → check-configs in sequence, identical
to what the CI pipeline executes.
Capture a Benchmark Baseline
python3 scripts/benchmark-baseline.pyResults 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 siteSee Repository Structure for the full layout.