December 2025 Status Update
It has been two months since the last status update. In that post, I mentioned restarting the project as a rewrite of BrutalOS, but I decided to abandon those plans and continue developing the original codebase. Since then, there have been some interesting developments!
Migration to Codeberg
The project has been moved from GitHub to Codeberg. Initially, I published this project on GitHub because I believed it would help gain visibility, but I realized that GitHub doesn’t significantly contribute to publicity (especially compared to other channels). With GitHub becoming increasingly buggy and slow, I concluded that switching to a different platform was the better choice.
Userspace Libc
Work has begun on the libc library for userspace programs. At this stage, it includes only a few functions and is statically linked.
I do not plan to introduce dynamic linking support to this operating system in the near future, as I believe the memory savings from dynamic linking are not significant enough to outweigh the tradeoffs.
A new desktop interface
I have prototyped a new desktop interface. It is mostly written by AI and does not have any actual functionality yet. It will eventually be rewritten at some point, but for now, it works as a nice demo.

Multi-tasking support
Preemptive multi-tasking has been implemented. The current version uses a basic round-robin scheduling algorithm and relies on the PIT to trigger the scheduler.
Although the scheduler has significant room for improvement, it is functional as a prototype.
Additionally, support for usermode crash handling has been added, allowing the operating system to continue running even when a usermode task crashes.
More syscalls
The following syscalls have been added:
Meanwhile, the syscalls for registering mouse and keyboard event callbacks have been replaced with a polling-based approach, which uses the following syscalls:
Code refactoring
A significant amount of code refactoring has been completed, including:
- Removing the kernel console entirely
- Removing the micro-ui-based GUI demo
- Merging the initrd and tmpfs filesystems
What’s next?
There is still much to accomplish, but my goals for the next month include:
- IPC (inter-process communication).
- Designing the display protocol.
- Implementing a graphics library.
- Making a rotating cube demo.
- Improving the scheduler.