ABSTRACT

This repository is a comprehensive guide to systems-level development in C. It tracks the journey from fundamental bit manipulation and memory addressing to the construction of complex systems like custom shells, memory allocators, and web servers.

1. Lecture Examples (Theory)

The foundational concepts explained through lecture notes and diagrams.


2. Problem Sets (Reinforcement)

Practical exercises categorized by topic to bridge the gap between lecture and projects.


3. Program Assessments (Mastery)

Major projects that synthesize all previous concepts into functional system applications.

ProjectKey Concepts
UTF-8Bitwise logic, variable-width encoding, multi-byte parsing (stripping headers vs. payload).
The Pioneer ShellThe Fork-Exec-Wait loop, process management, signal handling, and environment variables.
MallocThe Heap, explicit free lists, block metadata (headers/footers), alignment, and coalescing.
Web ServerTCP Sockets, HTTP protocol parsing (GET/POST), state management, and path routing.
Hashing & PasswordsData integrity, SHA256, salting, and binary-to-hexadecimal conversion.

Learning Roadmap

  1. Bit-Level Mastery: Start with Strings and Data and PS 1 to understand how the CPU sees information.
  2. Pointer & Process Control: Study Systems and Processes and PS 3 to learn how the OS runs programs.
  3. Advanced Resource Management: Tackle Memory Management and PS 4 to understand the Heap.
  4. Network Integration: Use Digital Communication and PS 5 to scale your programs to the web.
Folder Contents

7 items under this folder.