Linux userspace / kernel ABI

System Programming

Instead of restating API lists, this series follows buildable C programs through libc and syscalls to the kernel objects they change. It treats short returns, EINTR, asynchronous events, file-descriptor lifetimes, and other real failure conditions alongside the normal path.

Topics
38
Code
buildable C examples
Kernel
Linux 6.18.37 LTS
Method
code / object / failure path

Syscall / ELF

Traces how a C function call passes through the syscall instruction and ELF loader to reach the kernel ABI.

Process

Covers the sequence in which processes are created, replaced, and reaped, including fork, execve, wait, sessions, and service lifetimes.

File Descriptor / I/O

Examines open file descriptions, short I/O, pathname resolution, metadata changes, and ioctl together with file-descriptor lifetimes.

Virtual Memory

Distinguishes the address space, mmap, page faults, protection, and the point where an allocator meets actual pages.

Signal / Event / IPC

Collects asynchronous notifications in file-descriptor-based event loops and explains how bytes and permissions move between processes.

Thread / Synchronization

Explains pthread objects, mutexes, condition variables, futexes, and C atomic memory order in terms of the data actually shared.

Socket

Follows the failure points of network programs from socket creation through nonblocking connect, stream framing, UDP, and name resolution.

Observe / Harden

Uses io_uring, seccomp, /proc, strace, and perf to shorten, constrain, and observe execution paths.