Computing History · Cluster

Unix Lineage

Design decisions that propagated.

  1. 01 The Three-Level Indirection Behind a Unix File Descriptor How a small integer reaches an inode through a per-process table and a shared open file description, and which operation copies which level. foundational · Feb 28, 2026
  2. 02 Why fork and exec Are Separate Calls The two-step process creation model, what fork copies and what copy-on-write defers, and why the split survives despite its cost in a program that only wants to exec. foundational · Nov 25, 2023
  3. 03 One Rooted Namespace: How Mounting Replaced Separate Volumes Why Unix names every file under a single root, how mount grafts a filesystem onto a directory, and what the resulting ambiguity costs in path resolution. foundational · Jul 22, 2024
  4. 04 How argv and envp Reach a New Program Image The argument vector as a byte layout the kernel copies onto the new stack, the size limits that constrain it, and why the environment is a separate array rather than more arguments. intermediate · Sep 27, 2024
  5. 05 Signals as Deferred Interrupts and the Async-Signal-Safe Subset How a signal handler interrupts an arbitrary instruction, why most library calls are unsafe inside one, and what the small permitted subset actually guarantees. intermediate · Oct 24, 2026
  6. 06 Pipe Buffers, PIPE_BUF, and the Absence of Message Boundaries Why a pipe is an uninterpreted byte stream with a fixed kernel buffer, what the atomicity guarantee for small writes actually covers, and how writers detect the reader is gone. intermediate · Jan 26, 2024
  7. 07 Nine Permission Bits, Three Classes, and No Way to Deny How the mode word is checked at open time, why umask subtracts rather than assigns, and what setuid, setgid and the sticky bit change about the check. intermediate · Jul 6, 2026
  8. 08 The Close-on-Exec Race and Why Descriptor Inheritance Is a Hazard How exec preserves every descriptor a process holds, why setting the flag after fork is too late, and what O_CLOEXEC closes that fcntl cannot. advanced · Jun 27, 2026
  9. 09 procfs and the Limits of Representing Kernel State as Files How a virtual filesystem synthesises readable text for process and kernel state, why the files violate ordinary file assumptions, and where the interface gives inconsistent answers. advanced · Nov 15, 2025
  10. 10 Sessions, Process Groups, and the Controlling Terminal How the kernel groups processes for signal delivery and job control, why the controlling terminal is a session property, and what happens to a process left in the background. advanced · Nov 22, 2025