Skip to content

Systems engineering portfolio in x86-64 Assembly. Featuring a custom Unix Shell, Branch Predictor, and optimized core tools.

Notifications You must be signed in to change notification settings

tcorlateanu/assembly-projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 Independent Project Linux syscalls (fork, execve), process isolation, manual string tokenization.
Branch Predictor Architecture Simulation Simulating CPU pipeline behavior with a 2-bit saturating counter logic.
Printf Implementation Standard Library Manually handling the System V AMD64 ABI, stack frame management, and variadic argument parsing.
Diff Tool Algorithms Line-by-line text comparison algorithm optimized for minimal register usage.
SHA-1 Hash 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

About

Systems engineering portfolio in x86-64 Assembly. Featuring a custom Unix Shell, Branch Predictor, and optimized core tools.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published