1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# About
I'm Jacob McDonnell. I have been interested in computers since I was young.
My father has been in the technology field since before I was born, so I guess
that interest came from him. Currently, I am a 7th semester student at Penn
State studying computer science.
My interests, with respect to computers, are programming, UNIX/Plan9, and
electronics/hardware. Thanks to AP Computer Science A, I have a good
understanding of Java. In college, I picked up Python, C, and most recently C++.
I would like to write my own unix-like operating system one day.
I do not know what I will do with this website just yet, maybe I will write
articles about projects that I am working on.
# Projects
### [This Website](https://github.com/JacobMcDonnell/JacobMcDonnell.com)
is written in Go using the standard net/http package. It is hosted on VPS
running Red Hat Linux using NGINX as a proxy.
### [Quick and Dirty MIPS Assembler](https://github.com/JacobMcDonnell/QDMA)
is a MIPS assembler written in Go. QDMA supports the Executable and Linkable
Format for binary executables. It is a two pass assembler where the first pass
tracks the labels for functions and data and the second pass assembles the
instructions.
### [Quick and Dirty MIPS Emulator](https://github.com/JacobMcDonnell/QDME)
is a MIPS emulator written in C. It supports 32-bit ELF binaries and emulates a
simple MIPS processor.
# Class Projects
### Dynamic Memory Allocator:
This is my implementation of the malloc, free, and realloc functions in C. This
project leverages a segregated free list for fast allocation and boundary tag
coalescing for better memory utilization. This is one of the course projects
for Penn State's CMPSC 473 Operating Systems Design & Construction.
### MIPS Implementation:
This is an implementation of a pipelined 32-bit MIPS processor in Verilog. This
project was the course project for Penn State's CMPEN 331 Computer Organization
and Design.
### JBOD Server:
This is a C server that provides an interface for a user to connect to a remove
JBOD (Just a Bunch of Disks) server. It implements a fully associative cache
for faster reads and writes. This was the course project for Penn State's CMPSC
311 Introduction to Systems Programming.
# Penn State Advanced Vehicle Team (AVT)
[Penn State AVT](https://www.avt.psu.edu/) is a club competing in the AutoDrive
Challenge II, working to build a self driving car. I join the club in the Fall
of 2024, working in the Guidance Navigation and Controls team. Currently I am
working on some software to help score the car after each test run.
|