INDAC
INNOVATION DEVELOPMENT ACTION
🚀 Indac OS STAR TECHNOLOGIES
A modern, 64-bit Bare-Metal Operating System built completely from scratch in C & Assembly.
🌟 About The Project
Indac OS is an independent operating system that does not rely on Linux, Windows, or any existing kernels. It talks directly to the hardware! Featuring a custom software-rendering graphics engine, hardware interrupt routing (IOAPIC), and a beautifully designed glassmorphism GUI, Indac OS pushes the boundaries of what a solo-developed hobby OS can look like.
🎯 Goal & Mission
My mission with Indac OS is to prove that modern, premium aesthetics don't require massive graphic drivers or heavy existing architectures. The goal is to build an ecosystem that looks like 2026, but runs entirely on raw, bare-metal C code. VISION
I want to inspire other students and developers to look under the hood of their computers and understand how operating systems truly work at the lowest hardware level.
🧗♂️ The Challenges We Faced GRIT SIGNAL
Building an OS from scratch is not for the faint of heart. Some of the most brutal challenges I conquered include:
- The PS/2 Race Condition: A massive hardware bug where the OS was reading configuration bytes faster than the motherboard's PS/2 controller could write them, permanently locking up the mouse and keyboard!
-
Memory Management (Paging): Wrestling with the PML4 translation tables to map physical RAM to virtual memory without causing immediate CPU Triple Faults.
vmm.c
// Maps a single 4KB page without causing a CPU Triple Fault. void vmm_map_page(uint64_t* pml4, uint64_t virtual_addr, uint64_t physical_addr) { uint64_t pml4_idx = (virtual_addr >> 39) & 0x1FF; if (!(pml4[pml4_idx] & PAGE_FLAG_PRESENT)) { // Allocate a new PDPT page void* pdpt_phys_ptr = pmm_alloc_page(); if (!pdpt_phys_ptr) { terminal_print("[VMM PANIC] Out of memory allocating PDPT!\n"); return; } // Clear the page using Higher Half Direct Mapping (HHDM) uint64_t* pdpt_virt = (uint64_t*)vmm_phys_to_virt((uint64_t)pdpt_phys_ptr); for (int i = 0; i < 512; i++) pdpt_virt[i] = 0; pml4[pml4_idx] = (uint64_t)pdpt_phys_ptr | PAGE_FLAG_PRESENT | PAGE_FLAG_WRITE; } // ... continues traversing translation tables ... } -
Floating Point Math in the Kernel: Realizing that the OS kernel doesn't have floating-point units (SSE/AVX) enabled by default, forcing me to rewrite entire graphics algorithms (like drop shadows and gradients) using insanely fast integer math!
gui.c
// Blitting backbuffer to hardware framebuffer using optimized integer math void gui_swap_buffers(void) { if (!fb_ptr || !backbuffer) return; // Calculate total pixels to avoid floating point division uint32_t total_pixels = (fb_pitch * fb_height) / 4; uint32_t* src = (uint32_t*)backbuffer; uint32_t* dst = (uint32_t*)fb_ptr; // Fast memory copy without SIMD/SSE instructions for (uint32_t i = 0; i < total_pixels; i++) { dst[i] = src[i]; } }
🔮 Will this OS Survive?
Many hobby operating systems die after a few weeks. Indac OS will survive. CONFIDENCE SIGNAL
It has already survived the hardest parts of OS development (Interrupts, Memory Management, and Hardware Drivers). Because the foundation is built on solid, modern principles (like APIC timers and double-buffered VSync), the OS is incredibly stable. As long as there is hardware to run it on, Indac OS will keep evolving!
🤝 How to Help
If you love low-level programming or UI/UX design, I would love your help!
- Code: Fork the repo and help me write drivers (we need an AHCI SATA driver!).
- Design: Help design more beautiful glassmorphism apps for our custom Window Manager.
- Test: Run the OS in QEMU or on real hardware and submit bug reports!
👦 About Me FOUNDER
Hey! My name is Diwakar Sharma. I am a Class 11 student building this entire operating system from my room in Gaya, Bihar (India) 🇮🇳. AGE & ORIGIN
While most people my age are playing video games, I decided I wanted to build the software that runs them. I am deeply passionate about low-level computer science, C programming, and pushing hardware to its absolute limits. HUSTLE SIGNAL
If you like what I'm building, please give this repository a ⭐!
If intrested contact me on my gmail : techpyaihhub@gmail.com
or on whatsapp with username : @imdiwakarsharma
------------X--------------X---------------X--------------X-------------