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
58
59
60
|
## 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 4th 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 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
### Personal Projects
[This Website](https://github.com/JacobMcDonnell/JacobMcDonnell.com) is written
in Python using Flask. 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
#### !!! Some of the project will not be uploaded until the class is complete !!!
#### !!! These projects are uploaded for potential employers, students do not copy !!!
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.
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.
## 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.
|