A custom ring 0 bare metal OS.
This project was brought into life because I always wanted to be able to say that I had made an operating system. And this would be the perfect oppertunity. The OS will only run my custom implementation of pong the game. Hence that it is called "Pong OS". Pong OS runs on i386 architecture and provides a lightweight microkernel with only the necessary functionalities to support the game.
The primary design goal of Pong OS is to create a lightweight and efficient operating system with a minimal microkernel. The OS includes only the essential features required to run Pong the game.
- Custom implementation of Pong
- Minimal microkernel
- Basic keyboard and timer interrupt handling
- VGA graphics support for rendering the game
- Serial port communication for debugging
- QEMU emulator
- GCC (i686-elf-gcc)
- NASM (Netwide Assembler)
- Clone the repository:
git clone https://github.com/DennisCMoes/Pong-OS
cd Pong-OS
- Build the OS and run:
make
make
- Cleans the build, compiles the OS, creates the bootable ISO image, and runs this ISO in QEMUmake clean
- Cleans the build artifacts.make bootloader
- Compiles the bootloader.make kernel
- Compiles the kernel.make iso
- Uses the bootloader and kernel to create a bootable ISO image.make qemu
- Runs the OS in the QEMU emulator.
W/S
- Move left paddle up/downI/K
- Move right paddle up/down (in two-player mode)1
- Start single-player game2
- Start two-player gameESC
- Return to the main menu