March 2026 Status Update
Published on March 14, 2026
Since February, even with limited free time, MONOLITH has seen a lot of solid progress across the kernel and userspace.

Improvements on the IPC
The IPC system received several improvements:
- Added caching for IPC messages in the userspace.
- Implemented shared memory support as part of the IPC.
- Added unit tests to cover core IPC functionality.
Hardware Issues
I fixed a handful of hardware compatibility issues:
- Uninitialized VFS variables: this was causing a GPF on older hardware. It appears some older BIOSes do not clear memory on startup, leaving these variables with garbage data.
- PS/2 always-on bit check: some PS/2 mice can send invalid packets that cause the cursor to misbehave. This was fixed by verifying the always-on bit.
- Glitchy framebuffer on certain BIOSes: this was fixed by updating to a newer version of Limine.
libdesktop
I implemented a window protocol. It currently supports creating windows, resizing them, drawing to them, and handling input events.
There are still stability issues—such as window glitches during resize and intermittent desktop crashes—so the next step here is focused debugging.
Doom
With the desktop environment and window protocol in place, I was able to port Doom to MONOLITH using PureDOOM.
What’s next?
Now that the desktop stack is usable, I’ll start work on a UI toolkit and begin building core desktop apps, starting with a file manager.