C programming and Linux components of the Holberton school "Low-Level and Algorithms" specialization curriculum.
- Ubuntu 14.04 LTS
- gcc 4.8.4
- flags
-Wall -Werror -Wextra -pedantic
Building a clone of the Linux function ls
.
Introduction to static variables in C and building a clone of the glibc function getline
.
Revisiting (235) 0x16. C - Simple Shell to build a second clone of dash
/ Ubuntu sh
, now with logical operators, piping, and input/output redirections.
Introduction to using the /proc
filesystem to explore the memory footprint of a running process.
Introduction to ELF or the Executable and Linkable Format, its uses, and structure.
Introduction to x86 assembly: Intel vs AT&T, flag registers, stack frames, function and system calls.
Introduction to Unix signals: sending, listening, and catching.
Continued exploration of ELF structures, now in building clones of nm
and objdump
.
An investigation into how Python 3 is implemented in C and how to access it via its C API.
Learning more about syscalls and registers, and the use of the ptrace
library through cloning behavior of strace
.
Introduction to the pthread
library and concepts like concurrency vs parallelism, mutual exclusion, and race conditions.
Investigating virtual memory and the heap by building clones of the glibc malloc
, free
, calloc
, and realloc
.
Introduction to networking in C using sockets; building a simple HTTP server.
- Samuel Pomeroy - allelomorph