Completed Systems Project · C++ And Assembly
Operating Systems Implementation
A semester-long kernel implementation sequence, ending with a four-person graphics subsystem for an OS capable of running multiplayer DOOM.
Kernel
multi-core preemptive scheduling
Isolation
VM, user mode, 25+ syscalls
Graphics
framebuffer, VGA, VBE, media
Course arc
Aug 2025 - Dec 2025
Stack
C++, Assembly, QEMU
Final team
Archit Patil, Brian Zhang, Brian Qu, Rohan Dugad
Demo target
Graphics subsystem for multiplayer DOOM
Implementation Sequence
Project Summary
The project built up an operating system in layers: scheduling, shared ownership primitives, filesystems, virtual memory, user programs, syscalls, and networking. The kernel work emphasized synchronization, memory safety, and process isolation in a multi-core setting, including race-condition and memory-leak fixes across 1K concurrent threads.
For the final project, a smaller team implemented the graphics subsystem. The work centered on framebuffer architecture, double buffering, text/VGA/VBE graphics modes, palette conversion, graphics-specific syscalls, and media output paths.
The result was a completed OS implementation project with a graphics stack expressive enough to support a multiplayer DOOM demo, built on top of the earlier kernel, VM, filesystem, syscall, and networking foundations.
Graphics Subsystem
Framebuffer architecture
Implemented display-facing buffers, MMIO-backed graphics output, double buffering, and VBlank-aware swaps to avoid tearing.
Graphics modes
Supported text mode, VGA, and VBE modes across 8/16/32-bit rendering paths with palette and grayscale handling.
Media viewers
Built graphics paths for raw images, PDF scrolling, GIFs, and video playback under kernel resource constraints.
Graphics syscalls
Exposed graphics I/O through syscall interfaces so user programs could drive visual output from the OS.
Kernel Work
From scheduler mechanics to user-facing graphics.
The OS was built as a sequence of increasingly realistic kernel components. The final graphics work was interesting because it had to sit on top of earlier abstractions rather than live as a standalone demo.
- Scheduling
- Cooperative scheduling, preemptive scheduling, and multi-core execution with attention to race conditions across 1K concurrent threads.
- Memory
- Shared pointer infrastructure, virtual memory, and process isolation for user programs.
- System calls
- More than 25 system calls connecting user-mode programs to kernel services.
- Graphics I/O
- Framebuffer-backed rendering through text mode, VGA, VBE, image formats, PDF scrolling, GIFs, and video playback.
Final Presentation
The final presentation for the graphics subsystem is embedded below and available as a direct PDF.