Crius is an x86-64 operating system written in C and assembly, using the Limine boot protocol.
Status: early development. The kernel and a minimal userspace (Nexus) build and run under QEMU.
- Kernel (
kernel/) — 64-bit higher-half kernel with GDT/IDT/APIC, PMM/VMM, scheduler, system calls, VFS, ramfs, ext2, framebuffer console, PS/2 and USB HID keyboards, serial and IDE block devices. - Nexus (
nexus/) — a small userspace with libc, init, shell, coreutils, editor and tests.
make # build the kernel, userspace and create crius.iso
make run # boot the ISO in QEMU (creates disk.img automatically if missing)The following tools are required. Exact package names depend on your distribution:
gcc,ld,nasm,make— build toolchaingit,curl— for downloading Limine and the freestanding headersxorriso— for creatingcrius.isoqemu-system-x86_64(or your distribution's x86-64 QEMU binary) — formake rundd,sfdisk(usually fromutil-linux), andmkfs.ext2(usually frome2fsprogs) —make runalso creates adisk.imgtest image
make kernel # build kernel.elf only
make nexus # build userspace nexus.elf onlyThe Makefile downloads Limine v12.3.3 binaries and the freestanding-c-hdrs headers automatically.
sudo dnf install gcc make nasm binutils xorriso qemu-system-x86 curl git util-linux e2fsprogssudo apt install gcc make nasm binutils xorriso qemu-system-x86 curl git util-linux e2fsprogsThe official Crius build environment is Linux-based. On Windows, the recommended approach is WSL2:
- Install WSL2 with Debian or Ubuntu:
wsl --install -d Debian
- Inside WSL2, follow the Debian / Ubuntu instructions above.
- For better performance and compatibility, keep the project inside the WSL2 filesystem (
/home/<user>/...) instead of/mnt/c/....
abi/ Kernel/userspace ABI definitions
docs/ Technical documentation (start with docs/index.md)
kernel/ Kernel source and headers
nexus/ Userspace programs and libc
tools/ Build helpers and linker scripts
Detailed technical documentation is in docs/index.md, including the architecture, kernel subsystems, system calls, file systems, userspace, build process, and current limitations.
This project is distributed under a custom license. See the LICENSE file for details.