void-os

An exploratory, from-scratch operating system written in C and C++.

View Source on GitHub

About the Project

Current Status: void-os is currently in its early development stages. It serves as an active learning environment for low-level systems programming and kernel architecture.

void-os is a personal passion project built to demystify the core components that make our hardware function. Rather than relying on existing kernels, I am building this from the ground up to gain hands-on experience with memory management, hardware interrupts, and bare-metal programming.

As a portfolio piece, it demonstrates my ability to tackle highly complex, self-directed engineering challenges, debug without standard libraries, and write highly optimized, hardware-conscious code to future employers.

Technical Overview

Tech Stack

  • Languages: C (Kernel logic) & C++ (OOP)
  • Assembly: x86 Assembly (Bootstrapping)
  • Bootloader: [e.g., GRUB / Limine]
  • Build System: [e.g., Make / CMake]
  • Emulator: QEMU for testing

Core Concepts Explored

  • Bare-metal programming without standard libraries
  • Direct hardware interaction and register manipulation
  • Pointers, memory offsets, and custom physical structures
  • Cross-compilation toolchains and Linker scripts

Development Roadmap

A transparent look at what has been accomplished and what is coming next.

Phase 1: Booting & Output (In Progress)

  • [x] Setting up the cross-compiler
  • [x] Booting into 32-bit protected mode
  • [-] Establishing VGA text mode drivers

Phase 2: CPU Architecture (Planned)

  • [ ] Global Descriptor Table (GDT)
  • [ ] Interrupt Descriptor Table (IDT)
  • [ ] Handling Hardware Interrupts (IRQs)

Phase 3: Memory & Beyond (Planned)

  • [ ] Physical Memory Management
  • [ ] Paging (Virtual Memory)
  • [ ] Keyboard driver implementation