Kairos is a multi-architecture hobby kernel with a build/run/test flow optimized for iteration.
- Primary verification architecture:
riscv64 - Supported build targets:
riscv64,x86_64,aarch64 - Boot flow: UEFI + Limine
# 1) Verify host tools
make check-tools
# 2) Boot once (default ARCH=riscv64)
make run
# 3) Run core tests
make testIf you only run one module test first, use:
make test-vfs-ipcCommon module-focused test targets:
make test-mmmake test-schedmake test-vfs-ipcmake test-device-virtio
ARCH-riscv64|x86_64|aarch64TEST_TIMEOUT- test timeout seconds (default180)LOCK_WAIT- wait seconds for run/test lock acquisition (default0)V=1- verbose output
Examples:
make ARCH=x86_64
make TEST_TIMEOUT=300 test-sched
make LOCK_WAIT=5 test-mm
make V=1 run
make print-configRun/test are isolated by default.
- Test runs:
build/runs/<run_id>/... - Run sessions:
build/runs/run/<run_id>/... - Each run writes:
manifest.jsonresult.json
test-soak-prfollows isolated test log path by default (<TEST_BUILD_ROOT>/<arch>/test.log); non-isolated mode defaults tobuild/<arch>/soak-pr.log
Automation should consume result.json.
make lock-status
make lock-clean-staleIf you see lock_busy, either wait for active runs to finish or retry with a small wait window:
make LOCK_WAIT=5 test-vfs-ipcOld isolated runs are auto-pruned before run/test.
- Test runs kept:
RUNS_KEEP(default20) - Run sessions kept:
RUNS_KEEP_RUN(default5)
Manual cleanup:
make gc-runsDefault help is intentionally minimal:
make helpFull target/parameter surface:
make HELP_ADVANCED=1 helpFor detailed build/test/debug behavior, see references/90_BUILD_TEST_DEBUG.md.
kernel/ # kernel sources (arch/core/drivers/fs/net/...)
user/ # userland init + libc/shell
scripts/ # build/run/test orchestration
third_party/ # external dependencies
tools/ # helper tools
build/ # generated artifacts
references/ # subsystem references
MIT (see LICENSE).