- This project is a hobby game-oriented OS capable of running a custom implemetation of PONG without relying on any external operating system.
- The system is being developed incrementally, starting in text mode to stabilize hardware interaction before introducing graphical complexity.
- Executes a custom bootloader
- Switches to 32-bit protected mode
- Initializes VGA text-mode output (written to memory at 0xB8000)
- Initializes a PS/2 keyboard driver (polling-based)
- Displays a terminal interface with a shell prompt
- Supports a minimal interactive shell.
- The kernel currently runs entirely in text mode.
- Custom bootloader written in x86 assembly
- 32-bit protected-mode kernel
- Cross-compiled using an i686-elf GCC toolchain
- Bootable ISO image tested with QEMU
- Character output
- Line wrapping
- Screen clearing
- Scrolling support
- Backspace handling
- Input buffering
- Interactive terminal interface
- Input buffer with length tracking
- Backspace editing support
- help
- clear
- echo
- shutdown (QEMU ACPI poweroff: port I/O 0x604)
- Commands will later be mapped to handler functions via a structured command table, allowing scalable and modular command extension.
Bootloader (Assembly)
↓
Switch to Protected Mode
↓
Kernel (C)
├── VGA Driver
├── PS/2 Keyboard Driver (Polling)
├── Terminal Interface
└── Shell Command Dispatcher (later)
- Cross-Compiler :The project uses a freestanding cross-compiler toolchain targeting i686-elf.
- OSDev Wiki: GCC Cross-Compiler
-
Emulator: Tested primarily using QEMU (i386)
- Build:
make - Run:
qemu-system-i386 -cdrom os.isoORmake run
- Transition keyboard driver from polling to IRQ-based handling
- Implement PIT timer support
- Improve shell command parsing and modularization
- Switch from text mode to a graphics mode (VGA or VESA)
- Implement a basic framebuffer abstraction
- Develop game loop timing infrastructure
- Implement PONG entirely within the kernel environment
- Add minimal file system abstraction
- Explore basic task or module separation
- direct hardware interaction via port I/O and memory-mapped VGA
- interrupt handling
- freestanding C development
- validation under QEMU and x86 boot media
It is intentionally built without relying on external OS libraries or hosted runtime environments.
The project is in the early kernel phase and focused on building stable infrastructure before implementing graphical game logic.
