Status: π§ This project is currently under development.
Hashx86 is a minimalistic operating system built for the x86 architecture. Designed primarily for educational and experimental purposes, it provides basic functionality and serves as a foundation for exploring OS concepts and low-level system programming.
Simple yet effective, Hashx86 focuses on core features without unnecessary complexity.
This project focuses on low-level system development, implementing core operating system functionalities such as:
- Interrupt Service Routines (ISRs)
- Physical Memory Management (PMM)
- Dynamic Kernel Heap (KHeap)
- Direct video memory manipulation (supports both VGA Text and VGA Graphics modes)
- High-resolution graphics rendering via VESA
- Hardware interaction through custom drivers
- Paging
- ELF binary loading and execution
- System call interface for custom binaries
- Multitasking with process and thread management
- Basic event handling
- Widget-based GUI framework
- GUI performance optimization using draw caching
- Support for dynamic resolution switching via dynamic drivers
- HDD driver implementation
- FAT32 filesystem support
- DMA / PCI driver framework
- Audio driver support
- Task State Segment (TSS) integration
-
πΊ Taskbar, Dynamic BGA Graphics (High Resolution) and Sound Support
Seamless transition from boot to a high-resolution desktop environment with active sound support and taskbar integration.
demo.mp4
-
πΊ Concurrency & Kernel Error Handling
demo.mp4
-
π§ͺ Early GUI (VGA Mode 320Γ200)
Initial implementation of the graphical interface using legacy VGA mode.
vid_2.mp4
-
π§© Interrupt Service Routines
Custom ISRs tested for hardware event response and system stability.
vid_1.mp4
Dive deep into the fundamentals of operating system development with our comprehensive tutorial series.
π Start the Tutorial Series
Learn to build your own digital world from the ground up!
Hashx86 is currently under active development. Upcoming improvements include:
- Desktop taskbar implementation with smooth animations
- Expanded system call library
- Thread-safe process management
- Networking support
- USB driver support
Stay tuned for future updates!
Prerequisites:
- GCC cross-compiler for i686
- GRUB and
xorriso(for ISO generation)qemu-system-i386andqemu-imgmake
git clone https://github.com/sdmdg/Hashx86.git
cd hashx86You need a HDD.vdi file to store drivers and files. Choose one of the methods below:
Option A: Quick Start (Recommended)
- Download the pre-formatted
HDD.vdifrom the Releases page and place it in the project folder.
Option B: Manual Setup If you prefer to create a fresh disk:
-
Create a 1GB VirtualBox Disk Image (VDI):
qemu-img create -f vdi HDD.vdi 1G
-
Run the OS for the first time.
The kernel will detect the empty disk and automatically format it to FAT32.
make run
Wait for the OS to boot and confirm formatting is complete, then close the QEMU window.
-
Build Drivers & User Programs
cd drivers/ make cd ../user_prog/ make cd ..
-
Install Drivers & Assets
Now that the disk is formatted, mount it and copy the required system files (Drivers, Fonts, Bitmaps).
make hdd
Run the OS again. It will now boot with full graphics and file support!
make runqThis project is licensed under the MIT License. See LICENSE for more details.
Hashx86 is developed and maintained by Me.
Built with β€οΈ for learning and having fun with bare-metal programming.
This project wouldnβt have been possible without the help, guidance and inspiration from:
- Viktor Engelmann β Write your own Operating System YouTube series
- OSDev.org β Incredible community and resources for OS development
- lowlevel.eu β Excellent tutorials on low-level programming
-
Desktop Wallpaper: "Iceland, Beach, Ice image" by Elisabetta_Miele on Pixabay
-
BootUp Sound: "New Notification 09" by Universfield on Pixabay
