We’ve talked about Ironclad a few times, but there’s been two new releases since the 0.6.0 release we covered last, so let’s see what the project’s been up to. As a refresher, Ironclad is a formally verified, hard real-time capable kernel written in SPARK and Ada. Versions 0.7.0 and 0.8.0 improved support for block device caching, added a basic NVMe driver, added support for x86’s SMAP, switched from KVM to NVMM for Ironclad’s virtualization interface, and much, much more. In the meantime, Ironclad also added support for RISC-V, making it usable on any 64 bit RISC-V target that supports a Limine-protocol compatible bootloader.
The easiest way to try out Ironclad is to download Gloire, a distribution that uses Ironclad and the GNU tools. It can be installed in both a virtual machine and on real hardware.

Unfortunatly crashing for me, any help?
qemu-system-x86_64 –version
QEMU emulator version 8.2.2 (Debian 1:8.2.2+ds-0ubuntu1.10)
qemu-system-x86_64 -enable-kvm -cpu host -smp 4 -m 8G -M q35 -drive format=raw,file=gloire-20251109-x86_64.img -serial stdio
…
Mounting /etc/fstab partitions … Done
Clearing /tmp and /run … Done
Running first boot configuration (if needed) … Done
Starting metalog … Done
Starting crond … Done
Starting power management daemon … Done
Starting SLiM … rtld: DT_SYMBOLIC is not implemented correctly!
rtld: DT_SYMBOLIC is not implemented correctly!
Done
Starting dbus … (0000000014) –:::-+*.
(0000000014) …. =%%%%%%:++==..:+#:
(0000000014) +*+++++**++=-. +:%%%%%=+%%%:.-%%.
(0000000014) –=+++=—–=**+. .+:%%%%*-%%%:.-%%
(0000000014) -=++++++—-#@@=#- -:=%%%%:%%%-.:%%:
(0000000014) ++++++++*@@==%%-+#= +.%%%#:%%%-.:%%#
(0000000014) +++++++–+==*%%**-# .+*- *%%=..#%%+
(0000000014) +++++++=—-====-=% -: .-
(0000000014) ++++++++=—=+++++% +
(0000000014)
(0000000014) KERNEL PANIC! Here’s why:
(0000000014) ��
(0000000014)
(0000000014) Please reboot your computer! State will be lost
(0000000014)
(0000000014) Consider reporting this issue at:
(0000000014) https://ironclad-os.org/contributing.html
(0000000014) RAX 0 RBX D777B2DFCC RCX 0
(0000000014) RDX 2 RSI 0 RDI FFFFFFFF80046BAB
(0000000014) RBP 81 R8 4 R9 830
(0000000014) R10 0 R11 81 R12 830
(0000000014) R13 FFFF80001C4E1F17 R14 12C591A R15 0
(0000000014) RIP 8 RSP 12 CR2 0
(0000000014) Error code: 12
ubu,
Since this is a straightforward error message, I asked it to Google.
Your concern is with the “-cpu host” which seems to be incompatible.
Can you try
If this does not work, I would recommend pasting that next error message, along with all the prior discussion here to an AI. they are really good at these stuff.
I ran your command verbatim without any errors.
The following output….and VNC session opens up a graphical desktop.
The OS does not seem to properly shutdown and corrupts it’s own image 100% of the time after I try restarting qemu. So I’ve needed to re-extract the image every time.
sukru’s suggestion to use “-cpu qemu64” works for me as well, but my guess is that’s not the problem. It doesn’t seem to take much to get it crash though even after reaching the desktop, so maybe you just got unlucky and experienced a crash at bootup.
If anyone cares…
Edit:
Maybe you could try an older CPU model. “-cpu IvyBridge” booted for me too. I think we need an explanation for why a “formally verified kernel” seems to be intermittently crash prone though.
I also tried the riscv64 version, which could have been interesting. I downloaded the firmware as instructed here:
https://codeberg.org/Ironclad/Gloire
But I get the following errors…
qemu-system-riscv64: Property ‘virt-machine.acpi’ not found
qemu-system-riscv64: -device ramfb: ‘ramfb’ is not a valid device model name
When I remove the offending arguments, nothing gets output on screen. This could be down to debian’s version of qemu, since they do regularly add new features upstream.