This project is a 64-bit experimental kernel intended to be run on ARMv8 and RISC-V targets.
Note: On some distributions of Linux, aarch64-none-elf (or equivalent) may not be available. It is
NOT guaranteed that the aarch64-linux-gnu-* toolchain is compatible, so you may need to compile
the toolchain yourself from https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads.
The linux versions are listed because as of writing this, they do work, but that could change.
sudo apt update
sudo apt install \
gcc-aarch64-linux-gnu \
binutils-aarch64-linux-gnu \
qemu-system-arm \
make \
gdb-multiarch \
gitInstall the required packages (note: some are AUR packages):
yay -S \
qemu-full \
make \
git \
arm-gnu-toolchain-aarch64-none-elf-binThe dependencies for RISC-V builds are different, namely the toolchain and QEMU packages.
Note: Similarly to ARM's toolchain availability on some distributions, there is no guarantee that
the riscv64-linux-gnu version of the toolchains will be compatible with this kernel.
sudo apt update
sudo apt install \
gcc-riscv64-linux-gnu \
binutils-riscv64-linux-gnu \
qemu-system-misc \
make \
gityay -S \
riscv64-elf-gcc \
riscv64-elf-binutils \
qemu-full \
make \
gitSource the environment script:
source env.shBuilding for ARM64:
build_arm64 Building for RISC-V:
build_riscvRunning the ARM kernel:
run_emu_arm64Running the RISC-V kernel:
run_emu_riscvDetails of kernel development, scripts for using the kernel and other relevant information can be
found in the docs/ folder.
Last Updated: 2025-08-12