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.
Interprocess Communication (IPC)
Mechanisms that let separate processes exchange data and coordinate: pipes and named pipes, message queues, shared memory, signals, and Unix domain sockets. Covers the trade-offs between IPC methods (throughput, latency, complexity, ordering) and when each is appropriate for a given systems design.
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.
Process & Thread Management
The lifecycle of processes and threads: creation and termination, process states, the process control block, parent/child relationships, zombies and orphans, and the distinction between processes and threads. Covers how the OS tracks and isolates execution contexts and how threads share address space while maintaining separate stacks and registers.
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.