This is the third video in the virtual memory series based on the virtual memory article/book that I wrote. In the first two videos, we talked about what is virtual memory, and the size of virtual memory address space of a process. In this installment, we understand how this address space is laid out by the operating system and why does it have this specific layout.
The video covers the following topics:
The address space layout of a process
The key segments of this address space: text, data, bss, heap, memory-mapped region, stack
How the stack grows
Performance and security implications of this layout
In the next video, we will talk about how the kernel maintains the virtual-to-physical address mapping and how the translation works. In the meantime, if you haven’t read the virtual memory article, I recommend checking it out. It is also available in an aesthetically pleasing and screen- friendly PDF/EPUB format at the link below.











