TAG
Operating_System
39 notes
- 1.1 Operating Systemshistorical
What an operating system manages: processes, memory, devices, files, protection, and the boundary between applications and hardware.
- Linux Overviewhistorical
Linux kernel responsibilities, processes, memory, filesystems, networking, devices, and user space.
- Linux Threadshistorical
Thread execution, shared process resources, scheduling, stacks, TLS, and synchronization.
- Linux Processeshistorical
Process address spaces, credentials, file descriptors, parent/child lifecycle, signals, and scheduling.
- Process Managementhistorical
Process/thread lifecycle, scheduling, context switching, states, resources, synchronization, and IPC.
- 2.4 Inter-Process Communication (IPC)historical
Core IPC mechanisms: shared memory, pipes, FIFOs, message queues, signals, semaphores, and sockets, with their trade-offs.
- 2.5 Synchronization and Mutual Exclusionhistorical
Critical sections, mutual exclusion, ordering, semaphores, mutexes, condition variables, and classic synchronization problems.
- 2.6 Deadlockhistorical
Deadlock conditions, prevention, avoidance, detection, recovery, and practical lock-ordering strategies.
- 2.7 Programs, Processes, and Threadshistorical
The relationship between programs, processes, threads, and user-space tasks, including address spaces, scheduling, isolation, and context-switch costs.
- Linux Memory Managementhistorical
Virtual address spaces, page tables, anonymous/file-backed memory, page cache, reclaim, swap, and OOM.
- Operating-System Storage Managementhistorical
Virtual memory, paging, address translation, allocation, caching, reclaim, and persistent storage boundaries.
- 3.3 Virtual Memoryhistorical
Virtual address spaces, page tables, demand paging, page faults, locality, swap, and why virtual memory is more than 'RAM plus disk'.
- Memory Allocation and Reclamationhistorical
Virtual mappings, physical-page allocation, user-space allocators, reclaim, swap, and OOM.
- 3.5 Segmentation and Paginghistorical
Physical and virtual addresses, paging, segmentation, page tables, and why modern systems primarily rely on paging rather than universal segmentation-plus-paging.
- 3.6 Linux Memory and Swaphistorical
Linux virtual memory, resident pages, page cache, anonymous memory, reclaim, and the role of swap as backing storage rather than virtual memory itself.
- 3.7 Page Replacementhistorical
Page-replacement goals and classic OPT, FIFO, LRU, LFU, Clock, and working-set ideas, with the distinction between textbook algorithms and real kernels.
- 4.1 System Callshistorical
How user-space programs enter the kernel to request privileged services, how this differs from an ordinary function call, and why libc wrappers matter.
- 4.2 I/O Modelshistorical
Blocking, non-blocking, readiness-based multiplexing, signal-driven I/O, asynchronous completion, and Reactor-style server architectures.
- 4.3 select, poll, and epollhistorical
How Linux readiness APIs differ in descriptor representation, scanning cost, registration model, and level- vs. edge-triggered behavior.
- Linux I/Ohistorical
File descriptors, page cache, buffered and direct I/O, blocking, readiness, and durable writes.
- 4.5 Zero-Copy I/Ohistorical
Why zero-copy techniques reduce CPU-mediated data movement, with mmap, sendfile, page cache, DMA, and the limits of the term 'zero copy'.
- Linux CPU Performance Tuninghistorical
Diagnosing CPU saturation, run queues, context switching, hot code, affinity, and scheduler effects.
- tophistorical
Interactive Linux process and host metrics for CPU, memory, load, task state, and quick triage.
- Linux Memory Performance Tuninghistorical
Diagnosing resident memory, reclaim, page cache, swap, faults, NUMA, and application allocation behavior.
- vmstathistorical
Sampling runnable/blocked tasks, memory, paging, block I/O, interrupts, context switches, and CPU states.
- Linux Disk I/O Tuninghistorical
Diagnosing storage latency, throughput, queueing, cache behavior, filesystem, and application I/O patterns.
- Linux Network Tuninghistorical
Diagnosing latency, throughput, packet loss, retransmission, queues, sockets, connection limits, and kernel networking.
- iostathistorical
Interpreting CPU and block-device throughput, latency, queueing, and utilization metrics.
- Linux Performance Tuninghistorical
An evidence-driven workflow across CPU, memory, disk, network, kernel, and application layers.
- ulimit and Resource Limitshistorical
Soft and hard per-process resource limits, inheritance, file descriptors, processes, and memory-related constraints.
- tcpdumphistorical
Packet capture with BPF filters for debugging TCP, DNS, routing, retransmissions, and network failures.
- Common Linux Commandshistorical
A practical map of Linux commands for files, processes, networking, resources, and diagnostics.
- sarhistorical
Historical and sampled system activity for CPU, memory, I/O, network, and other kernel counters.
- stracehistorical
Tracing Linux system calls and signals to diagnose blocking, failures, and unexpected kernel interactions.
- 6.1 Linux Namespaceshistorical
Linux namespaces as process-visible resource isolation for mount, PID, network, IPC, UTS, user, cgroup, and time domains.
- 6.2 Linux Control Groups (cgroups)historical
cgroup v2 resource accounting and control for CPU, memory, I/O, process counts, pressure, and container workloads.
- chroothistorical
Changing a process's filesystem root and understanding why chroot alone is not a security container.