Introduction to Memory Management in Linux
summary
Covers how the MMU and TLB translate virtual addresses to physical frames, how page tables and struct mm/vm_area_struct track mappings, and why user space uses kernel logical vs vmalloc vs user virtual ranges with a 3 GB/1 GB split on 32‑bit. Explains lazy allocation (malloc/mmap defers physical PFN allocation until page fault), swap I/O to disk on a per‑page basis, and APIs like kmalloc, vmalloc, mmap, mlock and mallopt. Notes page size ≈4 KB and tiny TLBs (sometimes ~16 entries) impact performance.
AI-written summary · about
chapters (16)
- 0:00Intro
- 0:58About the original author Alan O
- 1:55Single Address Space
- 3:43Limitations
- 4:32What is Virtual Memory
- 6:59Virtual Memory Details
- 8:17Memory Management Unit
- 9:52Translation Lookaside Buffer
- 12:36Kemel Virtual Memory
- 23:35User Virtual Addresses
- 26:16The MMU
- 29:31Basic TLB Mappings
- 34:09Lazy Allocation
- 37:18Page Tables
- 46:35High-Level Implementation
- 47:59Summary
related talks
39mMM101: Introduction to Linux Memory Management
26mLet's demystify memory
46mDeep dive into virtual memory and large pages
01h 36mLinux Memory Management and Containers
31mBoot Time Memory Management
59mDemystifying Process Address Space: Heap, Stack, and Beyond
41mLies Programmers Believe about Memory
48mPersistent Memory Usage within Linux Environment
