Projects
Database Systems
Operating Systems
A teaching operating system framework for the x86 architecture, designed to deepen understanding of OS internals through hands-on development. Over a series of labs, I implemented kernel thread scheduling with priority donation, user program loading with system calls, demand paging for virtual memory, and memory-mapped file support. Each component was built in C and tested on x86 emulators like QEMU.
Systems Programming & Computer Architecture
Hands-on systems programming projects covering topics such as bit-level data manipulation, reverse engineering, memory hierarchy optimization, dynamic memory allocation, and network programming. Implemented a custom memory allocator, developed a Unix shell, and built a concurrent web proxy, gaining proficiency in C, debugging with GDB, and understanding low-level system operations.
Designed and implemented a fully functional RISC-V CPU using Logisim Evolution. The project involved building datapath components (ALU, register file, control logic, etc.), integrating instruction decoding and execution for multiple RISC-V instruction types (R, I, B, S, J), and handling control flow and memory access. Developed a simple pipelined architecture and validated correctness through extensive testbenches.