CSAPP Labs by WEIKNIGHT
This repository contains my solutions and progress for the Computer Systems: A Programmer's Perspective (CSAPP) labs. These hands-on exercises are designed to deepen understanding of fundamental computer systems concepts, including data representation, processor architecture, program optimization, memory hierarchy, linking, concurrency, and network programming.
Completing these labs provides practical experience with the concepts discussed in the renowned CSAPP textbook and is essential for mastering low-level systems programming.
| Lab Name | Status | Start Date (MM-DD-YYYY) | Completion Date (MM-DD-YYYY) | Notes |
|---|---|---|---|---|
| Data Lab | ✅ Completed | 8-19-2025 | 8-21-2025 | All functions implemented correctly |
| Bomb Lab | ❌ Not Started | - | - | - |
| Attack Lab | ❌ Not Started | - | - | - |
| Buffer Lab | ❌ Not Started | - | - | - |
| Architecture Lab | ❌ Not Started | - | - | - |
| Performance Lab | ❌ Not Started | - | - | - |
| Cache Lab | ❌ Not Started | - | - | - |
| Shell Lab | ❌ Not Started | - | - | - |
| Malloc Lab | ❌ Not Started | - | - | - |
| Proxy Lab | ❌ Not Started | - | - | - |
Legend:
- ✅ Completed
- ⏳ In Progress
- ❌ Not Started
All labs are developed and tested in the following environment:
- OS: Ubuntu 22.04 LTS (x86-64), based on WSL 2
- Compiler: GCC 11.4.0
- Debugger: GDB 12.1
- Make: GNU Make 4.3
To set up a similar environment, you can use the CSAPP lab docker image or setup a Ubuntu VM as recommended by the course.
Each lab is contained in its own directory with a dedicated Makefile:
# Navigate to a specific lab directory
cd ./Data\ Lab
# Build the project
make
# Clean build artifacts
make clean
# To test my codes, please follow the instruction in README.md of each lab