Skip to content

Latest commit

 

History

History
65 lines (45 loc) · 2.68 KB

README.md

File metadata and controls

65 lines (45 loc) · 2.68 KB

holbertonschool-system_linux

Description

C programming and Linux components of the Holberton school "Low-Level and Algorithms" specialization curriculum.

General C project requirements

Compilation conditions

  • Ubuntu 14.04 LTS
  • gcc 4.8.4
  • flags -Wall -Werror -Wextra -pedantic

Linters


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.


Student