System Engineering 48
- Zero-Copy, DMA, and High-Performance Buffers
- Virtual Memory and Process Address Spaces
- The Page Cache and Durability
- Stack and Heap Layout
- Page Tables and Address Translation
- Page Faults, Swapping, and Working Sets
- mmap and File Mapping
- Memory Safety and Leaks
- Memory Allocators
- Filesystem Paths, Inodes, and the VFS
- Filesystem Locks and Crash Consistency
- File Permissions, ACLs, and Capabilities
- File Descriptors and Open File Objects
- Disks, SSDs, NVMe, and RAID
- Buffered, Direct, Blocking, and Non-Blocking File I/O
- Threads, Processes, Async I/O, and Event Loops
- Threads and Shared Execution State
- The Compilation Pipeline
- Systems Engineering — From Hardware to Production
- Scheduling, Affinity, and NUMA Effects
- Queues, Pipelines, Backpressure, and Cancellation
- Process Isolation and Lifecycle
- Object Files, Sections, and Symbols
- Memory Ordering and Atomic Hardware
- Linking: Static Libraries and Shared Libraries
- Executable Formats and Program Startup
- Assembly, Calling Conventions, and Stack Frames
- Interrupts, Traps, Exceptions, and Device I/O
- CPU Privilege Levels and Protection
- Linux Resource Limits and the OOM Killer
- How a CPU Executes Instructions
- CPU Performance and Hardware Counters
- CPU Caches and Memory Locality
- Linux Signals and Service Supervision
- Linux Processes and Lifecycle
- Linux Filesystem and System Interfaces
- Linux Clocks, Hostnames, and Environment
- CPU Scheduling and Context Switching
- What the Operating System Provides
- System Calls: How Programs Request Kernel Services
- Rust, Zig, Go, and C Tradeoffs
- Portability, Compatibility, and Abstraction Leaks
- Performance Constraints in Systems
- Failure, Determinism, and Control
- C as a Systems Programming Language
- Resource Ownership and Limits
- CPU, Memory, Storage, and Network Resources
- What Systems Programming Means