Repository navigation
Releases: Programista-Art/DimonOS
Releases · Programista-Art/DimonOS
Release list
Dimon OS v.0.0.0.1
Dimon OS v0.0.0.1
1. Architectural Migration to Native Bare Metal (Removal of the Virtual CPU)
This is the biggest milestone in this release. The entire system has been freed from its internal virtualization and emulation layers.
- Intermediate layers removed: The X11 emulator (
emulator.c), paravirtualization and virtual machine code (vm.c), the old assembler, and the main assembly source files (os.asm,apps/snake.asm) have been completely removed. - Migration to pure C: All operating system logic, including the window manager, taskbar, dialogs, and all seven integrated applications (Calculator, Notepad, File Explorer, Paint, System Info, Snake, and Terminal), has been ported directly to native C code in
desktop.c, which contains more than 1,600 lines of code. - Direct x86 hardware support: The system now runs natively on physical hardware or inside QEMU/VirtualBox, using:
- A VESA VBE framebuffer provided by GRUB, with RAM-based double buffering implemented in
kernel_runtime.c/kernel.cto eliminate flickering. - A PS/2 keyboard and mouse, with direct event and I/O port handling.
- PIT and RTC timers. The taskbar now displays the actual time instead of
RTC N/A. - The PC speaker for audio signals.
- Direct hard drive access through a built-in ATA PIO stack written from scratch.
- A VESA VBE framebuffer provided by GRUB, with RAM-based double buffering implemented in
- Makefile cleanup: The entire build process has been adapted to the new architecture. Obsolete emulator and assembler targets have been removed. Image naming has been standardized to distinguish the raw FAT16 disk image (
dimon-disk.img) from the bootable GRUB CD-ROM ISO (dimon-baremetal.iso). QEMU has been configured to use both images without file access conflicts, resolving the “Failed to get shared write lock” error.
2. Advanced Disk Support (FAT16 over ATA)
- Persistent storage on bare metal: Tools and applications such as Notepad can now modify files. Write operations performed through
dimonfs_syncare sent directly to the backing disk image through the ATA controller using LBA28 addressing, allowing saved data to survive operating system restarts. Dirty-sector buffering has also been implemented. - Protection against filesystem corruption: A critical bug in
dimonfsallowed directory operations to overwrite the special.and..entries, corrupting the filesystem. This has been fixed. - Fixes in mkiso: Memory leaks in
mkiso.chave been fixed, along with an integer underflow that produced incorrect offsets for empty files (0 bytes). Validation of 8.3 filenames is now as strict as it is in the kernel.
3. Application and Window Manager Fixes
Although the codebase has been migrated to C, the functional fixes previously made in assembly served as a reliable reference for the native port.
- Taskbar and dialog UI: A UI race condition that prevented prompt taskbar updates has been resolved by introducing
taskbar_rebuild. The[X]close buttons in dialogs, including file overwrite confirmation dialogs, now work correctly. - Calculator: Added Backspace support for correcting input and protection against division by zero.
- Terminal (CLI): The
lscommand now iterates through all files in a directory instead of stopping after the first entry. - Paint: Fixed a bug that caused drawing directly to the framebuffer outside the application window. Drawing now uses a buffer and the kernel's redraw functions, preserving window Z-order.
- Tool highlighting: Paint now highlights the currently selected tool or setting, such as brush thickness.
- Scrolling in Notepad and dialogs: Filename input fields now support smooth horizontal scrolling for longer text and correctly handle mouse cursor positioning.
4. ACPI Shutdown
Instead of closing the host emulator window, Dimon OS now sends an ACPI power-off command to the virtual x86 chipset through I/O ports.
5. Character Encoding Validation (UTF-8)
- The multibyte text validation module now handles malformed data robustly and rejects invalid or truncated UTF-8 sequences that could previously leave Notepad unable to complete a save operation. All scenarios covered by the implemented test suite now produce the expected diagnostic results.
DimonOS-64 has taken a major step forward in technical maturity, becoming a modular, secure, fully functional graphical operating environment that runs directly on x86 hardware.
The next natural steps are full timer-driven, hardware-based multitasking and kernel heap allocation management using malloc and free.