Operating Systems · Cluster
System Calls
The kernel boundary and its cost.
- 01 How a System Call Transfers Control to the Kernel What the x86-64 syscall instruction actually changes, why the kernel cannot switch stacks for free, and how the two return paths back to user mode differ.
- 02 System Call ABIs and the Register Argument Convention How arguments and return values cross the privilege boundary, why there are at most six of them, and why two ABIs on one machine can disagree about the layout of a struct.
- 03 Error Returns and the errno Convention Why the kernel signals failure with a negative value in the result register, how the C library turns that into errno, and which failures a caller cannot distinguish.
- 04 What a System Call Actually Costs Where the cycles go between the trap instruction and the return, which costs are fixed and which scale with the argument, and why mitigations changed the baseline.
- 05 The vDSO and System Calls That Never Trap How a read-only code page mapped into every process serves clock and CPU queries without a privilege transition, and what that costs in portability.
- 06 Copying Data Across the User-Kernel Boundary Why the kernel cannot simply dereference a pointer supplied by a program, how the copy routines validate and fault, and where the bytes actually go.
- 07 Seccomp Filters and the Cost of Interception How a classic BPF program attached to a thread filters system calls, what it can and cannot inspect, and why tracing every call changes latency by orders of magnitude.
- 08 io_uring and Shared-Memory Submission Queues How a pair of ring buffers mapped into the process removes most system calls from an I/O path, and which costs remain once the traps are gone.
- 09 32-bit Compatibility System Calls on a 64-bit Kernel How one kernel serves two pointer widths, why the compatibility entry path differs from the native one, and where the translation layer leaks.
- 10 Restartable Sequences and Interruption Semantics How the kernel restarts an interrupted call, why a userspace critical section needs a kernel abort hook, and what the abort path guarantees.