Subscribe
Sign in
Home
Podcast
Notes
CPython Internals
AI
Computer Architecture
Linux Internals
x86-assembly
Contact Me
Archive
About
Understanding a Process’s Address Space Layout
In this video, we look at how a process’s virtual address space is laid out: code, data, heap, stack, shared libraries, mmap regions, and more.
LATEST
·
22:12
Most Popular
View all
What Every Developer Should Know About GPU Computing
Oct 18, 2023
•
Abhinav Upadhyay
329
12
41
How Unix Spell Ran in 64kB RAM
Jan 12, 2025
•
Abhinav Upadhyay
107
2
14
How Many Lines of C it Takes to Execute a + b in Python?
Dec 6, 2023
•
Abhinav Upadhyay
59
5
6
A Software Engineer's Guide to Reading Research Papers
Jan 28, 2025
•
Abhinav Upadhyay
184
16
Recent posts
View all
Why Git Has a Variable Named false_but_the_compiler_does_not_know_it
A small C trick that keeps Clang from flagging valid code as unreachable
Jun 3
•
Abhinav Upadhyay
23
2
3
How Large Is the Virtual Address Space?
Watch now | How large is a process’s virtual address space, why is it split between user space and the kernel, and what are canonical virtual addresses?
May 31
•
Abhinav Upadhyay
8
1
25:15
Why do we need virtual memory?
Understanding virtual memory from first principles
May 24
•
Abhinav Upadhyay
14
1
17:34
Virtual Memory: A Deep Dive into Page Tables, TLBs, and Linux Internals
From page faults to NUMA topology: how the Linux kernel manages memory, and what that means for the performance of data-intensive systems.
May 10
•
Abhinav Upadhyay
178
1
38
How PyTorch Generates Random Numbers in Parallel on the GPU
A deep dive into Philox and counter-based RNGs
Dec 18, 2025
•
Abhinav Upadhyay
26
5
This site requires JavaScript to run correctly. Please
turn on JavaScript
or unblock scripts