ABSTRACT

This repository is a structured journey through systems-level development in C. It spans the gap between raw hardware bits and high-level network communication, focusing on how a programmer manages memory, interacts with the Operating System, and builds robust, performance-oriented software.

1. Intro to Systems Programming

The entry point. This module establishes the basic relationship between the programmer and memory addresses.

  • Core Tools: Understanding sizeof, pointer vs. value references, and the mechanics of SHA256 hashing.
  • Memory Safety: Why returning pointers from the stack leads to undefined behavior.

2. Strings and Data

Understanding the binary representation of information.

  • Bitwise Logic: Masking and shifting to manipulate data at the lowest level.
  • Interpretation: The difference between signed/unsigned interpretation and the traps of character signedness.
  • Internationalization: The variable-width mechanics of UTF-8 and Unicode.

3. Systems and Processes

The interface between your code and the Operating System kernel.

  • Process Management: How the OS creates execution units via fork().
  • The Shell Loop: Tokenizing user input and executing commands using the Fork-Exec-Wait pattern.
  • Virtualization: The illusion of private memory via Virtual Memory and Copy-on-Write.

4. Memory Management

The deep-dive into the “Heap.” Learn how to build the memory management tools that modern languages take for granted.

  • Struct Design: How padding and alignment affect memory footprint.
  • Custom Allocators: Implementing malloc, free, and realloc using block metadata and coalescing logic to fight fragmentation.

5. Digital Communication

Scaling your C knowledge to talk to other computers.

  • Network I/O: Sockets, reading/writing across buffers, and handling connection state.
  • HTTP Protocol: Parsing request paths, managing query parameters, and serving dynamic content.

Technical Mapping Reference

FolderLevelHardware Focus
Strings & DataLowALU / Bit Registers
IntroMidMemory Addresses
Systems & ProcessesMidOS Kernel / CPU Scheduler
Memory ManagementHigh-MidPhysical RAM Management
Digital CommHighNIC / Network Stack

Suggested Learning Path

  1. The Foundations: Intro Strings
  2. The Environment: Systems & Processes
  3. The Internals: Memory Management
  4. The Application: Digital Communication
Folder Contents

5 items under this folder.