Skip to content

Latest commit

 

History

History
180 lines (119 loc) · 5.3 KB

File metadata and controls

180 lines (119 loc) · 5.3 KB

Hashx86 Operating System

Image

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.


🔧 About

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

🖼 Demonstrations

  • 📺 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

🚀 Ready to Build Your Own OS?

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!


🧪 Development Roadmap

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!


🛠 Build Instructions

Prerequisites:

  • GCC cross-compiler for i686
  • GRUB and xorriso (for ISO generation)
  • qemu-system-i386 and qemu-img
  • make

1. Clone the Repository

git clone https://github.com/sdmdg/Hashx86.git
cd hashx86

2. Setup the Hard Disk

You 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.vdi from the Releases page and place it in the project folder.

Option B: Manual Setup If you prefer to create a fresh disk:

  1. Create a 1GB VirtualBox Disk Image (VDI):

    qemu-img create -f vdi HDD.vdi 1G
  2. 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.

  3. Build Drivers & User Programs

    cd drivers/
    make
    cd ../user_prog/
    make
    cd ..
  4. Install Drivers & Assets

    Now that the disk is formatted, mount it and copy the required system files (Drivers, Fonts, Bitmaps).

    make hdd

3. Final Boot

Run the OS again. It will now boot with full graphics and file support!

make runq

📄 License

This project is licensed under the MIT License. See LICENSE for more details.


👤 Author

Hashx86 is developed and maintained by Me.
Built with ❤️ for learning and having fun with bare-metal programming.


❤️ Special Thanks

This project wouldn’t have been possible without the help, guidance and inspiration from:

  • Viktor EngelmannWrite your own Operating System YouTube series
  • OSDev.org – Incredible community and resources for OS development
  • lowlevel.eu – Excellent tutorials on low-level programming

🎨 Credits

  • Desktop Wallpaper: "Iceland, Beach, Ice image" by Elisabetta_Miele on Pixabay

  • BootUp Sound: "New Notification 09" by Universfield on Pixabay