Subscribe
Sign in
Home
Podcast
CPython Internals
AI
Computer Architecture
Linux Internals
x86-assembly
Contact Me
Archive
About
Virtual Memory From First Principles
A practical guide to page faults, page tables, TLBs, NUMA topology, Linux internals, and performance in data-intensive systems.
READ THE LATEST
Most Popular
View all
What Every Developer Should Know About GPU Computing
Oct 18, 2023
•
Abhinav Upadhyay
335
12
42
How Unix Spell Ran in 64kB RAM
Jan 12, 2025
•
Abhinav Upadhyay
109
3
15
A Software Engineer's Guide to Reading Research Papers
Jan 28, 2025
•
Abhinav Upadhyay
194
17
How Many Lines of C it Takes to Execute a + b in Python?
Dec 6, 2023
•
Abhinav Upadhyay
59
5
6
Recent posts
View all
37:38
Demand Paging in Action: mmap, Page Faults, and RSS
Learn how to inspect a process’s virtual memory, use mmap to allocate pages, and observe page faults and physical memory allocation as they happen
Aug 29
•
Abhinav Upadhyay
1
1
Demand Paging: What Happens When Linux Handles a Page Fault
Understand what happens when you allocate memory versus when you actually access it, what a VMA is, and how the Linux kernel uses VMAs to handle page…
Aug 23
•
Abhinav Upadhyay
8
43:52
x86 Addressing Modes, Part 2: Indirect, Indexed, and Offset-based Modes
In this final part on addressing modes, we learn about indirect, indexed and offset-based addressing modes along with some interesting examples and…
Aug 9
•
Abhinav Upadhyay
5
How Big Is a Physical Address?
A short aside from the virtual memory series on physical address size, why it differs from virtual address size, and why different CPUs expose different…
Jun 22
•
Abhinav Upadhyay
5
10:29
What Does a Page Table Entry Actually Store?
Learn about the page-level metadata that is stored in the page table and how is that used by the hardware during memory access
Jun 21
•
Abhinav Upadhyay
3
28:30
This site requires JavaScript to run correctly. Please
turn on JavaScript
or unblock scripts