QEMU is the primary way to run and test CrisOS v2. TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/CRISTOP-bot/cris-os-v2/llms.txt
Use this file to discover all available pages before exploring further.
make run target builds a bootable ISO and launches qemu-system-i386 with 512 MB of RAM. GRUB reads iso/boot/grub/grub.cfg, loads kernel.bin via Multiboot, and passes rootfs.bin as a module. The boot sequence completes in under a second and drops you into the CrisOS interactive shell.
Launching the VM
The quickest path from source to a running shell is a single command:os.iso and only want to (re-)launch QEMU without rebuilding, you can invoke the emulator directly:
Expected Boot Output
After the GRUB splash screen disappears, the kernel initialises each subsystem in sequence and prints a status line for each one. A successful cold boot produces exactly the following console output:[ASM] line is produced by a live call to add_asm(7, 5) — a small i386 assembly routine — and serves as a smoke-test that the ASM/C calling convention is working correctly.
Shell Interaction
The> prompt accepts a single line of input at a time. Below are representative sessions showing the built-in commands:
mkdir, rm, and similar commands operate on an in-memory VFS layer and do not persist across reboots.
QEMU-Specific Notes
Keyboard capture
Keyboard input is captured by the QEMU window. Your host’s global shortcuts (e.g.
Super, Alt+Tab) will not reach the host desktop while the VM window is focused.Release mouse grab
If QEMU captures the mouse pointer, press
Ctrl+Alt+G to release it back to the host.QEMU monitor
Press
Ctrl+Alt+2 to switch to the QEMU monitor console. Type quit and press Enter to shut down the VM cleanly.Switch back to VM
Press
Ctrl+Alt+1 to return to the VM display from the QEMU monitor.Running Without grub-mkrescue
Ifgrub-mkrescue is not installed, make echo-iso prints a warning and skips ISO generation:
-kernel flag:
Debugging with QEMU
QEMU exposes several flags that are useful when hunting down kernel bugs:| Flag | Effect |
|---|---|
-d int,cpu_reset | Log CPU exceptions and reset events to stderr |
-d cpu_reset -D qemu.log | Write the debug log to qemu.log instead of stderr |
-monitor stdio | Expose the QEMU monitor on the terminal instead of Ctrl+Alt+2 |
-no-reboot | Halt instead of resetting on a triple fault — essential for catching boot crashes |
-serial stdio | Route the emulated serial port to the terminal (useful if you add a serial driver) |