Skip to content

Releases: Programista-Art/DimonOS

Dimon OS v.0.0.0.1

Dimon OS v.0.0.0.1 Pre-release
Pre-release

Choose a tag to compare

@Programista-Art Programista-Art released this 17 Oct 18:37

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.c to 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.
  • 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_sync are 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 dimonfs allowed directory operations to overwrite the special . and .. entries, corrupting the filesystem. This has been fixed.
  • Fixes in mkiso: Memory leaks in mkiso.c have 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 ls command 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.