A collection of in-depth notes and explorations on computer systems, covering topics from low-level hardware to high-level system design.
- Processor Architecture
- Cache Hierarchies
- Memory Models
- NUMA Systems
- CPU Performance Counters
- Linux AIO Limitations - Understanding Linux Asynchronous I/O and why it's problematic
- Block Layer Architecture
- Filesystem Internals
- SSD vs HDD Characteristics
- Intro to io_uring Modern Async I/O
- io_uring: syscall, cpu usage and pool
- Direct I/O (O_DIRECT) vs Buffered I/O
- Page Cache Management
- I/O Scheduling Algorithms
- TCP/IP Stack
- Socket Programming
- Zero-Copy Techniques
- Network Performance Tuning
- epoll/io_uring for Network I/O
- Thread Models
- Lock-Free Data Structures
- Memory Ordering & Barriers
- Deadlock Prevention
- Concurrent Algorithms
- Cache Design Patterns
- Database Internals
- Distributed Systems
- Performance Optimization
- Profiling & Debugging Tools
- Process Management
- Virtual Memory
- Scheduling Algorithms
- System Calls & Interrupts
- Kernel Space vs User Space
These are personal learning notes, but suggestions and corrections are welcome! If you spot an error or have additional insights, please open an issue or PR.
- Linux AIO Limitations - Deep dive into why Linux AIO fails with buffered I/O and comparison with io_uring
- io_uring Advanced Patterns
- SSD Internal Architecture
- Page Cache Tuning for Database Workloads
- NUMA-Aware Data Structures
- Computer Systems: A Programmer's Perspective - Bryant & O'Hallaron
- Operating Systems: Three Easy Pieces - Remzi H. Arpaci-Dusseau
- The Linux Programming Interface - Michael Kerrisk
- Database Internals - Alex Petrov
- Brendan Gregg's Blog - Performance analysis
- LWN.net - Linux kernel news
- The Morning Paper - CS paper summaries
- "Efficient IO with io_uring" - Jens Axboe
- "The Design and Implementation of a Log-Structured File System" - Rosenblum & Ousterhout
- "Dynamo: Amazon's Highly Available Key-value Store" - DeCandia et al.
Questions or suggestions? Open an issue or reach out via [your contact method].
This repository is for educational purposes. Code examples are provided under MIT License unless otherwise specified.
Last Updated: September 2025
"The best way to learn systems is to build them, break them, and understand why they broke."