Low-Level System Programming Projects (Hive Helsinki/42)

System Architecture & C Programming

Apr 2023 – Jun 2023Helsinki, FinlandIndividual Projects
System Programmer
Low-Level System Programming Projects (Hive Helsinki/42)
Project Overview

Completed intensive low-level programming projects including Unix shell implementation, optimized sorting algorithms, and multithreading challenges. Focused on system architecture, memory management, and algorithm design.

Technical Architecture

languages
C
Shell Scripting
Makefile

Pure C programming following 42 Network coding standards. No external libraries allowed, emphasizing deep understanding of system calls and low-level operations.

system Programming
Unix/Linux System Calls
POSIX Standards
Process Management

Direct use of Unix/Linux system calls for process creation, file operations, signal handling, and inter-process communication.

tools
GDB
Valgrind
Make
Git

Debugging with GDB, memory leak detection with Valgrind, build automation with Make, and version control with Git.

concepts
Memory Management
Algorithms
Data Structures
Concurrency

Manual memory allocation/deallocation, algorithm optimization, efficient data structure implementation, and thread synchronization.

Key Features & Implementation

Minishell - Unix Shell Replica
  • Process management: fork(), execve(), wait() for command execution
  • Pipe operations (|) for inter-process communication
  • Input/output redirections (<, >, <<, >>)
  • Environment variable handling ($PATH, $HOME, custom variables)
  • Signal processing (SIGINT, SIGQUIT) for proper shell behavior
  • Built-in commands (cd, echo, pwd, export, unset, env, exit)
  • Demonstrates deep understanding of OS fundamentals and system architecture
Push Swap - Optimized Sorting Algorithm
  • Sorting algorithm using two stacks with restricted operations
  • Maximum efficiency constraints (3 numbers: ≤3 ops, 5 numbers: ≤12 ops)
  • Algorithm complexity analysis and optimization
  • Custom data structure implementation for stacks
  • Advanced problem-solving with limited operation set
  • Demonstrates algorithm design and complexity analysis skills
Libft - Custom C Library
  • Implementation of standard C library functions from scratch
  • String manipulation (strlen, strcpy, strdup, etc.)
  • Memory operations (memset, memcpy, memmove, etc.)
  • Character checking and conversion functions
  • Linked list implementation and manipulation
  • Foundation for all subsequent projects
ft_printf - Printf Implementation
  • Custom implementation of printf with variadic functions
  • Format specifier parsing (%c, %s, %d, %i, %u, %x, %X, %p)
  • Buffer management for efficient output
  • Flag and width handling for formatting
  • Demonstrates understanding of variadic arguments and formatting
Philosophers - Multithreading & Synchronization
  • Dining philosophers problem implementation with threads
  • Mutex usage for resource synchronization
  • Deadlock prevention and race condition avoidance
  • Thread creation and lifecycle management
  • Precise timing with gettimeofday() for simulation accuracy
  • Demonstrates concurrent programming and synchronization mastery
Key Achievements & Impact
  • Completed intensive 42 Network curriculum emphasizing system-level programming
  • Built Unix shell replica demonstrating OS and system architecture mastery
  • Developed highly optimized sorting algorithm meeting strict complexity requirements
  • Implemented complete C standard library from scratch without external dependencies
  • Solved complex multithreading synchronization problems (dining philosophers)
  • Gained deep proficiency in memory management, debugging, and low-level programming