Subject
Linux systems
What is going on underneath a program on Linux. Five articles, meant to be read in order: the kernel and the system call boundary, then processes and memory, then files, then sockets and interprocess communication, and finally the primitives that containers and tracing tools are built from. Each one opens with a mind map and explains every idea with a diagram and the real systems that use it.
Articles
-
1 · Kernel, user space and system calls
What the kernel is, why applications live in a separate world, how a system call crosses between them, and how the machine gets from power-on to a running systemd.
-
2 · Processes, memory and signals
fork and exec, process states and zombies, virtual memory and page faults, copy-on-write, what RSS really measures, the OOM killer, and how signals reach a process.
-
3 · Filesystems, inodes and permissions
Inodes and links, the VFS and the page cache, file descriptors, the directory layout, /proc and /sys, and permission bits from rwx to setuid, capabilities and ACLs.
-
4 · Sockets, IPC and network interfaces
The socket API, Unix domain sockets, epoll, pipes, shared memory and message queues, and how the kernel sees interfaces, routes and packet filters.
-
5 · Namespaces, cgroups and tracing
What a container really is, the namespaces that narrow a process's view, the cgroups that cap its resources, and strace, perf and eBPF for seeing inside a running kernel.