A rewrite of the closed source graphical x86_64 operating system
- Terminal Emulator (with ANSI)
- Userland!
- C/C++ and Rust Support
- Keyboard support
- Mouse support
- Window Manager
- Custom FileSystem
clangandclang++cmakenasmmakelld-linkthrough LLVMxorrisomtools(mformat,mmd,mcopy)qemu-system-x86_64- OVMF firmware files
InstantOS also expects the bundled dependencies under outside/ to be present, So clone this Repository with --recurse-submodules.
Clean and configure the build directory:
rm -rf build
cmake -S . -B buildBuild the bootloader, kernel, userland programs, initrd, and ISO:
cmake --build build --target iso --parallel 4The final bootable image is written to:
build/iboot.iso
Boot the generated image in QEMU with:
./run.shrun.sh creates build/ahci.img on first run and copies OVMF_VARS.4m.fd into build/ if needed.
USB input modes are selected with USB_MODE:
USB_MODE=xhci ./run.sh # qemu-xhci with USB keyboard and mouse
USB_MODE=ohci ./run.sh # OHCI regression path with USB keyboard
USB_MODE=none ./run.sh # no emulated USB controllerFor headless smoke testing without KVM:
QEMU_ACCEL=tcg QEMU_DISPLAY=none USB_MODE=xhci ./run.shIf you want the full workflow in one command, use:
./build.sh