Operating Systems & Systems Programming Topics
Covers operating system fundamentals and systems programming topics, including process management, memory management, file system interfaces, inter-process communication, low-level kernel interactions, and system call interfaces (e.g., fork, exec, opendir, stat) across Unix/Linux and other OS environments.
Linux Command Line & Shell
Working effectively at the Linux/Unix shell: core commands, file and text manipulation, pipes and redirection, process control, permissions and ownership, and shell scripting fundamentals. Covers navigating the filesystem, chaining tools, and the everyday command-line workflow expected of anyone operating Linux systems.
Systems Performance Analysis & Tuning
Finding and fixing performance problems at the OS and low level: profiling CPU, memory, I/O, and lock contention, reading utilization and saturation signals, and using tools like perf, strace, and tracepoints. Covers cache behavior, false sharing, syscall overhead, and the methodology of isolating a bottleneck before optimizing.
Concurrency, Synchronization & Deadlock
Coordinating concurrent execution against shared state: mutexes, semaphores, condition variables, spinlocks, and atomic operations, plus the problems they solve and cause. Covers race conditions, critical sections, the classic deadlock conditions and prevention/avoidance strategies, priority inversion, and livelock at the OS level.