Build it from source
Rabbit is a research kernel in active development. There are no signed binaries and no GitHub releases yet; the only supported way to run it is to build it yourself.
Clone
git clone https://github.com/NicolasBecasAzagra/Rabbit.gitRequirements
| Rust nightly | nightly-2026-10-24, pinned in rust-toolchain.toml. |
|---|---|
| Components | rust-src, llvm-tools, rustfmt, clippy. |
| Target | x86_64-unknown-linux-musl for the userland, installed by make musl-std. |
| QEMU | qemu-system-x86_64, 8.2 or newer. |
| Disk images | xorriso and mtools, only if you build disk images. |
Install the pinned toolchain
The toolchain is pinned in rust-toolchain.toml. This command installs the required components.
rustup toolchain install nightly-2026-10-24 \
--component rust-src --component llvm-tools --component rustfmt --component clippyBuild, test and run
make buildmake runmake testmake fmt-checkmake clippymake clippy-hostmake agent agent-initramfsmake print-kernel-pathBoot in QEMU
qemu-system-x86_64 -M q35 -m 512M \
-kernel "$(make -s print-kernel-path)" \
-display none -monitor none -no-reboot -serial stdio \
-device isa-debug-exit,iobase=0xf4,iosize=0x04The boot ends with exit status 33, which means boot OK.
Attach a debugger
qemu-system-x86_64 -M q35 -m 512M \
-kernel "$(make -s print-kernel-path)" -s -S \
-display none -monitor none -no-reboot -serial stdiogdbstub on port 1234, CPU halted. Attach with lldb "$(make -s print-kernel-path)" and gdb-remote 1234 on macOS, or gdb and target remote :1234 on Linux.
Repository layout
| Crate / directory | What it does |
|---|---|
rabbit-arch | x86_64 hardware access, port I/O, boot trampoline |
rabbit-bootinfo | pure parsing of the PVH boot handover structures |
rabbit-drivers | 16550A UART, isa-debug-exit |
rabbit-mm | paging, the buddy allocator, the heap, the mappings |
rabbit-sched | the scheduler and its policy |
rabbit-elf | the ELF64 reader |
rabbit-initramfs | the reader of the cpio archive of the initramfs |
rabbit-kernel | the no_std kernel binary |
rabbit-userland | the test program that runs unmodified in ring 3 |
rabbit-bench | the workload that measures the kernel |
rabbit-infer | the inference runtime, the grammar, the merge encoder |
rabbit-agent | the agent loop: model, tool call, tool result |
rabbit-net | the protocols of the network path |
rabbit-netclient | the client of the network |
rabbit-netstream | the stream of the network |
rabbit-http | the HTTP of the agent |
bench | the rig, the workloads, the reference build, the datasets |
docs | architecture, boot protocol, benchmarking, VM setup |
scripts | the generator of the interrupt stubs |
Next
The benchmarking document explains the protocol; the report contains every measurement.