https://github.com/tcorlateanu/assembly-projects
Systems engineering portfolio in x86-64 Assembly. Featuring a custom Unix Shell, Branch Predictor, and optimized core tools.
https://github.com/tcorlateanu/assembly-projects
assembly linux-kernel linux-syscall low-level-programming portfolio systems-programming x86-64
Last synced: 24 days ago
JSON representation
Systems engineering portfolio in x86-64 Assembly. Featuring a custom Unix Shell, Branch Predictor, and optimized core tools.
- Host: GitHub
- URL: https://github.com/tcorlateanu/assembly-projects
- Owner: tcorlateanu
- Created: 2025-12-25T12:15:24.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-02-16T16:19:20.000Z (3 months ago)
- Last Synced: 2026-02-16T23:51:19.751Z (3 months ago)
- Topics: assembly, linux-kernel, linux-syscall, low-level-programming, portfolio, systems-programming, x86-64
- Language: Assembly
- Homepage: https://www.linkedin.com/in/teodora-elena-corlateanu/
- Size: 50.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# x86-64 Assembly Systems Portfolio
## Overview
This repository contains a collection of low-level systems projects written in **x86-64 Assembly**, focusing on memory management, processor architecture, and direct Operating System interaction.
As a Computer Science student at **TU Delft**, I built these tools to gain a concrete understanding of how software interacts with hardware. While some projects explore concepts from the *CSE1400 Computer Organisation* course, the **Shell** implementation is an independent project built to understand process creation and management at the kernel level.
## Project Highlights
| Project | Type | Key Technical Concepts |
| :--- | :--- | :--- |
| **[TinyShell](./shell)** | **Independent Project** | Linux syscalls (`fork`, `execve`), process isolation, manual string tokenization. |
| **[Branch Predictor](./branch-predictor)** | Architecture Simulation | Simulating CPU pipeline behavior with a 2-bit saturating counter logic. |
| **[Printf Implementation](./printf)** | Standard Library | Manually handling the **System V AMD64 ABI**, stack frame management, and variadic argument parsing. |
| **[Diff Tool](./diff)** | Algorithms | Line-by-line text comparison algorithm optimized for minimal register usage. |
| **[SHA-1 Hash](./hash-function)** | Cryptography | Implementation of the SHA-1 compression function and message schedule at the instruction level. |
## Why Assembly?
In an era of high-level frameworks, writing Assembly provides a competitive advantage by revealing the cost of abstractions.
* **Memory Awareness:** Understanding stack frames and heap allocation helps me write optimized Java/C++ code.
* **Debugging:** Experience with registers and instruction pointers makes debugging complex segmentation faults or JVM crashes significantly easier.
* **Systems Design:** Implementing core tools from scratch (like a shell or printf) clarifies how Operating Systems actually function "under the hood."
---
*Author: Teodora Corlateanu - TU Delft Computer Science and Engineering Student*