Skip to content

Feature: Storage Subsystem, Dynamic Drivers and BGA Support#5

Merged
sdmdg merged 4 commits intomainfrom
dev
Dec 28, 2025
Merged

Feature: Storage Subsystem, Dynamic Drivers and BGA Support#5
sdmdg merged 4 commits intomainfrom
dev

Conversation

@sdmdg
Copy link
Copy Markdown
Owner

@sdmdg sdmdg commented Dec 28, 2025

This Pull Request introduces major architectural improvements to the kernel, moving from a static setup to a dynamic, file-based system.

Summary of Changes:
Storage Subsystem: Implemented ATA PIO driver and full FAT32 filesystem support (Read/Write/Streams).
Dynamic Linking: Added an ELF Module Loader capable of relocating and linking drivers at runtime.
Graphics: Added a dedicated BGA driver (loaded dynamically via PCI detection) for high-resolution support.
Assets: Removed hardcoded bitmaps. The OS now loads UI assets (wallpapers, BMPs) directly from the HDD.
Code Cleanup: Normalized all source files to LF line endings and fixed hardcoded GUI dimensions.

Key Features
ATA Driver: Read/Write support for IDE/PATA drives.
FAT32: Directory parsing and file reading.
Module Loader: Custom .sys driver loading with symbol resolution.
Hardware Detection: PCI scanning to auto-load the correct graphics driver.
Responsive Desktop: GUI now adapts to the resolution provided by the loaded driver.

Testing
QEMU and VirtualBox: Verified booting from HDD.vdi.
Filesystem: Successfully read driver files and bitmaps from the disk.
Graphics: Confirmed resolution switch to 1600x900 upon loading the BGA module.
Build: Verified make run and make hdd commands work on Linux/WSL.

sdmdg and others added 4 commits October 1, 2025 22:31
Add new input box
Completely moved from GNU to NASM
Updated NINA and VBE for binary bitmap drawing
This update introduces a fully functional storage subsystem and dynamic driver architecture.

Major Changes:
- Storage: Implemented ATA PIO driver for disk access.
- Filesystem: Added full FAT32 support (File/Directory reading).
- Module Loader: Implemented ELF object linking and relocation for dynamic drivers.
- Driver System: Added auto-detection for PCI devices (BGA) to load matching drivers from disk.
- Graphics: Added BGA driver for high-resolution support.
- GUI: Removed hardcoded bitmaps; assets are now loaded from the HDD. Desktop now adapts to dynamic resolutions.
- Maintenance: Normalized all source files to LF line endings and fixed hardcoded dimensions.
Added an image for the Dynamic BGA Graphics feature in the README.
@sdmdg sdmdg merged commit 5a5bf66 into main Dec 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant