An X11 Tiling Window Manager
A tiling window manager for Linux using X11 and Xlib. Tiling uses a quadtree for
partitioning space.
It is not compatible with as many applications as I would like, but I have been using it on my Linux
laptop
for a while now and it is entirely useable.
A kernel written in C for x86 processors
The main goal of this project was to be able to do some simple kernel operations, like reading and
writing to a terminal, and maybe one or two more advanced features, but it slowly grew in to
a much bigger project as I realized how much I wanted to do.
Currently implemented features include a malloc implementation, virtualized memory, and some reading and
writing syscalls, with multiple tasks currently in production.
Currently planned features still include file operations, though we will see if I get to that.
An emulator for the original Gameboy
This was a very fun project. Emulates a Gameboy's central processor and display units, as well as some
memory controllers for different cartridges.
Doesn't have all the features that one would want in an emulator, such as a debugger, memory editor, or
sound, but I may add those in the future.
It uses SDL for display and button input.
A Windows based compiler for brainf***, as well as a library for interacting with COFF files
Mainly a project to learn the fundamentals of creating executables and assembly. It can create valid
Object
files, which can be linked to the Windows kernel32.dll.
An embedded security competition that I worked on the Purdue team for
I helped set up the build system for flashing the MAX78000 boards (which are Arm/Thumb based,) with Rust
code, as well as interop with the C code that the organizers gave us to use. I also did some of the
mitigations, including basic ASLR and some more advanced glitch attack preventions
A very work in progress WASM disassembler/decompiler
Currently can read a file and most instructions, and then can print some basic WAT assembly.