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.
Memory Management, Paging & Virtual Address Space
How the OS gives each process an isolated virtual address space and maps it onto physical memory: paging, page tables, the TLB, page faults, demand paging, and swapping. Covers the layout of a process address space (text, data, heap, stack), memory isolation and protection between processes, and how virtual memory enables overcommit and copy-on-write.
File Systems & Storage Internals
How file systems organize data on storage: inodes, directories, file descriptors, hard vs. symbolic links, and metadata. Covers on-disk structures, journaling and consistency, the buffer/page cache, mounting and the virtual file system layer, and how block devices and storage stacks sit beneath the file system.
Linux System Administration & Networking
Operating and troubleshooting Linux hosts: users and groups, packages, cron, logging, and the /proc and /sys interfaces, together with host-level networking such as interfaces, routing, DNS resolution, ports, and firewall rules. Covers diagnosing connectivity and configuration issues with standard tooling on a running Linux system.
Kernel Architecture & OS Internals
How an operating system kernel is structured and what it is responsible for: monolithic vs. microkernel designs, the role of kernel subsystems (scheduler, memory manager, VFS, drivers), kernel vs. user space, and the boot/initialization path. Includes how kernel modules and device drivers extend the kernel and how the kernel mediates access to hardware.
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.
Windows Server Internals & Administration
Administering and troubleshooting Windows Server environments: the Windows process and service model, the registry, event logs, Active Directory basics, and performance/diagnostic tooling. Covers how Windows differs from Unix in process, security, and service management, and how to diagnose common server-side failures.
Service & Init System Management
Managing long-running services and the system init layer: systemd units, targets, dependencies, and journald, plus starting, stopping, enabling, and troubleshooting daemons. Covers service lifecycle, restart policies, and how the init system supervises processes on a modern Linux host.
State Machines & Protocol Implementation
Modeling behavior and communication with explicit state: finite state machines, event-driven transitions, and implementing wire or hardware protocols with framing, timeouts, and error handling. Covers structuring long-lived logic as a state machine to keep firmware and systems code correct and testable.
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.